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-10-27 14:07:12 +0300
committerDavid Benson [draw.io] <david@jgraph.com>2021-10-27 14:07:12 +0300
commitbbacea439e21be7aa389e7ae260b5f1540e741c5 (patch)
tree9b4e6f9336f6254f7acb47b3fc97cdfed77060fe
parent95900de429ae1b5c7351deaf685aa24fe1c854cb (diff)
15.6.0 releasev15.6.0
-rw-r--r--.github/workflows/build-release.yml40
-rw-r--r--ChangeLog8
-rw-r--r--VERSION2
-rw-r--r--src/main/webapp/js/app.min.js234
-rw-r--r--src/main/webapp/js/diagramly/EditorUi.js20
-rw-r--r--src/main/webapp/js/diagramly/ElectronApp.js46
-rw-r--r--src/main/webapp/js/diagramly/Menus.js5
-rw-r--r--src/main/webapp/js/diagramly/Minimal.js24
-rw-r--r--src/main/webapp/js/grapheditor/Actions.js10
-rw-r--r--src/main/webapp/js/grapheditor/Editor.js19
-rw-r--r--src/main/webapp/js/viewer-static.min.js432
-rw-r--r--src/main/webapp/js/viewer.min.js432
-rw-r--r--src/main/webapp/mxgraph/mxClient.js2
-rw-r--r--src/main/webapp/resources/dia.txt2
-rw-r--r--src/main/webapp/resources/dia_am.txt2
-rw-r--r--src/main/webapp/resources/dia_ar.txt2
-rw-r--r--src/main/webapp/resources/dia_bg.txt2
-rw-r--r--src/main/webapp/resources/dia_bn.txt2
-rw-r--r--src/main/webapp/resources/dia_bs.txt2
-rw-r--r--src/main/webapp/resources/dia_ca.txt2
-rw-r--r--src/main/webapp/resources/dia_cs.txt2
-rw-r--r--src/main/webapp/resources/dia_da.txt2
-rw-r--r--src/main/webapp/resources/dia_de.txt2
-rw-r--r--src/main/webapp/resources/dia_el.txt2
-rw-r--r--src/main/webapp/resources/dia_eo.txt2
-rw-r--r--src/main/webapp/resources/dia_es.txt2
-rw-r--r--src/main/webapp/resources/dia_et.txt56
-rw-r--r--src/main/webapp/resources/dia_eu.txt2
-rw-r--r--src/main/webapp/resources/dia_fa.txt2
-rw-r--r--src/main/webapp/resources/dia_fi.txt2
-rw-r--r--src/main/webapp/resources/dia_fil.txt2
-rw-r--r--src/main/webapp/resources/dia_fr.txt2
-rw-r--r--src/main/webapp/resources/dia_gl.txt2
-rw-r--r--src/main/webapp/resources/dia_gu.txt2
-rw-r--r--src/main/webapp/resources/dia_he.txt2
-rw-r--r--src/main/webapp/resources/dia_hi.txt2
-rw-r--r--src/main/webapp/resources/dia_hr.txt2
-rw-r--r--src/main/webapp/resources/dia_hu.txt2
-rw-r--r--src/main/webapp/resources/dia_i18n.txt2
-rw-r--r--src/main/webapp/resources/dia_id.txt2
-rw-r--r--src/main/webapp/resources/dia_it.txt2
-rw-r--r--src/main/webapp/resources/dia_ja.txt2
-rw-r--r--src/main/webapp/resources/dia_kn.txt2
-rw-r--r--src/main/webapp/resources/dia_ko.txt2
-rw-r--r--src/main/webapp/resources/dia_lt.txt2
-rw-r--r--src/main/webapp/resources/dia_lv.txt2
-rw-r--r--src/main/webapp/resources/dia_ml.txt2
-rw-r--r--src/main/webapp/resources/dia_mr.txt2
-rw-r--r--src/main/webapp/resources/dia_ms.txt2
-rw-r--r--src/main/webapp/resources/dia_my.txt2
-rw-r--r--src/main/webapp/resources/dia_nl.txt2
-rw-r--r--src/main/webapp/resources/dia_no.txt2
-rw-r--r--src/main/webapp/resources/dia_pl.txt2
-rw-r--r--src/main/webapp/resources/dia_pt-br.txt2
-rw-r--r--src/main/webapp/resources/dia_pt.txt2
-rw-r--r--src/main/webapp/resources/dia_ro.txt2
-rw-r--r--src/main/webapp/resources/dia_ru.txt2
-rw-r--r--src/main/webapp/resources/dia_si.txt2
-rw-r--r--src/main/webapp/resources/dia_sk.txt2
-rw-r--r--src/main/webapp/resources/dia_sl.txt2
-rw-r--r--src/main/webapp/resources/dia_sr.txt2
-rw-r--r--src/main/webapp/resources/dia_sv.txt2
-rw-r--r--src/main/webapp/resources/dia_sw.txt2
-rw-r--r--src/main/webapp/resources/dia_ta.txt2
-rw-r--r--src/main/webapp/resources/dia_te.txt2
-rw-r--r--src/main/webapp/resources/dia_th.txt2
-rw-r--r--src/main/webapp/resources/dia_tr.txt2
-rw-r--r--src/main/webapp/resources/dia_uk.txt2
-rw-r--r--src/main/webapp/resources/dia_vi.txt2
-rw-r--r--src/main/webapp/resources/dia_zh-tw.txt2
-rw-r--r--src/main/webapp/resources/dia_zh.txt2
-rw-r--r--src/main/webapp/service-worker.js2
-rw-r--r--src/main/webapp/service-worker.js.map2
73 files changed, 860 insertions, 588 deletions
diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml
new file mode 100644
index 00000000..1b5634f9
--- /dev/null
+++ b/.github/workflows/build-release.yml
@@ -0,0 +1,40 @@
+name: Build & Release
+
+on:
+ push:
+ paths:
+ - VERSION
+
+jobs:
+ build:
+ runs-on: ubuntu-18.04
+ if: github.ref == 'refs/heads/release'
+ steps:
+ - name: Checkout reposistory
+ uses: actions/checkout@v2
+ with:
+ ref: 'release'
+ - name: Get Submodule
+ run: |
+ git submodule init
+ git config submodule.src/main/webapp/resources.url https://${{secrets.I18N_USERNAME}}:${{secrets.I18N_ACCESS_KEY}}@github.com/jgraph/drawio-i18n.git
+ git submodule update --init --recursive
+ - name: Installing Node
+ uses: actions/setup-node@v2
+ with:
+ node-version: 14
+ - name: Build
+ run: |
+ cd etc/build
+ npm install workbox-cli --global
+ ln -s `which workbox` /usr/local/bin/workbox
+ ant
+ - name: Tag and Push
+ run: |
+ export VERSION=`cat VERSION`
+ git config user.name github-actions
+ git config user.email github-actions@github.com
+ git commit -a -m "Ready for $VERSION"
+ git push
+ git tag "diagramly-${VERSION//\./_}"
+ git push origin "diagramly-${VERSION//\./_}"
diff --git a/ChangeLog b/ChangeLog
index ae25ba88..41549f07 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+26-OCT-2021: 15.6.0
+
+- First release of Notion Chrome extension
+- Add trigger of release on push of VERSION to release branch
+- Adds embed viewport
+- [conf cloud] Stops unnecessary viewer refreshes
+- Keeps windows inside embed viewport
+
22-OCT-2021: 15.5.9
- Fixes stroke and font color in dark mode https://github.com/jgraph/drawio/issues/2338]
diff --git a/VERSION b/VERSION
index 8fef0a2b..b7551732 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-15.5.9 \ No newline at end of file
+15.6.0 \ No newline at end of file
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index 4de2597c..32911fe9 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -235,7 +235,7 @@ null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=
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";
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"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:"15.5.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/"),
+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:"15.6.0",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_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),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/"),
@@ -2095,13 +2095,14 @@ Editor.prototype.setFilename=function(a){this.filename=a};
Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(a,d){b.undoableEditHappened(d.getProperty("edit"))};var d=mxUtils.bind(this,function(a,b){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,d);a.getView().addListener(mxEvent.UNDO,d);d=function(b,d){var c=a.getSelectionCellsForChanges(d.getProperty("edit").changes,function(a){return!(a instanceof mxChildChange)});if(0<c.length){a.getModel();for(var e=[],h=0;h<
c.length;h++)null!=a.view.getState(c[h])&&e.push(c[h]);a.setSelectionCells(e)}};b.addListener(mxEvent.UNDO,d);b.addListener(mxEvent.REDO,d);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,d,e,c,f,k,h,g,l,m){var n=g?57:0,p=d,q=e,u=g?0:64,v=mxUtils.getDocumentSize();null!=window.innerHeight&&(v.height=window.innerHeight);var t=v.height,x=Math.max(1,Math.round((v.width-d-u)/2)),w=Math.max(1,Math.round((t-e-a.footerHeight)/3));b.style.maxHeight="100%";d=null!=document.body?Math.min(d,document.body.scrollWidth-u):d;e=Math.min(e,t-u);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));v=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=v.x+"px";this.bg.style.top=v.y+"px";x+=v.x;w+=v.y;c&&document.body.appendChild(this.bg);var A=a.createDiv(g?"geTransDialog":"geDialog");c=this.getPosition(x,w,d,e);x=c.x;w=c.y;A.style.width=d+"px";A.style.height=e+"px";A.style.left=x+"px";A.style.top=w+"px";A.style.zIndex=
-this.zIndex;A.appendChild(b);document.body.appendChild(A);!h&&b.clientHeight>A.clientHeight-u&&(b.style.overflowY="auto");b.style.overflowX="hidden";if(f&&(f=document.createElement("img"),f.setAttribute("src",Dialog.prototype.closeImage),f.setAttribute("title",mxResources.get("close")),f.className="geDialogClose",f.style.top=w+14+"px",f.style.left=x+d+38-n+"px",f.style.zIndex=this.zIndex,mxEvent.addListener(f,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(f),this.dialogImg=
-f,!m)){var E=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){E=!0}),null,mxUtils.bind(this,function(b){E&&(a.hideDialog(!0),E=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var c=l();null!=c&&(p=d=c.w,q=e=c.h)}c=mxUtils.getDocumentSize();t=c.height;this.bg.style.height=t+"px";x=Math.max(1,Math.round((c.width-d-u)/2));w=Math.max(1,Math.round((t-e-a.footerHeight)/3));d=null!=document.body?Math.min(p,document.body.scrollWidth-u):p;e=Math.min(q,t-u);c=this.getPosition(x,
-w,d,e);x=c.x;w=c.y;A.style.left=x+"px";A.style.top=w+"px";A.style.width=d+"px";A.style.height=e+"px";!h&&b.clientHeight>A.clientHeight-u&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=w+14+"px",this.dialogImg.style.left=x+d+38-n+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=k;this.container=A;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
-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";
+function Dialog(a,b,d,e,c,f,k,h,g,l,m){var n=g?57:0,p=d,q=e,u=g?0:64,v=Editor.inlineFullscreen||null==a.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(a.embedViewport);null==a.embedViewport&&null!=window.innerHeight&&(v.height=window.innerHeight);var t=v.height,x=Math.max(1,Math.round((v.width-d-u)/2)),w=Math.max(1,Math.round((t-e-a.footerHeight)/3));b.style.maxHeight="100%";d=null!=document.body?Math.min(d,document.body.scrollWidth-u):d;e=Math.min(e,t-u);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));v=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=v.x+"px";this.bg.style.top=v.y+"px";x+=v.x;w+=v.y;Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
+w+=a.embedViewport.y,x+=a.embedViewport.x);c&&document.body.appendChild(this.bg);var A=a.createDiv(g?"geTransDialog":"geDialog");c=this.getPosition(x,w,d,e);x=c.x;w=c.y;A.style.width=d+"px";A.style.height=e+"px";A.style.left=x+"px";A.style.top=w+"px";A.style.zIndex=this.zIndex;A.appendChild(b);document.body.appendChild(A);!h&&b.clientHeight>A.clientHeight-u&&(b.style.overflowY="auto");b.style.overflowX="hidden";if(f&&(f=document.createElement("img"),f.setAttribute("src",Dialog.prototype.closeImage),
+f.setAttribute("title",mxResources.get("close")),f.className="geDialogClose",f.style.top=w+14+"px",f.style.left=x+d+38-n+"px",f.style.zIndex=this.zIndex,mxEvent.addListener(f,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(f),this.dialogImg=f,!m)){var E=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){E=!0}),null,mxUtils.bind(this,function(b){E&&(a.hideDialog(!0),E=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var c=l();
+null!=c&&(p=d=c.w,q=e=c.h)}c=mxUtils.getDocumentSize();t=c.height;this.bg.style.height=t+"px";Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");x=Math.max(1,Math.round((c.width-d-u)/2));w=Math.max(1,Math.round((t-e-a.footerHeight)/3));d=null!=document.body?Math.min(p,document.body.scrollWidth-u):p;e=Math.min(q,t-u);c=this.getPosition(x,w,d,e);x=c.x;w=c.y;A.style.left=x+"px";A.style.top=w+"px";A.style.width=d+"px";A.style.height=e+"px";!h&&
+b.clientHeight>A.clientHeight-u&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=w+14+"px",this.dialogImg.style.left=x+d+38-n+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=k;this.container=A;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
+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+
"/clear.gif";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,d,e,c,f,k,h,g,l,m){g=null!=g?g:!0;var n=document.createElement("div");n.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);n.appendChild(p)}b=
@@ -3547,10 +3548,10 @@ d[e];if(c.getModel().isEdge(f)){var g=c.getCellGeometry(f);mxEvent.isShiftDown(a
document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");k=this.addAction("superscript",mxUtils.bind(this,function(){c.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",function(){if(c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",b=c.getView().getState(c.getSelectionCell()),e="";null!=b&&(e=b.style[mxConstants.STYLE_IMAGE]||e);
var f=c.cellEditor.saveSelection();d.showImageDialog(a,e,function(a,b,d){if(c.cellEditor.isContentEditing())c.cellEditor.restoreSelection(f),c.insertImage(a,b,d);else{var e=c.getSelectionCells();if(null!=a&&(0<a.length||0<e.length)){var g=null;c.getModel().beginUpdate();try{if(0==e.length){var e=[c.insertVertex(c.getDefaultParent(),null,"",0,0,b,d,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],h=c.getCenterInsertPoint(c.getBoundingBoxFromGeometry(e,!0));
e[0].geometry.x=h.x;e[0].geometry.y=h.y;g=e;c.fireEvent(new mxEventObject("cellsInserted","cells",g))}c.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,e);var k=c.getCurrentCellStyle(e[0]);"image"!=k[mxConstants.STYLE_SHAPE]&&"label"!=k[mxConstants.STYLE_SHAPE]?c.setCellStyles(mxConstants.STYLE_SHAPE,"image",e):0==a.length&&c.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==c.getSelectionCount()&&null!=b&&null!=d){var l=e[0],m=c.getModel().getGeometry(l);null!=m&&(m=m.clone(),m.width=b,
-m.height=d,c.getModel().setGeometry(l,m))}}finally{c.getModel().endUpdate()}null!=g&&(c.setSelectionCells(g),c.scrollCellToVisible(g[0]))}}},c.cellEditor.isContentEditing(),!c.cellEditor.isContentEditing())}}).isEnabled=f;k=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(d,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",function(){d.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",
-function(){d.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),d.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");k.setToggleAction(!0);k.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));k=this.addAction("formatPanel",mxUtils.bind(this,function(){d.toggleFormatPanel()}),
-null,null,Editor.ctrlKey+"+Shift+P");k.setToggleAction(!0);k.setSelectedCallback(mxUtils.bind(this,function(){return 0<d.formatWidth}));k=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(d,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){d.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){d.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),
-d.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");k.setToggleAction(!0);k.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};
+m.height=d,c.getModel().setGeometry(l,m))}}finally{c.getModel().endUpdate()}null!=g&&(c.setSelectionCells(g),c.scrollCellToVisible(g[0]))}}},c.cellEditor.isContentEditing(),!c.cellEditor.isContentEditing())}}).isEnabled=f;k=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(d,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",mxUtils.bind(this,function(){d.fireEvent(new mxEventObject("layers"));this.layersWindow.window.fit()})),
+this.layersWindow.window.addListener("hide",function(){d.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),d.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");k.setToggleAction(!0);k.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));k=this.addAction("formatPanel",mxUtils.bind(this,
+function(){d.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");k.setToggleAction(!0);k.setSelectedCallback(mxUtils.bind(this,function(){return 0<d.formatWidth}));k=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(d,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",mxUtils.bind(this,function(){d.fireEvent(new mxEventObject("outline"));this.outlineWindow.window.fit()})),this.outlineWindow.window.addListener("hide",
+function(){d.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),d.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");k.setToggleAction(!0);k.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};
Actions.prototype.addAction=function(a,b,d,e,c){var f;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),f=mxResources.get(a)+"..."):f=mxResources.get(a);return this.put(a,new Action(f,b,d,e,c))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]};function Action(a,b,d,e,c){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(b);this.enabled=null!=d?d:!0;this.iconCls=e;this.shortcut=c;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,b=a.editor.graph,d=mxUtils.bind(b,b.isEnabled);this.customFonts=[];this.customFontSizes=[];this.put("fontFamily",new Menu(mxUtils.bind(this,function(d,c){for(var e=mxUtils.bind(this,function(e){this.styleChange(d,e,[mxConstants.STYLE_FONTFAMILY],[e],null,c,function(){document.execCommand("fontname",!1,e);a.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTFAMILY],"values",[e],"cells",[b.cellEditor.getEditingCell()]))},function(){b.updateLabelElements(b.getSelectionCells(),
@@ -10578,7 +10579,7 @@ this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if
this.shadowVisible)}}else M.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 Q=document.createElement("canvas"),P=new Image;P.onload=function(){try{Q.getContext("2d").drawImage(P,
0,0);var b=Q.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=b&&6<b.length}catch(X){}};P.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){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,d,c){c.ui=b.ui;return d};b.afterDecode=function(b,d,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,d,c){c.ui=b.ui;return d};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.5.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=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,d,c){c.ui=b.ui;return d};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.6.0";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&&"1"!=urlParams.extAuth&&"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(b,c,d,e,g,k,n){k=null!=k?k:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":
@@ -10901,83 +10902,83 @@ E=1==l.enableCustomTemp;if("1"==urlParams.newTempDlg&&!l.templatesOnly&&null!=l.
function(c,d,f,e){c=c||this.emptyDiagramXml;null!=l.callback?k.postMessage(JSON.stringify({event:"template",xml:c,blank:c==this.emptyDiagramXml,name:d,tempUrl:f,libs:e,builtIn:!0,message:l}),"*"):(b(c,g,c!=this.emptyDiagramXml,l.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,u?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,v?mxUtils.bind(this,function(b,c){this.remoteInvoke("searchDiagrams",
[b,null],null,c,function(){c(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,c,d){k.postMessage(JSON.stringify({event:"template",docUrl:b,info:c,name:d}),"*")}),null,null,E?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==l.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==l.action){var L=
this.getDiagramTextContent();k.postMessage(JSON.stringify({event:"textContent",data:L,message:l}),"*");return}if("status"==l.action){null!=l.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(l.messageKey))):null!=l.message&&this.editor.setStatus(mxUtils.htmlEntities(l.message));null!=l.modified&&(this.editor.modified=l.modified);return}if("spinner"==l.action){var M=null!=l.messageKey?mxResources.get(l.messageKey):l.message;null==l.show||l.show?this.spinner.spin(document.body,M):
-this.spinner.stop();return}if("exit"==l.action)this.actions.get("exit").funct();else{if("export"==l.action){if("png"==l.format||"xmlpng"==l.format){if(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin)){var Q=null!=l.xml?l.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var P=this.editor.graph,K=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();var c=this.createLoadMessage("export");c.format=
-l.format;c.message=l;c.data=b;c.xml=Q;k.postMessage(JSON.stringify(c),"*")}),X=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==l.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(Q)));P!=this.editor.graph&&P.container.parentNode.removeChild(P.container);K(b)}),J=l.pageId||(null!=this.pages?l.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var N=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=
-J){var b=P.getGlobalVariable;P=this.createTemporaryGraph(P.getStylesheet());for(var c,d=0;d<this.pages.length;d++)if(this.pages[d].getId()==J){c=this.updatePageRoot(this.pages[d]);break}null==c&&(c=this.currentPage);P.getGlobalVariable=function(d){return"page"==d?c.getName():"pagenumber"==d?1:b.apply(this,arguments)};document.body.appendChild(P.container);P.model.setRoot(c.root)}if(null!=l.layerIds){for(var f=P.model,e=f.getChildCells(f.getRoot()),g={},d=0;d<l.layerIds.length;d++)g[l.layerIds[d]]=
-!0;for(d=0;d<e.length;d++)f.setVisible(e[d],g[e[d].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){X(b.toDataURL("image/png"))}),l.width,null,l.background,mxUtils.bind(this,function(){X(null)}),null,null,l.scale,l.transparent,l.shadow,null,P,l.border,null,l.grid,l.keepTheme)});null!=l.xml&&0<l.xml.length?(d=!0,this.setFileData(Q),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(N)},0):N()):N()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+
-("xmlpng"==l.format?"1":"0")+(null!=J?"&pageId="+J:"")+(null!=l.layerIds&&0<l.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:l.layerIds})):"")+(null!=l.scale?"&scale="+l.scale:"")+"&base64=1&xml="+encodeURIComponent(Q))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?K("data:image/png;base64,"+b.getText()):X(null)}),mxUtils.bind(this,function(){X(null)}))}}else N=mxUtils.bind(this,function(){var b=this.createLoadMessage("export");b.message=l;if("html2"==
-l.format||"html"==l.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var c=this.getXmlFileData();b.xml=mxUtils.getXml(c);b.data=this.getFileData(null,null,!0,null,null,null,c);b.format=l.format}else if("html"==l.format)c=this.editor.getGraphXml(),b.data=this.getHtml(c,this.editor.graph),b.xml=mxUtils.getXml(c),b.format=l.format;else{mxSvgCanvas2D.prototype.foAltText=null;c=null!=l.background?l.background:this.editor.graph.background;c==mxConstants.NONE&&(c=null);b.xml=this.getFileData(!0,
-null,null,null,null,null,null,null,null,!1);b.format="svg";var d=mxUtils.bind(this,function(c){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(c);k.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==l.format)(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin))&&this.getEmbeddedSvg(b.xml,this.editor.graph,null,!0,d,null,null,l.embedImages,c,l.scale,l.border,l.shadow,l.keepTheme);else if(null==l.spin&&
-null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin))this.editor.graph.setEnabled(!1),c=this.editor.graph.getSvg(c,l.scale,l.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||l.shadow,null,l.keepTheme),(this.editor.graph.shadowVisible||l.shadow)&&this.editor.graph.addSvgShadow(c),this.embedFonts(c,mxUtils.bind(this,function(b){l.embedImages||null==l.embedImages?this.editor.convertImages(b,mxUtils.bind(this,function(b){d(mxUtils.getXml(b))})):
-d(mxUtils.getXml(b))}));return}k.postMessage(JSON.stringify(b),"*")}),null!=l.xml&&0<l.xml.length?(d=!0,this.setFileData(l.xml),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(N)},0):N()):N();return}if("load"==l.action){p=l.toSketch;f=1==l.autosave;this.hideDialog();null!=l.modified&&null==urlParams.modified&&(urlParams.modified=l.modified);null!=l.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=l.saveAndExit);null!=l.noSaveBtn&&null==urlParams.noSaveBtn&&
-(urlParams.noSaveBtn=l.noSaveBtn);if(null!=l.rough){var O=Editor.sketchMode;this.doSetSketchMode(l.rough);O!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=l.dark&&(O=Editor.darkMode,this.doSetDarkMode(l.dark),O!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=l.border&&(this.embedExportBorder=l.border);var W=this.embedExportBorder;null!=l.background&&(this.embedExportBackground=l.background);null!=l.rect&&(this.diagramContainer.style.border=
-"2px solid #295fcc",this.diagramContainer.style.top=l.rect.top+"px",this.diagramContainer.style.left=l.rect.left+"px",this.diagramContainer.style.height=l.rect.height+"px",this.diagramContainer.style.width=l.rect.width+"px",this.diagramContainer.style.bottom="",this.diagramContainer.style.right="",m=mxUtils.bind(this,function(){var b=this.editor.graph,c=b.maxFitScale;b.maxFitScale=l.maxFitScale;b.fit(2*W);b.maxFitScale=c;b.container.scrollTop-=2*W;b.container.scrollLeft-=2*W;this.fireEvent(new mxEventObject("editInlineStart",
-"data",[l]))}));null!=l.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=l.noExitBtn);null!=l.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,l.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=t);try{l.libs&&this.sidebar.showEntries(l.libs)}catch(ba){}l=null!=l.xmlpng?this.extractGraphModelFromPng(l.xmlpng):null!=l.descriptor?l.descriptor:
-l.xml}else{if("merge"==l.action){var Y=this.getCurrentFile();null!=Y&&(t=n(l.xml),null!=t&&""!=t&&Y.mergeFile(new LocalFile(this,t),function(){k.postMessage(JSON.stringify({event:"merge",message:l}),"*")},function(b){k.postMessage(JSON.stringify({event:"merge",message:l,error:b}),"*")}))}else"remoteInvokeReady"==l.action?this.handleRemoteInvokeReady(k):"remoteInvoke"==l.action?this.handleRemoteInvoke(l,g.origin):"remoteInvokeResponse"==l.action?this.handleRemoteInvokeResponse(l):k.postMessage(JSON.stringify({error:"unknownMessage",
-data:JSON.stringify(l)}),"*");return}}}catch(ba){this.handleError(ba)}}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())}),aa=mxUtils.bind(this,function(g,l){d=!0;try{b(g,l,null,p)}catch(fa){this.handleError(fa)}d=!1;null!=urlParams.modified&&this.editor.setStatus("");e=ka();f&&null==c&&(c=mxUtils.bind(this,function(b,c){var f=ka();if(f!=e&&!d){var g=this.createLoadMessage("autosave");
-g.xml=f;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}e=f}),this.editor.graph.model.addListener(mxEvent.CHANGE,c),this.editor.graph.addListener("gridSizeChanged",c),this.editor.graph.addListener("shadowVisibleChanged",c),this.addListener("pageFormatChanged",c),this.addListener("pageScaleChanged",c),this.addListener("backgroundColorChanged",c),this.addListener("backgroundImageChanged",c),this.addListener("foldingEnabledChanged",c),this.addListener("mathEnabledChanged",c),this.addListener("gridEnabledChanged",
-c),this.addListener("guidesEnabledChanged",c),this.addListener("pageViewChanged",c));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var n=this.createLoadMessage("load");n.xml=g;k.postMessage(JSON.stringify(n),"*")}null!=m&&m()});null!=l&&"function"===typeof l.substring&&"data:application/vnd.visio;base64,"==l.substring(0,34)?(n="0M8R4KGxGuE"==l.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(l.substring(l.indexOf(",")+1)),function(b){aa(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),
-n)):null!=l&&"function"===typeof l.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(l,"")?this.parseFile(new Blob([l],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,13)&&aa(b.responseText,g)}),""):null!=l&&"function"===typeof l.substring&&this.isLucidChartData(l)?this.convertLucidChart(l,mxUtils.bind(this,function(b){aa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):
-null==l||"object"!==typeof l||null==l.format||null==l.data&&null==l.url?(l=n(l),aa(l,g)):this.loadDescriptor(l,mxUtils.bind(this,function(b){aa(ka(),g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var k=window.opener||window.parent,g="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";k.postMessage(g,"*");if("json"==urlParams.proto){var n=this.editor.graph.openLink;this.editor.graph.openLink=function(b,c,d){n.apply(this,
-arguments);k.postMessage(JSON.stringify({event:"openLink",href:b,target:c,allowOpener:d}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop="atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var d=c;if("1"==urlParams.noSaveBtn){if("0"!=
-urlParams.saveAndExit){var e="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,e);c.setAttribute("title",e);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),
-"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c),d=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,
-d),c.setAttribute("title",d),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),d=c);d.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right="atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,
-mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),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(b,c){for(var d=this.editor.graph,f=d.getSelectionCells(),e=0;e<b.length;e++){var g=new window[b[e].layout](d);
-if(null!=b[e].config)for(var l in b[e].config)g[l]=b[e].config[l];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==f.length?null:f)},e==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),f=[],e=[],g=[],l={};if(0<d.length){var k={},n=null,A=null,z=null,B=null,y=null,C=null,D="whiteSpace=wrap;html=1;",G=null,F=null,E="",H="auto",I="auto",L=null,M=null,Q=40,P=40,K=100,X=0,J=this.editor.graph;J.getGraphBounds();for(var N=function(){null!=c?c(la):(J.setSelectionCells(la),
-J.scrollCellToVisible(J.getSelectionCell()))},O=J.getFreeInsertPoint(),W=O.x,Y=O.y,O=Y,ka=null,aa="auto",F=null,ba=[],na=null,pa=null,fa=0;fa<d.length&&"#"==d[fa].charAt(0);){b=d[fa];for(fa++;fa<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[fa].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[fa].substring(1)),fa++;if("#"!=b.charAt(1)){var ca=b.indexOf(":");if(0<ca){var R=mxUtils.trim(b.substring(1,ca)),T=mxUtils.trim(b.substring(ca+1));"label"==R?ka=J.sanitizeHtml(T):"labelname"==R&&0<T.length&&
-"-"!=T?y=T:"labels"==R&&0<T.length&&"-"!=T?C=JSON.parse(T):"style"==R?A=T:"parentstyle"==R?D=T:"stylename"==R&&0<T.length&&"-"!=T?B=T:"styles"==R&&0<T.length&&"-"!=T?z=JSON.parse(T):"vars"==R&&0<T.length&&"-"!=T?n=JSON.parse(T):"identity"==R&&0<T.length&&"-"!=T?G=T:"parent"==R&&0<T.length&&"-"!=T?F=T:"namespace"==R&&0<T.length&&"-"!=T?E=T:"width"==R?H=T:"height"==R?I=T:"left"==R&&0<T.length?L=T:"top"==R&&0<T.length?M=T:"ignore"==R?pa=T.split(","):"connect"==R?ba.push(JSON.parse(T)):"link"==R?na=T:
-"padding"==R?X=parseFloat(T):"edgespacing"==R?Q=parseFloat(T):"nodespacing"==R?P=parseFloat(T):"levelspacing"==R?K=parseFloat(T):"layout"==R&&(aa=T)}}}if(null==d[fa])throw Error(mxResources.get("invalidOrMissingFile"));for(var ia=this.editor.csvToArray(d[fa]),R=ca=null,T=[],U=0;U<ia.length;U++)G==ia[U]&&(ca=U),F==ia[U]&&(R=U),T.push(mxUtils.trim(ia[U]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==ka&&(ka="%"+T[0]+"%");if(null!=ba)for(var Z=0;Z<ba.length;Z++)null==k[ba[Z].to]&&
-(k[ba[Z].to]={});G=[];for(U=fa+1;U<d.length;U++){var ha=this.editor.csvToArray(d[U]);if(null==ha){var ra=40<d[U].length?d[U].substring(0,40)+"...":d[U];throw Error(ra+" ("+U+"):\n"+mxResources.get("containsValidationErrors"));}0<ha.length&&G.push(ha)}J.model.beginUpdate();try{for(U=0;U<G.length;U++){var ha=G[U],V=null,ea=null!=ca?E+ha[ca]:null;null!=ea&&(V=J.model.getCell(ea));var d=null!=V,ga=new mxCell(ka,new mxGeometry(W,O,0,0),A||"whiteSpace=wrap;html=1;");ga.vertex=!0;ga.id=ea;for(var ja=0;ja<
-ha.length;ja++)J.setAttributeForCell(ga,T[ja],ha[ja]);if(null!=y&&null!=C){var oa=C[ga.getAttribute(y)];null!=oa&&J.labelChanged(ga,oa)}if(null!=B&&null!=z){var ua=z[ga.getAttribute(B)];null!=ua&&(ga.style=ua)}J.setAttributeForCell(ga,"placeholders","1");ga.style=J.replacePlaceholders(ga,ga.style,n);d?(J.model.setValue(V,ga.value),J.model.setStyle(V,ga.style),0>mxUtils.indexOf(g,V)&&g.push(V),J.fireEvent(new mxEventObject("cellsInserted","cells",[V]))):J.fireEvent(new mxEventObject("cellsInserted",
-"cells",[ga]));V=ga;if(!d)for(Z=0;Z<ba.length;Z++)k[ba[Z].to][V.getAttribute(ba[Z].to)]=V;null!=na&&"link"!=na&&(J.setLinkForCell(V,V.getAttribute(na)),J.setAttributeForCell(V,na,null));var S=this.editor.graph.getPreferredSizeForCell(V),F=null!=R?J.model.getCell(E+ha[R]):null;if(V.vertex){ra=null!=F?0:W;fa=null!=F?0:Y;null!=L&&null!=V.getAttribute(L)&&(V.geometry.x=ra+parseFloat(V.getAttribute(L)));null!=M&&null!=V.getAttribute(M)&&(V.geometry.y=fa+parseFloat(V.getAttribute(M)));var da="@"==H.charAt(0)?
-V.getAttribute(H.substring(1)):null;V.geometry.width=null!=da&&"auto"!=da?parseFloat(V.getAttribute(H.substring(1))):"auto"==H||"auto"==da?S.width+X:parseFloat(H);var ma="@"==I.charAt(0)?V.getAttribute(I.substring(1)):null;V.geometry.height=null!=ma&&"auto"!=ma?parseFloat(ma):"auto"==I||"auto"==ma?S.height+X:parseFloat(I);O+=V.geometry.height+P}d?(null==l[ea]&&(l[ea]=[]),l[ea].push(V)):(f.push(V),null!=F?(F.style=J.replacePlaceholders(F,D,n),J.addCell(V,F),e.push(F)):g.push(J.addCell(V)))}for(U=0;U<
-e.length;U++)da="@"==H.charAt(0)?e[U].getAttribute(H.substring(1)):null,ma="@"==I.charAt(0)?e[U].getAttribute(I.substring(1)):null,"auto"!=H&&"auto"!=da||"auto"!=I&&"auto"!=ma||J.updateGroupBounds([e[U]],X,!0);for(var sa=g.slice(),la=g.slice(),Z=0;Z<ba.length;Z++)for(var qa=ba[Z],U=0;U<f.length;U++){var V=f[U],ta=mxUtils.bind(this,function(b,c,d){var f=c.getAttribute(d.from);if(null!=f&&""!=f)for(var f=f.split(","),e=0;e<f.length;e++){var g=k[d.to][f[e]];if(null!=g){var l=d.label;null!=d.fromlabel&&
-(l=(c.getAttribute(d.fromlabel)||"")+(l||""));null!=d.sourcelabel&&(l=J.replacePlaceholders(c,d.sourcelabel,n)+(l||""));null!=d.tolabel&&(l=(l||"")+(g.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(l=(l||"")+J.replacePlaceholders(g,d.targetlabel,n));var m="target"==d.placeholders==!d.invert?g:b,m=null!=d.style?J.replacePlaceholders(m,d.style,n):J.createCurrentEdgeStyle(),l=J.insertEdge(null,null,l||"",d.invert?g:b,d.invert?b:g,m);if(null!=d.labels)for(m=0;m<d.labels.length;m++){var p=d.labels[m],
-q=new mxCell(p.label||m,new mxGeometry(null!=p.x?p.x:0,null!=p.y?p.y:0,0,0),"resizable=0;html=1;");q.vertex=!0;q.connectable=!1;q.geometry.relative=!0;null!=p.placeholders&&(q.value=J.replacePlaceholders("target"==p.placeholders==!d.invert?g:b,q.value,n));if(null!=p.dx||null!=p.dy)q.geometry.offset=new mxPoint(null!=p.dx?p.dx:0,null!=p.dy?p.dy:0);l.insert(q)}la.push(l);mxUtils.remove(d.invert?b:g,sa)}}});ta(V,V,qa);if(null!=l[V.id])for(ja=0;ja<l[V.id].length;ja++)ta(V,l[V.id][ja],qa)}if(null!=pa)for(U=
-0;U<f.length;U++)for(V=f[U],ja=0;ja<pa.length;ja++)J.setAttributeForCell(V,mxUtils.trim(pa[ja]),null);if(0<g.length){var va=new mxParallelEdgeLayout(J);va.spacing=Q;va.checkOverlap=!0;var xa=function(){0<va.spacing&&va.execute(J.getDefaultParent());for(var b=0;b<g.length;b++){var c=J.getCellGeometry(g[b]);c.x=Math.round(J.snap(c.x));c.y=Math.round(J.snap(c.y));"auto"==H&&(c.width=Math.round(J.snap(c.width)));"auto"==I&&(c.height=Math.round(J.snap(c.height)))}};if("["==aa.charAt(0)){var Ba=N;J.view.validate();
-this.executeLayoutList(JSON.parse(aa),function(){xa();Ba()});N=null}else if("circle"==aa){var wa=new mxCircleLayout(J);wa.disableEdgeStyle=!1;wa.resetEdges=!1;var za=wa.isVertexIgnored;wa.isVertexIgnored=function(b){return za.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){wa.execute(J.getDefaultParent());xa()},!0,N);N=null}else if("horizontaltree"==aa||"verticaltree"==aa||"auto"==aa&&la.length==2*g.length-1&&1==sa.length){J.view.validate();var Ca=new mxCompactTreeLayout(J,
-"horizontaltree"==aa);Ca.levelDistance=P;Ca.edgeRouting=!1;Ca.resetEdges=!1;this.executeLayout(function(){Ca.execute(J.getDefaultParent(),0<sa.length?sa[0]:null)},!0,N);N=null}else if("horizontalflow"==aa||"verticalflow"==aa||"auto"==aa&&1==sa.length){J.view.validate();var ya=new mxHierarchicalLayout(J,"horizontalflow"==aa?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ya.intraCellSpacing=P;ya.parallelEdgeSpacing=Q;ya.interRankCellSpacing=K;ya.disableEdgeStyle=!1;this.executeLayout(function(){ya.execute(J.getDefaultParent(),
-la);J.moveCells(la,W,Y)},!0,N);N=null}else if("organic"==aa||"auto"==aa&&la.length>g.length){J.view.validate();var Aa=new mxFastOrganicLayout(J);Aa.forceConstant=3*P;Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Da=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Da.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Aa.execute(J.getDefaultParent());xa()},!0,N);N=null}}this.hideDialog()}finally{J.model.endUpdate()}null!=N&&N()}}catch(Ea){this.handleError(Ea)}};EditorUi.prototype.getSearch=
-function(b){var c="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var d="?",f;for(f in urlParams)0>mxUtils.indexOf(b,f)&&null!=urlParams[f]&&(c+=d+f+"="+urlParams[f],d="&")}else c=window.location.search;return c};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var c=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
-f;for(f in urlParams)0>mxUtils.indexOf(d,f)&&(b=0==c?b+"?":b+"&",null!=urlParams[f]&&(b+=f+"="+urlParams[f],c++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,d,e,g){b=new LinkDialog(this,b,c,d,!0,e,g);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var c=1;null==this.drive&&"function"!==typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||
-c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;null!=this.notion&&c++;b&&isLocalStorage&&"1"==urlParams.browser&&c++;return c};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.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));b="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);
-this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);this.menus.get("arrange").setEnabled(b);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(b),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(b));this.updateUserElement()};
-EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var b=this.getCurrentFile();return null!=b&&b.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var k=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){k.apply(this,arguments);var b=this.editor.graph,
-c=this.getCurrentFile(),d=this.isDiagramActive(),e=b.getEditableCells(b.getSelectionCells());this.actions.get("pageSetup").setEnabled(d);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(d);this.actions.get("editData").setEnabled(0<e.length||b.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(d);this.actions.get("connectionArrows").setEnabled(d);this.actions.get("connectionPoints").setEnabled(d);this.actions.get("copyStyle").setEnabled(d&&
-!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(d&&0<e.length);this.actions.get("editGeometry").setEnabled(0<e.length&&b.getModel().isVertex(e[0]));this.actions.get("createShape").setEnabled(d);this.actions.get("createRevision").setEnabled(d);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(d&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=
-c&&!c.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!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");
-c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(d&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var n=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);n.apply(this,arguments)};null!=window.ExportDialog&&
-(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,d,e,g,k,n,v){var f=b.editor.graph;if("xml"==d)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==d)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(f.getSvg(e,g,k)),"image/svg+xml");else{var l=b.getFileData(!0,null,null,null,null,!0),m=f.getGraphBounds(),p=Math.floor(m.width*g/f.view.scale),q=Math.floor(m.height*g/f.view.scale);if(l.length<=MAX_REQUEST_SIZE&&
-p*q<MAX_AREA)if(b.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!b.isExportToCanvas()){var t={globalVars:f.getExportVariables()};v&&(t.grid={size:f.gridSize,steps:f.view.gridSteps,color:f.view.gridColor});b.saveRequest(c,d,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(c||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<n?"&dpi="+n:"")+"&bg="+(null!=e?e:"none")+"&w="+p+"&h="+q+"&border="+k+"&xml="+encodeURIComponent(l))})}else"png"==
-d?b.exportImage(g,null==e||"none"==e,!0,!1,!1,k,!0,!1,null,v,n):b.exportImage(g,!1,!0,!1,!1,k,!0,!1,"jpeg",v);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var d=0;d<this.pages.length;d++){var e=b;this.currentPage!=this.pages[d]&&(e=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[d]),e.model.setRoot(this.pages[d].root));c+=
-this.pages[d].getName()+" "+e.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var f=document.createElement("div");f.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";
-f.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var g={};try{var k=mxSettings.getCustomLibraries();for(b=0;b<k.length;b++){var n=k[b];if("R"==n.substring(0,1)){var x=JSON.parse(decodeURIComponent(n.substring(1)));g[x[0]]={id:x[0],title:x[1],downloadUrl:x[2]}}}}catch(A){}this.remoteInvoke("getCustomLibraries",null,null,function(b){f.innerHTML="";if(0==b.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+
-"</div>";else for(var d=0;d<b.length;d++){var e=b[d];g[e.id]&&(c[e.id]=e);var l=this.addCheckbox(f,e.title,g[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,l)}},mxUtils.bind(this,function(b){f.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));f.appendChild(c)}));
-d.appendChild(f);d=new CustomDialog(this,d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,d;for(d in c)null==g[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(C){this.handleError(C,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,
-mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in g)c[d]||this.closeLibrary(new RemoteLibrary(this,null,g[d]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,340,390,!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(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==d)throw Error("No callback for "+
-(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):d.callback&&d.callback.apply(this,b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,d,e,g){var f=!0,l=window.setTimeout(mxUtils.bind(this,function(){f=!1;g({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),k=mxUtils.bind(this,function(){window.clearTimeout(l);f&&e.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(l);f&&g.apply(this,
-arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:k,error:m});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=c);this.remoteWin.postMessage(JSON.stringify(e),
-"*")});try{var e=b.funtionName,f=this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var g=!1,l=0;l<f.allowedDomains.length;l++)if(c=="https://"+f.allowedDomains[l]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var k=b.functionArgs;Array.isArray(k)||(k=[]);if(f.isAsync)k.push(function(){d(Array.prototype.slice.apply(arguments))}),k.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,k);else{var n=this[e].apply(this,k);
-d([n])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(A){d(null,"Invalid Call: An error occurred, "+A.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",
-{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=c&&c(u)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display=
-"none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,f,g=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,
-function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(E){console.log(E)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],l,l,["filesInfo","files"])}catch(E){console.log(E)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g=
-{};try{g=JSON.parse(b.data)}catch(H){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,m()):k():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):l())}}catch(H){console.log(H)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=
-function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(q){null!=c&&c(q)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,d,e,g){this.openDatabase(mxUtils.bind(this,function(f){try{g=g||"objects";Array.isArray(g)||(g=[g],b=[b],c=[c]);var k=f.transaction(g,"readwrite");k.oncomplete=d;k.onerror=e;for(f=0;f<g.length;f++)k.objectStore(g[f]).put(null!=b&&null!=b[f]?{key:b[f],data:c[f]}:c[f])}catch(v){null!=e&&e(v)}}),e)};EditorUi.prototype.removeDatabaseItem=
-function(b,c,d,e){this.openDatabase(mxUtils.bind(this,function(f){e=e||"objects";Array.isArray(e)||(e=[e],b=[b]);f=f.transaction(e,"readwrite");f.oncomplete=c;f.onerror=d;for(var g=0;g<e.length;g++)f.objectStore(e[g])["delete"](b[g])}),d)};EditorUi.prototype.getDatabaseItem=function(b,c,d,e){this.openDatabase(mxUtils.bind(this,function(f){try{e=e||"objects";var g=f.transaction([e],"readonly").objectStore(e).get(b);g.onsuccess=function(){c(g.result)};g.onerror=d}catch(u){null!=d&&d(u)}}),d)};EditorUi.prototype.getDatabaseItems=
-function(b,c,d){this.openDatabase(mxUtils.bind(this,function(e){try{d=d||"objects";var f=e.transaction([d],"readonly").objectStore(d).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),c.target.result["continue"]())};f.onerror=c}catch(u){null!=c&&c(u)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,d){this.openDatabase(mxUtils.bind(this,function(e){try{d=d||"objects";var f=e.transaction([d],"readonly").objectStore(d).getAllKeys();
-f.onsuccess=function(){b(f.result)};f.onerror=c}catch(t){null!=c&&c(t)}}),c)};EditorUi.prototype.commentsSupported=function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();
-null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,d){var e=this.getCurrentFile();null!=e?e.addComment(b,c,d):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,
-b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=
-function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,d,e,g,k,n,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,d,e,g,k,n,v)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");
-return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,d,e,g,k,n,v,x,A,z,B,y,C,D,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,d,e,g,k,n,v,
-x,A,z,B,y,C,D,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,d,e)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};
-EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=function(b,c,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,d,e)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,d,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,
-c,d,e,g)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var d=localStorage.key(c),e=localStorage.getItem(d);if(0<d.length&&(".scratchpad"==d||"."!=d.charAt(0))&&0<e.length){var g="<mxfile "===e.substring(0,8)||"<?xml"===e.substring(0,5)||"\x3c!--[if IE]>"===e.substring(0,12),e="<mxlibrary>"===e.substring(0,11);(g||e)&&b.push(d)}}return b};EditorUi.prototype.getLocalStorageFile=
-function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
+this.spinner.stop();return}if("exit"==l.action){this.actions.get("exit").funct();return}if("viewport"==l.action){null!=l.viewport&&(this.embedViewport=l.viewport);return}if("export"==l.action){if("png"==l.format||"xmlpng"==l.format){if(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin)){var Q=null!=l.xml?l.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var P=this.editor.graph,K=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);
+this.spinner.stop();var c=this.createLoadMessage("export");c.format=l.format;c.message=l;c.data=b;c.xml=Q;k.postMessage(JSON.stringify(c),"*")}),X=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==l.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(Q)));P!=this.editor.graph&&P.container.parentNode.removeChild(P.container);K(b)}),J=l.pageId||(null!=this.pages?l.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var N=
+mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=J){var b=P.getGlobalVariable;P=this.createTemporaryGraph(P.getStylesheet());for(var c,d=0;d<this.pages.length;d++)if(this.pages[d].getId()==J){c=this.updatePageRoot(this.pages[d]);break}null==c&&(c=this.currentPage);P.getGlobalVariable=function(d){return"page"==d?c.getName():"pagenumber"==d?1:b.apply(this,arguments)};document.body.appendChild(P.container);P.model.setRoot(c.root)}if(null!=l.layerIds){for(var f=P.model,e=f.getChildCells(f.getRoot()),
+g={},d=0;d<l.layerIds.length;d++)g[l.layerIds[d]]=!0;for(d=0;d<e.length;d++)f.setVisible(e[d],g[e[d].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){X(b.toDataURL("image/png"))}),l.width,null,l.background,mxUtils.bind(this,function(){X(null)}),null,null,l.scale,l.transparent,l.shadow,null,P,l.border,null,l.grid,l.keepTheme)});null!=l.xml&&0<l.xml.length?(d=!0,this.setFileData(Q),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(N)},0):N()):
+N()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==l.format?"1":"0")+(null!=J?"&pageId="+J:"")+(null!=l.layerIds&&0<l.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:l.layerIds})):"")+(null!=l.scale?"&scale="+l.scale:"")+"&base64=1&xml="+encodeURIComponent(Q))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?K("data:image/png;base64,"+b.getText()):X(null)}),mxUtils.bind(this,function(){X(null)}))}}else N=mxUtils.bind(this,function(){var b=
+this.createLoadMessage("export");b.message=l;if("html2"==l.format||"html"==l.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var c=this.getXmlFileData();b.xml=mxUtils.getXml(c);b.data=this.getFileData(null,null,!0,null,null,null,c);b.format=l.format}else if("html"==l.format)c=this.editor.getGraphXml(),b.data=this.getHtml(c,this.editor.graph),b.xml=mxUtils.getXml(c),b.format=l.format;else{mxSvgCanvas2D.prototype.foAltText=null;c=null!=l.background?l.background:this.editor.graph.background;
+c==mxConstants.NONE&&(c=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var d=mxUtils.bind(this,function(c){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(c);k.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==l.format)(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin))&&this.getEmbeddedSvg(b.xml,this.editor.graph,null,!0,d,null,null,l.embedImages,c,l.scale,
+l.border,l.shadow,l.keepTheme);else if(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin))this.editor.graph.setEnabled(!1),c=this.editor.graph.getSvg(c,l.scale,l.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||l.shadow,null,l.keepTheme),(this.editor.graph.shadowVisible||l.shadow)&&this.editor.graph.addSvgShadow(c),this.embedFonts(c,mxUtils.bind(this,function(b){l.embedImages||null==l.embedImages?this.editor.convertImages(b,
+mxUtils.bind(this,function(b){d(mxUtils.getXml(b))})):d(mxUtils.getXml(b))}));return}k.postMessage(JSON.stringify(b),"*")}),null!=l.xml&&0<l.xml.length?(d=!0,this.setFileData(l.xml),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(N)},0):N()):N();return}if("load"==l.action){p=l.toSketch;f=1==l.autosave;this.hideDialog();null!=l.modified&&null==urlParams.modified&&(urlParams.modified=l.modified);null!=l.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=
+l.saveAndExit);null!=l.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=l.noSaveBtn);if(null!=l.rough){var O=Editor.sketchMode;this.doSetSketchMode(l.rough);O!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=l.dark&&(O=Editor.darkMode,this.doSetDarkMode(l.dark),O!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=l.border&&(this.embedExportBorder=l.border);null!=l.background&&(this.embedExportBackground=l.background);null!=l.viewport&&
+(this.embedViewport=l.viewport);if(null!=l.rect){var W=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=l.rect.top+"px";this.diagramContainer.style.left=l.rect.left+"px";this.diagramContainer.style.height=l.rect.height+"px";this.diagramContainer.style.width=l.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";m=mxUtils.bind(this,function(){var b=this.editor.graph,c=b.maxFitScale;b.maxFitScale=l.maxFitScale;
+b.fit(2*W);b.maxFitScale=c;b.container.scrollTop-=2*W;b.container.scrollLeft-=2*W;this.fireEvent(new mxEventObject("editInlineStart","data",[l]))})}null!=l.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=l.noExitBtn);null!=l.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,l.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=t);try{l.libs&&
+this.sidebar.showEntries(l.libs)}catch(ba){}l=null!=l.xmlpng?this.extractGraphModelFromPng(l.xmlpng):null!=l.descriptor?l.descriptor:l.xml}else{if("merge"==l.action){var Y=this.getCurrentFile();null!=Y&&(t=n(l.xml),null!=t&&""!=t&&Y.mergeFile(new LocalFile(this,t),function(){k.postMessage(JSON.stringify({event:"merge",message:l}),"*")},function(b){k.postMessage(JSON.stringify({event:"merge",message:l,error:b}),"*")}))}else"remoteInvokeReady"==l.action?this.handleRemoteInvokeReady(k):"remoteInvoke"==
+l.action?this.handleRemoteInvoke(l,g.origin):"remoteInvokeResponse"==l.action?this.handleRemoteInvokeResponse(l):k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(l)}),"*");return}}catch(ba){this.handleError(ba)}}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())}),aa=mxUtils.bind(this,function(g,l){d=!0;try{b(g,l,null,p)}catch(fa){this.handleError(fa)}d=!1;null!=
+urlParams.modified&&this.editor.setStatus("");e=ka();f&&null==c&&(c=mxUtils.bind(this,function(b,c){var f=ka();if(f!=e&&!d){var g=this.createLoadMessage("autosave");g.xml=f;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}e=f}),this.editor.graph.model.addListener(mxEvent.CHANGE,c),this.editor.graph.addListener("gridSizeChanged",c),this.editor.graph.addListener("shadowVisibleChanged",c),this.addListener("pageFormatChanged",c),this.addListener("pageScaleChanged",c),this.addListener("backgroundColorChanged",
+c),this.addListener("backgroundImageChanged",c),this.addListener("foldingEnabledChanged",c),this.addListener("mathEnabledChanged",c),this.addListener("gridEnabledChanged",c),this.addListener("guidesEnabledChanged",c),this.addListener("pageViewChanged",c));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var n=this.createLoadMessage("load");n.xml=g;k.postMessage(JSON.stringify(n),"*")}null!=m&&m()});null!=l&&"function"===typeof l.substring&&"data:application/vnd.visio;base64,"==l.substring(0,
+34)?(n="0M8R4KGxGuE"==l.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(l.substring(l.indexOf(",")+1)),function(b){aa(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),n)):null!=l&&"function"===typeof l.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(l,"")?this.parseFile(new Blob([l],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,
+13)&&aa(b.responseText,g)}),""):null!=l&&"function"===typeof l.substring&&this.isLucidChartData(l)?this.convertLucidChart(l,mxUtils.bind(this,function(b){aa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==l||"object"!==typeof l||null==l.format||null==l.data&&null==l.url?(l=n(l),aa(l,g)):this.loadDescriptor(l,mxUtils.bind(this,function(b){aa(ka(),g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var k=window.opener||window.parent,g="json"==
+urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";k.postMessage(g,"*");if("json"==urlParams.proto){var n=this.editor.graph.openLink;this.editor.graph.openLink=function(b,c,d){n.apply(this,arguments);k.postMessage(JSON.stringify({event:"openLink",href:b,target:c,allowOpener:d}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop=
+"atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var d=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var e="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,e);c.setAttribute("title",e);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,
+mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
+b.appendChild(c),d=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,d),c.setAttribute("title",d),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),d=c);d.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right=
+"atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),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(b,c){for(var d=this.editor.graph,f=d.getSelectionCells(),e=0;e<b.length;e++){var g=new window[b[e].layout](d);if(null!=b[e].config)for(var l in b[e].config)g[l]=b[e].config[l];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==f.length?null:f)},e==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),f=[],e=[],g=[],l={};if(0<d.length){var k={},n=null,A=null,z=null,B=null,y=null,C=null,D="whiteSpace=wrap;html=1;",
+G=null,F=null,E="",H="auto",I="auto",L=null,M=null,Q=40,P=40,K=100,X=0,J=this.editor.graph;J.getGraphBounds();for(var N=function(){null!=c?c(la):(J.setSelectionCells(la),J.scrollCellToVisible(J.getSelectionCell()))},O=J.getFreeInsertPoint(),W=O.x,Y=O.y,O=Y,ka=null,aa="auto",F=null,ba=[],na=null,pa=null,fa=0;fa<d.length&&"#"==d[fa].charAt(0);){b=d[fa];for(fa++;fa<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[fa].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[fa].substring(1)),fa++;if("#"!=b.charAt(1)){var ca=
+b.indexOf(":");if(0<ca){var R=mxUtils.trim(b.substring(1,ca)),T=mxUtils.trim(b.substring(ca+1));"label"==R?ka=J.sanitizeHtml(T):"labelname"==R&&0<T.length&&"-"!=T?y=T:"labels"==R&&0<T.length&&"-"!=T?C=JSON.parse(T):"style"==R?A=T:"parentstyle"==R?D=T:"stylename"==R&&0<T.length&&"-"!=T?B=T:"styles"==R&&0<T.length&&"-"!=T?z=JSON.parse(T):"vars"==R&&0<T.length&&"-"!=T?n=JSON.parse(T):"identity"==R&&0<T.length&&"-"!=T?G=T:"parent"==R&&0<T.length&&"-"!=T?F=T:"namespace"==R&&0<T.length&&"-"!=T?E=T:"width"==
+R?H=T:"height"==R?I=T:"left"==R&&0<T.length?L=T:"top"==R&&0<T.length?M=T:"ignore"==R?pa=T.split(","):"connect"==R?ba.push(JSON.parse(T)):"link"==R?na=T:"padding"==R?X=parseFloat(T):"edgespacing"==R?Q=parseFloat(T):"nodespacing"==R?P=parseFloat(T):"levelspacing"==R?K=parseFloat(T):"layout"==R&&(aa=T)}}}if(null==d[fa])throw Error(mxResources.get("invalidOrMissingFile"));for(var ia=this.editor.csvToArray(d[fa]),R=ca=null,T=[],U=0;U<ia.length;U++)G==ia[U]&&(ca=U),F==ia[U]&&(R=U),T.push(mxUtils.trim(ia[U]).replace(/[^a-z0-9]+/ig,
+"_").replace(/^\d+/,"").replace(/_+$/,""));null==ka&&(ka="%"+T[0]+"%");if(null!=ba)for(var Z=0;Z<ba.length;Z++)null==k[ba[Z].to]&&(k[ba[Z].to]={});G=[];for(U=fa+1;U<d.length;U++){var ha=this.editor.csvToArray(d[U]);if(null==ha){var ra=40<d[U].length?d[U].substring(0,40)+"...":d[U];throw Error(ra+" ("+U+"):\n"+mxResources.get("containsValidationErrors"));}0<ha.length&&G.push(ha)}J.model.beginUpdate();try{for(U=0;U<G.length;U++){var ha=G[U],V=null,ea=null!=ca?E+ha[ca]:null;null!=ea&&(V=J.model.getCell(ea));
+var d=null!=V,ga=new mxCell(ka,new mxGeometry(W,O,0,0),A||"whiteSpace=wrap;html=1;");ga.vertex=!0;ga.id=ea;for(var ja=0;ja<ha.length;ja++)J.setAttributeForCell(ga,T[ja],ha[ja]);if(null!=y&&null!=C){var oa=C[ga.getAttribute(y)];null!=oa&&J.labelChanged(ga,oa)}if(null!=B&&null!=z){var ua=z[ga.getAttribute(B)];null!=ua&&(ga.style=ua)}J.setAttributeForCell(ga,"placeholders","1");ga.style=J.replacePlaceholders(ga,ga.style,n);d?(J.model.setValue(V,ga.value),J.model.setStyle(V,ga.style),0>mxUtils.indexOf(g,
+V)&&g.push(V),J.fireEvent(new mxEventObject("cellsInserted","cells",[V]))):J.fireEvent(new mxEventObject("cellsInserted","cells",[ga]));V=ga;if(!d)for(Z=0;Z<ba.length;Z++)k[ba[Z].to][V.getAttribute(ba[Z].to)]=V;null!=na&&"link"!=na&&(J.setLinkForCell(V,V.getAttribute(na)),J.setAttributeForCell(V,na,null));var S=this.editor.graph.getPreferredSizeForCell(V),F=null!=R?J.model.getCell(E+ha[R]):null;if(V.vertex){ra=null!=F?0:W;fa=null!=F?0:Y;null!=L&&null!=V.getAttribute(L)&&(V.geometry.x=ra+parseFloat(V.getAttribute(L)));
+null!=M&&null!=V.getAttribute(M)&&(V.geometry.y=fa+parseFloat(V.getAttribute(M)));var da="@"==H.charAt(0)?V.getAttribute(H.substring(1)):null;V.geometry.width=null!=da&&"auto"!=da?parseFloat(V.getAttribute(H.substring(1))):"auto"==H||"auto"==da?S.width+X:parseFloat(H);var ma="@"==I.charAt(0)?V.getAttribute(I.substring(1)):null;V.geometry.height=null!=ma&&"auto"!=ma?parseFloat(ma):"auto"==I||"auto"==ma?S.height+X:parseFloat(I);O+=V.geometry.height+P}d?(null==l[ea]&&(l[ea]=[]),l[ea].push(V)):(f.push(V),
+null!=F?(F.style=J.replacePlaceholders(F,D,n),J.addCell(V,F),e.push(F)):g.push(J.addCell(V)))}for(U=0;U<e.length;U++)da="@"==H.charAt(0)?e[U].getAttribute(H.substring(1)):null,ma="@"==I.charAt(0)?e[U].getAttribute(I.substring(1)):null,"auto"!=H&&"auto"!=da||"auto"!=I&&"auto"!=ma||J.updateGroupBounds([e[U]],X,!0);for(var sa=g.slice(),la=g.slice(),Z=0;Z<ba.length;Z++)for(var qa=ba[Z],U=0;U<f.length;U++){var V=f[U],ta=mxUtils.bind(this,function(b,c,d){var f=c.getAttribute(d.from);if(null!=f&&""!=f)for(var f=
+f.split(","),e=0;e<f.length;e++){var g=k[d.to][f[e]];if(null!=g){var l=d.label;null!=d.fromlabel&&(l=(c.getAttribute(d.fromlabel)||"")+(l||""));null!=d.sourcelabel&&(l=J.replacePlaceholders(c,d.sourcelabel,n)+(l||""));null!=d.tolabel&&(l=(l||"")+(g.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(l=(l||"")+J.replacePlaceholders(g,d.targetlabel,n));var m="target"==d.placeholders==!d.invert?g:b,m=null!=d.style?J.replacePlaceholders(m,d.style,n):J.createCurrentEdgeStyle(),l=J.insertEdge(null,null,
+l||"",d.invert?g:b,d.invert?b:g,m);if(null!=d.labels)for(m=0;m<d.labels.length;m++){var p=d.labels[m],q=new mxCell(p.label||m,new mxGeometry(null!=p.x?p.x:0,null!=p.y?p.y:0,0,0),"resizable=0;html=1;");q.vertex=!0;q.connectable=!1;q.geometry.relative=!0;null!=p.placeholders&&(q.value=J.replacePlaceholders("target"==p.placeholders==!d.invert?g:b,q.value,n));if(null!=p.dx||null!=p.dy)q.geometry.offset=new mxPoint(null!=p.dx?p.dx:0,null!=p.dy?p.dy:0);l.insert(q)}la.push(l);mxUtils.remove(d.invert?b:g,
+sa)}}});ta(V,V,qa);if(null!=l[V.id])for(ja=0;ja<l[V.id].length;ja++)ta(V,l[V.id][ja],qa)}if(null!=pa)for(U=0;U<f.length;U++)for(V=f[U],ja=0;ja<pa.length;ja++)J.setAttributeForCell(V,mxUtils.trim(pa[ja]),null);if(0<g.length){var va=new mxParallelEdgeLayout(J);va.spacing=Q;va.checkOverlap=!0;var xa=function(){0<va.spacing&&va.execute(J.getDefaultParent());for(var b=0;b<g.length;b++){var c=J.getCellGeometry(g[b]);c.x=Math.round(J.snap(c.x));c.y=Math.round(J.snap(c.y));"auto"==H&&(c.width=Math.round(J.snap(c.width)));
+"auto"==I&&(c.height=Math.round(J.snap(c.height)))}};if("["==aa.charAt(0)){var Ba=N;J.view.validate();this.executeLayoutList(JSON.parse(aa),function(){xa();Ba()});N=null}else if("circle"==aa){var wa=new mxCircleLayout(J);wa.disableEdgeStyle=!1;wa.resetEdges=!1;var za=wa.isVertexIgnored;wa.isVertexIgnored=function(b){return za.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){wa.execute(J.getDefaultParent());xa()},!0,N);N=null}else if("horizontaltree"==aa||"verticaltree"==
+aa||"auto"==aa&&la.length==2*g.length-1&&1==sa.length){J.view.validate();var Ca=new mxCompactTreeLayout(J,"horizontaltree"==aa);Ca.levelDistance=P;Ca.edgeRouting=!1;Ca.resetEdges=!1;this.executeLayout(function(){Ca.execute(J.getDefaultParent(),0<sa.length?sa[0]:null)},!0,N);N=null}else if("horizontalflow"==aa||"verticalflow"==aa||"auto"==aa&&1==sa.length){J.view.validate();var ya=new mxHierarchicalLayout(J,"horizontalflow"==aa?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ya.intraCellSpacing=
+P;ya.parallelEdgeSpacing=Q;ya.interRankCellSpacing=K;ya.disableEdgeStyle=!1;this.executeLayout(function(){ya.execute(J.getDefaultParent(),la);J.moveCells(la,W,Y)},!0,N);N=null}else if("organic"==aa||"auto"==aa&&la.length>g.length){J.view.validate();var Aa=new mxFastOrganicLayout(J);Aa.forceConstant=3*P;Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Da=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Da.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Aa.execute(J.getDefaultParent());
+xa()},!0,N);N=null}}this.hideDialog()}finally{J.model.endUpdate()}null!=N&&N()}}catch(Ea){this.handleError(Ea)}};EditorUi.prototype.getSearch=function(b){var c="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var d="?",f;for(f in urlParams)0>mxUtils.indexOf(b,f)&&null!=urlParams[f]&&(c+=d+f+"="+urlParams[f],d="&")}else c=window.location.search;return c};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var c=0<b.indexOf("?")?1:0;
+if("1"==urlParams.offline)b+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),f;for(f in urlParams)0>mxUtils.indexOf(d,f)&&(b=0==c?b+"?":b+"&",null!=urlParams[f]&&(b+=f+"="+urlParams[f],c++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,d,e,g){b=new LinkDialog(this,b,c,d,!0,e,g);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var c=1;null==this.drive&&
+"function"!==typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;null!=this.notion&&c++;b&&isLocalStorage&&"1"==urlParams.browser&&c++;return c};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);
+this.menus.get("viewZoom").setEnabled(c);var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.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));
+b="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);this.menus.get("arrange").setEnabled(b);
+null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(b),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(b));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var b=this.getCurrentFile();return null!=b&&b.isEditable()||
+"1"==urlParams.embed&&this.editor.graph.isEnabled()};var k=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){k.apply(this,arguments);var b=this.editor.graph,c=this.getCurrentFile(),d=this.isDiagramActive(),e=b.getEditableCells(b.getSelectionCells());this.actions.get("pageSetup").setEnabled(d);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(d);this.actions.get("editData").setEnabled(0<
+e.length||b.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(d);this.actions.get("connectionArrows").setEnabled(d);this.actions.get("connectionPoints").setEnabled(d);this.actions.get("copyStyle").setEnabled(d&&!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(d&&0<e.length);this.actions.get("editGeometry").setEnabled(0<e.length&&b.getModel().isVertex(e[0]));this.actions.get("createShape").setEnabled(d);this.actions.get("createRevision").setEnabled(d);this.actions.get("moveToFolder").setEnabled(null!=
+c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(d&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.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!=
+c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(d&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var n=EditorUi.prototype.destroy;
+EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);n.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,d,e,g,k,n,v){var f=b.editor.graph;if("xml"==d)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==d)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(f.getSvg(e,
+g,k)),"image/svg+xml");else{var l=b.getFileData(!0,null,null,null,null,!0),m=f.getGraphBounds(),p=Math.floor(m.width*g/f.view.scale),q=Math.floor(m.height*g/f.view.scale);if(l.length<=MAX_REQUEST_SIZE&&p*q<MAX_AREA)if(b.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!b.isExportToCanvas()){var t={globalVars:f.getExportVariables()};v&&(t.grid={size:f.gridSize,steps:f.view.gridSteps,color:f.view.gridColor});b.saveRequest(c,d,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(c||"0")+
+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<n?"&dpi="+n:"")+"&bg="+(null!=e?e:"none")+"&w="+p+"&h="+q+"&border="+k+"&xml="+encodeURIComponent(l))})}else"png"==d?b.exportImage(g,null==e||"none"==e,!0,!1,!1,k,!0,!1,null,v,n):b.exportImage(g,!1,!0,!1,!1,k,!0,!1,"jpeg",v);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=
+this.pages)for(var d=0;d<this.pages.length;d++){var e=b;this.currentPage!=this.pages[d]&&(e=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[d]),e.model.setRoot(this.pages[d].root));c+=this.pages[d].getName()+" "+e.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,
+mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var f=document.createElement("div");f.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";f.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var g={};try{var k=mxSettings.getCustomLibraries();for(b=0;b<k.length;b++){var n=k[b];if("R"==n.substring(0,1)){var x=JSON.parse(decodeURIComponent(n.substring(1)));g[x[0]]=
+{id:x[0],title:x[1],downloadUrl:x[2]}}}}catch(A){}this.remoteInvoke("getCustomLibraries",null,null,function(b){f.innerHTML="";if(0==b.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<b.length;d++){var e=b[d];g[e.id]&&(c[e.id]=e);var l=this.addCheckbox(f,e.title,g[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,l)}},mxUtils.bind(this,
+function(b){f.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));f.appendChild(c)}));d.appendChild(f);d=new CustomDialog(this,d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,d;for(d in c)null==g[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],
+null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(C){this.handleError(C,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in g)c[d]||this.closeLibrary(new RemoteLibrary(this,null,g[d]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,
+340,390,!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(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],
+"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==d)throw Error("No callback for "+(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):d.callback&&d.callback.apply(this,b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,d,e,g){var f=!0,l=window.setTimeout(mxUtils.bind(this,function(){f=!1;g({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
+this.timeout),k=mxUtils.bind(this,function(){window.clearTimeout(l);f&&e.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(l);f&&g.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:k,error:m});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,
+c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=c);this.remoteWin.postMessage(JSON.stringify(e),"*")});try{var e=b.funtionName,f=this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var g=!1,l=0;l<f.allowedDomains.length;l++)if(c=="https://"+f.allowedDomains[l]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var k=b.functionArgs;Array.isArray(k)||
+(k=[]);if(f.isAsync)k.push(function(){d(Array.prototype.slice.apply(arguments))}),k.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,k);else{var n=this[e].apply(this,k);d([n])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(A){d(null,"Invalid Call: An error occurred, "+A.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=
+function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=c&&c(u)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
+(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,f,g=0,l=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
+funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)l();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):k()}),k)}}catch(E){console.log(E)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,
+size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],k,k,["filesInfo","files"])}catch(E){console.log(E)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g={};try{g=JSON.parse(b.data)}catch(H){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||
+(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,m()):l():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):k())}}catch(H){console.log(H)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(q){null!=c&&c(q)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,d,e,g){this.openDatabase(mxUtils.bind(this,function(f){try{g=g||"objects";Array.isArray(g)||(g=
+[g],b=[b],c=[c]);var k=f.transaction(g,"readwrite");k.oncomplete=d;k.onerror=e;for(f=0;f<g.length;f++)k.objectStore(g[f]).put(null!=b&&null!=b[f]?{key:b[f],data:c[f]}:c[f])}catch(v){null!=e&&e(v)}}),e)};EditorUi.prototype.removeDatabaseItem=function(b,c,d,e){this.openDatabase(mxUtils.bind(this,function(f){e=e||"objects";Array.isArray(e)||(e=[e],b=[b]);f=f.transaction(e,"readwrite");f.oncomplete=c;f.onerror=d;for(var g=0;g<e.length;g++)f.objectStore(e[g])["delete"](b[g])}),d)};EditorUi.prototype.getDatabaseItem=
+function(b,c,d,e){this.openDatabase(mxUtils.bind(this,function(f){try{e=e||"objects";var g=f.transaction([e],"readonly").objectStore(e).get(b);g.onsuccess=function(){c(g.result)};g.onerror=d}catch(u){null!=d&&d(u)}}),d)};EditorUi.prototype.getDatabaseItems=function(b,c,d){this.openDatabase(mxUtils.bind(this,function(e){try{d=d||"objects";var f=e.transaction([d],"readonly").objectStore(d).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),
+c.target.result["continue"]())};f.onerror=c}catch(u){null!=c&&c(u)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,d){this.openDatabase(mxUtils.bind(this,function(e){try{d=d||"objects";var f=e.transaction([d],"readonly").objectStore(d).getAllKeys();f.onsuccess=function(){b(f.result)};f.onerror=c}catch(t){null!=c&&c(t)}}),c)};EditorUi.prototype.commentsSupported=function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=
+this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,d){var e=this.getCurrentFile();null!=e?e.addComment(b,c,d):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?
+b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=
+d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,d,e,g,k,n,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
+return this.editor.loadUrl(b,c,d,e,g,k,n,v)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
+return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,d,e,g,k,n,v,x,A,z,B,y,C,D,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,d,e,g,k,n,v,x,A,z,B,y,C,D,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
+return this.editor.convertImages(b,c,d,e)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=function(b,c,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,d,e)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");
+return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,d,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,d,e,g)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var d=localStorage.key(c),e=localStorage.getItem(d);if(0<d.length&&(".scratchpad"==d||"."!=d.charAt(0))&&0<e.length){var g=
+"<mxfile "===e.substring(0,8)||"<?xml"===e.substring(0,5)||"\x3c!--[if IE]>"===e.substring(0,12),e="<mxlibrary>"===e.substring(0,11);(g||e)&&b.push(d)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
var CommentsWindow=function(b,e,d,c,g,k){function n(){for(var b=B.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==B&&c++;y.style.display=0==c?"block":"none"}function f(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}x={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var p=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),n()):f();x=null});p.className="geCommentEditBtn";m.appendChild(p);var y=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);x=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(y.click(),mxEvent.consume(b)):27==b.keyCode&&(p.click(),mxEvent.consume(b)))}));y.focus();y.className="geCommentEditBtn gePrimaryBtn";m.appendChild(y);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function l(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
@@ -11712,12 +11713,12 @@ function(b,d,e,f,g,k,l,m,n,p,q,t,u){b=parseInt(b);!isNaN(b)&&0<b&&c.exportImage(
b.length?c.editor.getGraphXml():g.encodeCells(b));c.copyImage(b,d)}));p.visible=Editor.enableNativeCipboard&&c.isExportToCanvas()&&!mxClient.IS_SF;p=c.actions.put("shadowVisible",new Action(mxResources.get("shadow"),function(){g.setShadowVisible(!g.shadowVisible)}));p.setToggleAction(!0);p.setSelectedCallback(function(){return g.shadowVisible});c.actions.put("about",new Action(mxResources.get("about")+" "+EditorUi.VERSION+"...",function(){c.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?
c.alert(c.editor.appName+" "+EditorUi.VERSION):c.openLink("https://www.diagrams.net/")}));c.actions.addAction("support...",function(){EditorUi.isElectronApp?c.openLink("https://github.com/jgraph/drawio-desktop/wiki/Getting-Support"):c.openLink("https://github.com/jgraph/drawio/wiki/Getting-Support")});c.actions.addAction("exportOptionsDisabled...",function(){c.handleError({message:mxResources.get("exportOptionsDisabledDetails")},mxResources.get("exportOptionsDisabled"))});c.actions.addAction("keyboardShortcuts...",
function(){!mxClient.IS_SVG||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.openLink("https://viewer.diagrams.net/#Uhttps%3A%2F%2Fviewer.diagrams.net%2Fshortcuts.svg"):c.openLink("shortcuts.svg")});c.actions.addAction("feedback...",function(){var b=new FeedbackDialog(c);c.showDialog(b.container,610,360,!0,!1);b.init()});c.actions.addAction("quickStart...",function(){c.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});c.actions.addAction("forkme",function(){EditorUi.isElectronApp?c.openLink("https://github.com/jgraph/drawio-desktop"):
-c.openLink("https://github.com/jgraph/drawio")}).label="Fork me on GitHub...";c.actions.addAction("downloadDesktop...",function(){c.openLink("https://get.diagrams.net/")});p=c.actions.addAction("tags",mxUtils.bind(this,function(){null==this.tagsWindow?(this.tagsWindow=new TagsWindow(c,document.body.offsetWidth-400,60,212,200),this.tagsWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("tags"))}),
-this.tagsWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));p.setToggleAction(!0);p.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.tagsWindow&&this.tagsWindow.window.isVisible()}));p=c.actions.addAction("findReplace...",mxUtils.bind(this,function(b,d){var e=g.isEnabled()&&(null==d||!mxEvent.isShiftDown(d)),f=e?"findReplace":"find",k=f+"Window";if(null==this[k]){var l=e?"min"==uiTheme?330:
-300:240;this[k]=new FindWindow(c,document.body.offsetWidth-(l+20),100,l,e?"min"==uiTheme?304:288:170,e);this[k].window.addListener("show",function(){c.fireEvent(new mxEventObject(f))});this[k].window.addListener("hide",function(){c.fireEvent(new mxEventObject(f))});this[k].window.setVisible(!0)}else this[k].window.setVisible(!this[k].window.isVisible())}),null,null,Editor.ctrlKey+"+F");p.setToggleAction(!0);p.setSelectedCallback(mxUtils.bind(this,function(){var b=g.isEnabled()?"findReplaceWindow":
-"findWindow";return null!=this[b]&&this[b].window.isVisible()}));c.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){var b=null==c.pages||1>=c.pages.length;if(b)c.exportVisio();else{var d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("formatVsdx"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(e);var f=c.addCheckbox(d,mxResources.get("allPages"),
-!b,b);f.style.marginBottom="16px";b=new CustomDialog(c,d,mxUtils.bind(this,function(){c.exportVisio(!f.checked)}),null,mxResources.get("export"));c.showDialog(b.container,300,130,!0,!0)}}));isLocalStorage&&null!=localStorage&&"1"!=urlParams.embed&&c.actions.addAction("configuration...",function(){var b=localStorage.getItem(Editor.configurationKey),d=[[mxResources.get("reset"),function(b,d){c.confirm(mxResources.get("areYouSure"),function(){try{localStorage.removeItem(Editor.configurationKey),mxEvent.isShiftDown(b)&&
-(localStorage.removeItem(".drawio-config"),localStorage.removeItem(".mode")),c.hideDialog(),c.alert(mxResources.get("restartForChangeRequired"))}catch(G){c.handleError(G)}})}]];EditorUi.isElectronApp||d.push([mxResources.get("share"),function(b,d){if(0<d.value.length)try{var e=JSON.parse(d.value),f=window.location.protocol+"//"+window.location.host+"/"+c.getSearch()+"#_CONFIG_"+Graph.compress(JSON.stringify(e)),g=new EmbedDialog(c,f);c.showDialog(g.container,450,240,!0);g.init()}catch(H){c.handleError(H)}else c.handleError({message:mxResources.get("invalidInput")})}]);
+c.openLink("https://github.com/jgraph/drawio")}).label="Fork me on GitHub...";c.actions.addAction("downloadDesktop...",function(){c.openLink("https://get.diagrams.net/")});p=c.actions.addAction("tags",mxUtils.bind(this,function(){null==this.tagsWindow?(this.tagsWindow=new TagsWindow(c,document.body.offsetWidth-400,60,212,200),this.tagsWindow.window.addListener("show",mxUtils.bind(this,function(){c.fireEvent(new mxEventObject("tags"));this.tagsWindow.window.fit()})),this.tagsWindow.window.addListener("hide",
+function(){c.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));p.setToggleAction(!0);p.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.tagsWindow&&this.tagsWindow.window.isVisible()}));p=c.actions.addAction("findReplace...",mxUtils.bind(this,function(b,d){var e=g.isEnabled()&&(null==d||!mxEvent.isShiftDown(d)),f=e?"findReplace":"find",k=f+
+"Window";if(null==this[k]){var l=e?"min"==uiTheme?330:300:240;this[k]=new FindWindow(c,document.body.offsetWidth-(l+20),100,l,e?"min"==uiTheme?304:288:170,e);this[k].window.addListener("show",function(){c.fireEvent(new mxEventObject(f))});this[k].window.addListener("hide",function(){c.fireEvent(new mxEventObject(f))});this[k].window.setVisible(!0)}else this[k].window.setVisible(!this[k].window.isVisible())}),null,null,Editor.ctrlKey+"+F");p.setToggleAction(!0);p.setSelectedCallback(mxUtils.bind(this,
+function(){var b=g.isEnabled()?"findReplaceWindow":"findWindow";return null!=this[b]&&this[b].window.isVisible()}));c.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){var b=null==c.pages||1>=c.pages.length;if(b)c.exportVisio();else{var d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("formatVsdx"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(e);
+var f=c.addCheckbox(d,mxResources.get("allPages"),!b,b);f.style.marginBottom="16px";b=new CustomDialog(c,d,mxUtils.bind(this,function(){c.exportVisio(!f.checked)}),null,mxResources.get("export"));c.showDialog(b.container,300,130,!0,!0)}}));isLocalStorage&&null!=localStorage&&"1"!=urlParams.embed&&c.actions.addAction("configuration...",function(){var b=localStorage.getItem(Editor.configurationKey),d=[[mxResources.get("reset"),function(b,d){c.confirm(mxResources.get("areYouSure"),function(){try{localStorage.removeItem(Editor.configurationKey),
+mxEvent.isShiftDown(b)&&(localStorage.removeItem(".drawio-config"),localStorage.removeItem(".mode")),c.hideDialog(),c.alert(mxResources.get("restartForChangeRequired"))}catch(G){c.handleError(G)}})}]];EditorUi.isElectronApp||d.push([mxResources.get("share"),function(b,d){if(0<d.value.length)try{var e=JSON.parse(d.value),f=window.location.protocol+"//"+window.location.host+"/"+c.getSearch()+"#_CONFIG_"+Graph.compress(JSON.stringify(e)),g=new EmbedDialog(c,f);c.showDialog(g.container,450,240,!0);g.init()}catch(H){c.handleError(H)}else c.handleError({message:mxResources.get("invalidInput")})}]);
b=new TextareaDialog(c,mxResources.get("configuration")+":",null!=b?JSON.stringify(JSON.parse(b),null,2):"",function(b){if(null!=b)try{if(0<b.length){var d=JSON.parse(b);localStorage.setItem(Editor.configurationKey,JSON.stringify(d))}else localStorage.removeItem(Editor.configurationKey);c.hideDialog();c.alert(mxResources.get("restartForChangeRequired"))}catch(G){c.handleError(G)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/configure-diagram-editor",d);b.textarea.style.width=
"600px";b.textarea.style.height="380px";c.showDialog(b.container,620,460,!0,!1);b.init()});if(mxClient.IS_CHROMEAPP||isLocalStorage){this.put("language",new Menu(mxUtils.bind(this,function(b,d){var e=mxUtils.bind(this,function(e){var f=""==e?mxResources.get("automatic"):mxLanguageMap[e],g=null;""!=f&&(g=b.addItem(f,null,mxUtils.bind(this,function(){mxSettings.setLanguage(e);mxSettings.save();mxClient.language=e;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);c.alert(mxResources.get("restartForChangeRequired"))}),
d),(e==mxLanguage||""==e&&null==mxLanguage)&&b.addCheckmark(g,Editor.checkmarkImage));return g});e("");b.addSeparator(d);for(var f in mxLanguageMap)e(f)})));var u=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(b){var c=u.apply(this,arguments);if(null!=c&&"1"!=urlParams.noLangIcon){var d=this.get("language");if(null!=d){d=c.addMenu("",d.funct);d.setAttribute("title",mxResources.get("language"));d.style.width="16px";d.style.paddingTop="2px";d.style.paddingLeft="4px";d.style.zIndex=
@@ -12006,26 +12007,27 @@ g([e,f(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.
mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&m.appIconClicked(b)}),null,null));e=m.menus.get("language");null!=e&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=d&&"1"!=urlParams.sketch?(null==la&&(e=t.addMenu("",e.funct),e.setAttribute("title",mxResources.get("language")),e.className="geToolbarButton",e.style.backgroundImage="url("+Editor.globeImage+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize=
"24px 24px",e.style.position="absolute",e.style.height="24px",e.style.width="24px",e.style.zIndex="1",e.style.right="8px",e.style.cursor="pointer",e.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(e),la=e),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=la&&(la.parentNode.removeChild(la),la=null))}B.apply(this,arguments);"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:
null!=mxSettings.settings.darkMode?mxSettings.settings.darkMode:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";l.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(l);"1"==urlParams.sketch&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=d||null!=urlParams.clibs||null!=urlParams.libs||
-null!=urlParams["search-shapes"])e(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);("1"==urlParams.sketch||1E3<=d)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));
-m.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,
-arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);
-m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";
-var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var z=m.menus.get("viewZoom"),A="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,N="1"==urlParams.sketch?document.createElement("div"):null,O="1"==urlParams.sketch?document.createElement("div"):null,W="1"==urlParams.sketch?document.createElement("div"):null,Y=mxUtils.bind(this,
-function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.graph.defaultForegroundColor=n.defaultForegroundColor,this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",Y);m.addListener("sketchModeChanged",Y);var ka=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)W.style.left=
-"10px",W.style.top="10px",O.style.left="10px",O.style.top="60px",N.style.top="10px",N.style.right="12px",N.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height=
-"";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",
-rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}W.style.left=m.diagramContainer.offsetLeft+"px";W.style.top=m.diagramContainer.offsetTop-W.offsetHeight-4+"px";O.style.display="";O.style.left=m.diagramContainer.offsetLeft-O.offsetWidth-4+"px";O.style.top=m.diagramContainer.offsetTop+"px";N.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-N.offsetWidth+"px";N.style.top=W.style.top;N.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-
-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=
-m.bottomResizer.style.visibility;p.style.display="none";W.style.visibility="";N.style.visibility=""}),aa=mxUtils.bind(this,function(){ja.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";ka()}),Y=mxUtils.bind(this,function(){aa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+
-c.width+4,c.y)});m.addListener("inlineFullscreenChanged",aa);m.addListener("editInlineStart",Y);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",Y);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";W.style.visibility="hidden";N.style.visibility="hidden";O.style.display="none"}));Graph.touchStyle&&
-(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ba=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ba.apply(this,arguments)}}if(null!=n.freehand){var na=n.freehand.createStyle;n.freehand.createStyle=function(b){return na.apply(this,arguments)+"sketch=0;"}}if("1"==
-urlParams.sketch){O.className="geToolbarContainer";N.className="geToolbarContainer";W.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=O;var pa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){pa||(m.statusContainer.style.display="none")});var fa=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});
-"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):
-m.editor.getStatus();fa(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",pa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",pa=!1)}else m.statusContainer.style.display="inline-block",fa(null),pa=!0;p.style.visibility=12<p.clientWidth?"":
-"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));S=c("diagram",null,Editor.menuImage);S.style.boxShadow="none";S.style.padding="6px";S.style.margin="0px";W.appendChild(S);mxEvent.disableContextMenu(S);mxEvent.addGestureListeners(S,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);
-m.statusContainer.style.position="";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(d-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var ca=document.createElement("a");ca.style.padding="0px";ca.style.boxShadow=
-"none";ca.className="geMenuItem";ca.style.display="inline-block";ca.style.width="40px";ca.style.height="12px";ca.style.marginBottom="-2px";ca.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";ca.style.backgroundPosition="top center";ca.style.backgroundRepeat="no-repeat";ca.setAttribute("title","Minimize");var R=!1,T=mxUtils.bind(this,function(){O.innerHTML="";if(!R){var b=function(b,c,e){b=f("",b.funct,null,c,b,e);b.style.width="40px";b.style.opacity="0.7";return d(b,null,"pointer")},
-d=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";O.appendChild(b);mxUtils.br(O);return b};d(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!0,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");d(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
+null!=urlParams["search-shapes"])e(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));var m=this;mxWindow.prototype.fit=function(){if(Editor.inlineFullscreen||null==m.embedViewport)mxUtils.fit(this.div);else{var b=parseInt(this.div.offsetLeft),c=parseInt(this.div.offsetWidth);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-
+c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=d)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=
+mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};
+var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText=
+"position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText=
+"position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var z=m.menus.get("viewZoom"),A="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,N="1"==urlParams.sketch?document.createElement("div"):null,O="1"==urlParams.sketch?document.createElement("div"):null,W="1"==urlParams.sketch?document.createElement("div"):null,Y=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),
+this.sidebar.graph.defaultForegroundColor=n.defaultForegroundColor,this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",Y);m.addListener("sketchModeChanged",Y);var ka=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)W.style.left="10px",W.style.top="10px",O.style.left="10px",O.style.top="60px",N.style.top="10px",N.style.right=
+"12px",N.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background=
+"transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}W.style.left=m.diagramContainer.offsetLeft+
+"px";W.style.top=m.diagramContainer.offsetTop-W.offsetHeight-4+"px";O.style.display="";O.style.left=m.diagramContainer.offsetLeft-O.offsetWidth-4+"px";O.style.top=m.diagramContainer.offsetTop+"px";N.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-N.offsetWidth+"px";N.style.top=W.style.top;N.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+
+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=m.bottomResizer.style.visibility;p.style.display="none";W.style.visibility="";N.style.visibility=
+""}),aa=mxUtils.bind(this,function(){ja.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";ka()}),Y=mxUtils.bind(this,function(){aa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",aa);m.addListener("editInlineStart",
+Y);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",Y);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";W.style.visibility="hidden";N.style.visibility="hidden";O.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==
+b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ba=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ba.apply(this,arguments)}}if(null!=n.freehand){var na=n.freehand.createStyle;n.freehand.createStyle=function(b){return na.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){O.className="geToolbarContainer";N.className="geToolbarContainer";
+W.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=O;var pa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){pa||(m.statusContainer.style.display="none")});var fa=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":
+"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();fa(b);var c=m.getCurrentFile(),
+c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",pa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",pa=!1)}else m.statusContainer.style.display="inline-block",fa(null),pa=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",
+mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));S=c("diagram",null,Editor.menuImage);S.style.boxShadow="none";S.style.padding="6px";S.style.margin="0px";W.appendChild(S);mxEvent.disableContextMenu(S);mxEvent.addGestureListeners(S,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);m.statusContainer.style.position="";m.statusContainer.style.display=
+"none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(d-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var ca=document.createElement("a");ca.style.padding="0px";ca.style.boxShadow="none";ca.className="geMenuItem";ca.style.display="inline-block";
+ca.style.width="40px";ca.style.height="12px";ca.style.marginBottom="-2px";ca.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";ca.style.backgroundPosition="top center";ca.style.backgroundRepeat="no-repeat";ca.setAttribute("title","Minimize");var R=!1,T=mxUtils.bind(this,function(){O.innerHTML="";if(!R){var b=function(b,c,e){b=f("",b.funct,null,c,b,e);b.style.width="40px";b.style.opacity="0.7";return d(b,null,"pointer")},d=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=
+null!=d?d:"default";b.style.margin="2px 0px";O.appendChild(b);mxUtils.br(O);return b};d(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!0,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");d(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
140,160,"",mxResources.get("note"),!0,!0,null,!0),mxResources.get("note"));d(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");d(m.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;orthogonalLoop=1;jettySize=auto;html=1;");
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;d(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));b=b.clone();b.style="edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;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=d(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(m.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);var e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index 951c8c5e..92b1ad95 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -12051,6 +12051,17 @@
else if (data.action == 'exit')
{
this.actions.get('exit').funct();
+
+ return;
+ }
+ else if (data.action == 'viewport')
+ {
+ if (data.viewport != null)
+ {
+ this.embedViewport = data.viewport;
+ }
+
+ return;
}
else if (data.action == 'export')
{
@@ -12401,15 +12412,20 @@
this.embedExportBorder = data.border;
}
- var border = this.embedExportBorder;
-
if (data.background != null)
{
this.embedExportBackground = data.background;
}
+ if (data.viewport != null)
+ {
+ this.embedViewport = data.viewport;
+ }
+
if (data.rect != null)
{
+ var border = this.embedExportBorder;
+
this.diagramContainer.style.border = '2px solid #295fcc';
this.diagramContainer.style.top = data.rect.top + 'px';
this.diagramContainer.style.left = data.rect.left + 'px';
diff --git a/src/main/webapp/js/diagramly/ElectronApp.js b/src/main/webapp/js/diagramly/ElectronApp.js
index bef5994c..4f85a82b 100644
--- a/src/main/webapp/js/diagramly/ElectronApp.js
+++ b/src/main/webapp/js/diagramly/ElectronApp.js
@@ -843,6 +843,13 @@ mxStencilRegistry.allowEval = false;
EditorUi.prototype.fileLoaded = function(file)
{
+ var fs = require('fs');
+ var oldFile = this.getCurrentFile();
+
+ if (oldFile != null && oldFile.fileObject != null)
+ {
+ fs.unwatchFile(oldFile.fileObject.path);
+ }
if (file != null)
{
@@ -875,6 +882,43 @@ mxStencilRegistry.allowEval = false;
this.addRecent({id: file.fileObject.path, title: title});
}
+
+ fs.watchFile(file.fileObject.path, mxUtils.bind(this, function(curr, prev)
+ {
+ //File is changed (not just accessed)
+ if (curr.mtimeMs != prev.mtimeMs)
+ {
+ //Ignore our own changes
+ if (file.unwatchedSaves || (file.state != null && file.stat.mtimeMs == curr.mtimeMs))
+ {
+ file.unwatchedSaves = false;
+ return;
+ }
+
+ file.inConflictState = true;
+
+ this.showError(mxResources.get('externalChanges'),
+ mxResources.get('fileChangedSyncDialog'),
+ mxResources.get('synchronize'), mxUtils.bind(this, function()
+ {
+ if (this.spinner.spin(document.body, mxResources.get('updatingDocument')))
+ {
+ file.synchronizeFile(mxUtils.bind(this, function()
+ {
+ this.spinner.stop();
+ }), mxUtils.bind(this, function(err)
+ {
+ file.handleFileError(err, true);
+ }));
+ }
+ }), null, null, null,
+ mxResources.get('cancel'), mxUtils.bind(this, function()
+ {
+ this.hideDialog();
+ file.handleFileError(null, false);
+ }), 340, 150);
+ }
+ }));
}
origFileLoaded.apply(this, arguments);
@@ -1342,6 +1386,8 @@ mxStencilRegistry.allowEval = false;
this.fileObject.bkpPath = getBkpFilePath(this.fileObject.path);
}
+ this.unwatchedSaves = true; //Multiple saves doesn't call watch the same number, so use a boolean and check for changes
+
App.filesWorkerReq({
action: 'saveFile',
fileObject: this.fileObject,
diff --git a/src/main/webapp/js/diagramly/Menus.js b/src/main/webapp/js/diagramly/Menus.js
index 9fe15d03..4d6178e9 100644
--- a/src/main/webapp/js/diagramly/Menus.js
+++ b/src/main/webapp/js/diagramly/Menus.js
@@ -934,10 +934,11 @@
if (this.tagsWindow == null)
{
this.tagsWindow = new TagsWindow(editorUi, document.body.offsetWidth - 400, 60, 212, 200);
- this.tagsWindow.window.addListener('show', function()
+ this.tagsWindow.window.addListener('show', mxUtils.bind(this, function()
{
editorUi.fireEvent(new mxEventObject('tags'));
- });
+ this.tagsWindow.window.fit();
+ }));
this.tagsWindow.window.addListener('hide', function()
{
editorUi.fireEvent(new mxEventObject('tags'));
diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js
index d55c4e0c..d1098354 100644
--- a/src/main/webapp/js/diagramly/Minimal.js
+++ b/src/main/webapp/js/diagramly/Minimal.js
@@ -1467,6 +1467,30 @@ EditorUi.initMinimalTheme = function()
}
}
+ // Overrides mxWindow.fit to allow for embedViewport
+ var ui = this;
+
+ mxWindow.prototype.fit = function()
+ {
+ if (!Editor.inlineFullscreen && ui.embedViewport != null)
+ {
+ var left = parseInt(this.div.offsetLeft);
+ var width = parseInt(this.div.offsetWidth);
+ var right = ui.embedViewport.x + ui.embedViewport.width;
+ this.div.style.left = Math.max(ui.embedViewport.x, Math.min(left, right - width)) + 'px';
+
+ var top = parseInt(this.div.offsetTop);
+ var height = parseInt(this.div.offsetHeight);
+ var bottom = ui.embedViewport.y + ui.embedViewport.height;
+
+ this.div.style.top = Math.max(ui.embedViewport.y, Math.min(top, bottom - height)) + 'px';
+ }
+ else
+ {
+ mxUtils.fit(this.div);
+ }
+ };
+
// Overrides insert ellipse shortcut
this.keyHandler.bindAction(75, true, 'toggleShapes', true); // Ctrl+Shift+K
diff --git a/src/main/webapp/js/grapheditor/Actions.js b/src/main/webapp/js/grapheditor/Actions.js
index fd36a2e6..d3dbf25e 100644
--- a/src/main/webapp/js/grapheditor/Actions.js
+++ b/src/main/webapp/js/grapheditor/Actions.js
@@ -1685,10 +1685,11 @@ Actions.prototype.init = function()
{
// LATER: Check outline window for initial placement
this.layersWindow = new LayersWindow(ui, document.body.offsetWidth - 280, 120, 212, 200);
- this.layersWindow.window.addListener('show', function()
+ this.layersWindow.window.addListener('show', mxUtils.bind(this, function()
{
ui.fireEvent(new mxEventObject('layers'));
- });
+ this.layersWindow.window.fit();
+ }));
this.layersWindow.window.addListener('hide', function()
{
ui.fireEvent(new mxEventObject('layers'));
@@ -1717,10 +1718,11 @@ Actions.prototype.init = function()
{
// LATER: Check layers window for initial placement
this.outlineWindow = new OutlineWindow(ui, document.body.offsetWidth - 260, 100, 180, 180);
- this.outlineWindow.window.addListener('show', function()
+ this.outlineWindow.window.addListener('show', mxUtils.bind(this, function()
{
ui.fireEvent(new mxEventObject('outline'));
- });
+ this.outlineWindow.window.fit();
+ }));
this.outlineWindow.window.addListener('hide', function()
{
ui.fireEvent(new mxEventObject('outline'));
diff --git a/src/main/webapp/js/grapheditor/Editor.js b/src/main/webapp/js/grapheditor/Editor.js
index 70b57855..75aaaf2c 100644
--- a/src/main/webapp/js/grapheditor/Editor.js
+++ b/src/main/webapp/js/grapheditor/Editor.js
@@ -802,10 +802,11 @@ function Dialog(editorUi, elt, w, h, modal, closable, onClose, noScroll, transpa
var h0 = h;
var padding = transparent? 0 : 64; //No padding needed for transparent dialogs
- var ds = mxUtils.getDocumentSize();
+ var ds = (!Editor.inlineFullscreen && editorUi.embedViewport != null) ?
+ mxUtils.clone(editorUi.embedViewport) : mxUtils.getDocumentSize();
// Workaround for print dialog offset in viewer lightbox
- if (window.innerHeight != null)
+ if (editorUi.embedViewport == null && window.innerHeight != null)
{
ds.height = window.innerHeight;
}
@@ -844,6 +845,13 @@ function Dialog(editorUi, elt, w, h, modal, closable, onClose, noScroll, transpa
left += origin.x;
top += origin.y;
+ if (!Editor.inlineFullscreen && editorUi.embedViewport != null)
+ {
+ this.bg.style.height = mxUtils.getDocumentSize().height + 'px';
+ top += editorUi.embedViewport.y;
+ left += editorUi.embedViewport.x;
+ }
+
if (modal)
{
document.body.appendChild(this.bg);
@@ -853,7 +861,7 @@ function Dialog(editorUi, elt, w, h, modal, closable, onClose, noScroll, transpa
var pos = this.getPosition(left, top, w, h);
left = pos.x;
top = pos.y;
-
+
div.style.width = w + 'px';
div.style.height = h + 'px';
div.style.left = left + 'px';
@@ -926,6 +934,11 @@ function Dialog(editorUi, elt, w, h, modal, closable, onClose, noScroll, transpa
dh = ds.height;
this.bg.style.height = dh + 'px';
+ if (!Editor.inlineFullscreen && editorUi.embedViewport != null)
+ {
+ this.bg.style.height = mxUtils.getDocumentSize().height + 'px';
+ }
+
left = Math.max(1, Math.round((ds.width - w - padding) / 2));
top = Math.max(1, Math.round((dh - h - editorUi.footerHeight) / 3));
w = (document.body != null) ? Math.min(w0, document.body.scrollWidth - padding) : w0;
diff --git a/src/main/webapp/js/viewer-static.min.js b/src/main/webapp/js/viewer-static.min.js
index 4e95a05b..a5eacae0 100644
--- a/src/main/webapp/js/viewer-static.min.js
+++ b/src/main/webapp/js/viewer-static.min.js
@@ -201,7 +201,7 @@ null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=
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";
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"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:"15.5.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/"),
+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:"15.6.0",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_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),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/"),
@@ -2061,13 +2061,14 @@ Editor.prototype.setFilename=function(b){this.filename=b};
Editor.prototype.createUndoManager=function(){var b=this.graph,c=new mxUndoManager;this.undoListener=function(b,e){c.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(b,c){this.undoListener.apply(this,arguments)});b.getModel().addListener(mxEvent.UNDO,e);b.getView().addListener(mxEvent.UNDO,e);e=function(c,e){var g=b.getSelectionCellsForChanges(e.getProperty("edit").changes,function(b){return!(b instanceof mxChildChange)});if(0<g.length){b.getModel();for(var k=[],d=0;d<
g.length;d++)null!=b.view.getState(g[d])&&k.push(g[d]);b.setSelectionCells(k)}};c.addListener(mxEvent.UNDO,e);c.addListener(mxEvent.REDO,e);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(b){this.consumer=this.producer=null;this.done=b;this.args=null};OpenFile.prototype.setConsumer=function(b){this.consumer=b;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(b){this.cancel(!0);mxUtils.alert(b)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(b){null!=this.done&&this.done(null!=b?b:!0)};
-function Dialog(b,c,e,k,g,n,t,d,f,l,m){var p=f?57:0,q=e,u=k,v=f?0:64,y=mxUtils.getDocumentSize();null!=window.innerHeight&&(y.height=window.innerHeight);var x=y.height,C=Math.max(1,Math.round((y.width-e-v)/2)),H=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-v):e;k=Math.min(k,x-v);0<b.dialogs.length&&(this.zIndex+=2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",
-this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));y=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=y.x+"px";this.bg.style.top=y.y+"px";C+=y.x;H+=y.y;g&&document.body.appendChild(this.bg);var D=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(C,H,e,k);C=g.x;H=g.y;D.style.width=e+"px";D.style.height=k+"px";D.style.left=C+"px";D.style.top=H+"px";D.style.zIndex=
-this.zIndex;D.appendChild(c);document.body.appendChild(D);!d&&c.clientHeight>D.clientHeight-v&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(n&&(n=document.createElement("img"),n.setAttribute("src",Dialog.prototype.closeImage),n.setAttribute("title",mxResources.get("close")),n.className="geDialogClose",n.style.top=H+14+"px",n.style.left=C+e+38-p+"px",n.style.zIndex=this.zIndex,mxEvent.addListener(n,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(n),this.dialogImg=
-n,!m)){var E=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){E=!0}),null,mxUtils.bind(this,function(d){E&&(b.hideDialog(!0),E=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();null!=f&&(q=e=f.w,u=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";C=Math.max(1,Math.round((f.width-e-v)/2));H=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(q,document.body.scrollWidth-v):q;k=Math.min(u,x-v);f=this.getPosition(C,
-H,e,k);C=f.x;H=f.y;D.style.left=C+"px";D.style.top=H+"px";D.style.width=e+"px";D.style.height=k+"px";!d&&c.clientHeight>D.clientHeight-v&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=H+14+"px",this.dialogImg.style.left=C+e+38-p+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=D;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
-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";
+function Dialog(b,c,e,k,g,n,t,d,f,l,m){var p=f?57:0,q=e,u=k,v=f?0:64,y=Editor.inlineFullscreen||null==b.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(b.embedViewport);null==b.embedViewport&&null!=window.innerHeight&&(y.height=window.innerHeight);var x=y.height,C=Math.max(1,Math.round((y.width-e-v)/2)),H=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-v):e;k=Math.min(k,x-v);0<b.dialogs.length&&(this.zIndex+=
+2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));y=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=y.x+"px";this.bg.style.top=y.y+"px";C+=y.x;H+=y.y;Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
+H+=b.embedViewport.y,C+=b.embedViewport.x);g&&document.body.appendChild(this.bg);var D=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(C,H,e,k);C=g.x;H=g.y;D.style.width=e+"px";D.style.height=k+"px";D.style.left=C+"px";D.style.top=H+"px";D.style.zIndex=this.zIndex;D.appendChild(c);document.body.appendChild(D);!d&&c.clientHeight>D.clientHeight-v&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(n&&(n=document.createElement("img"),n.setAttribute("src",Dialog.prototype.closeImage),
+n.setAttribute("title",mxResources.get("close")),n.className="geDialogClose",n.style.top=H+14+"px",n.style.left=C+e+38-p+"px",n.style.zIndex=this.zIndex,mxEvent.addListener(n,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(n),this.dialogImg=n,!m)){var F=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){F=!0}),null,mxUtils.bind(this,function(d){F&&(b.hideDialog(!0),F=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();
+null!=f&&(q=e=f.w,u=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");C=Math.max(1,Math.round((f.width-e-v)/2));H=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(q,document.body.scrollWidth-v):q;k=Math.min(u,x-v);f=this.getPosition(C,H,e,k);C=f.x;H=f.y;D.style.left=C+"px";D.style.top=H+"px";D.style.width=e+"px";D.style.height=k+"px";!d&&
+c.clientHeight>D.clientHeight-v&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=H+14+"px",this.dialogImg.style.left=C+e+38-p+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=D;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
+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+
"/clear.gif";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(b,c){return new mxPoint(b,c)};Dialog.prototype.close=function(b,c){if(null!=this.onDialogClose){if(0==this.onDialogClose(b,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(b,c,e,k,g,n,t,d,f,l,m){f=null!=f?f:!0;var p=document.createElement("div");p.style.textAlign="center";if(null!=c){var q=document.createElement("div");q.style.padding="0px";q.style.margin="0px";q.style.fontSize="18px";q.style.paddingBottom="16px";q.style.marginBottom="10px";q.style.borderBottom="1px solid #c0c0c0";q.style.color="gray";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.overflow="hidden";mxUtils.write(q,c);q.setAttribute("title",c);p.appendChild(q)}c=
@@ -2095,9 +2096,9 @@ e.height==l.format.height?(d.value=l.key,n.setAttribute("checked","checked"),n.d
d.value="custom",f.style.display="none",m.style.display="")}}c="format-"+c;var n=document.createElement("input");n.setAttribute("name",c);n.setAttribute("type","radio");n.setAttribute("value","portrait");var t=document.createElement("input");t.setAttribute("name",c);t.setAttribute("type","radio");t.setAttribute("value","landscape");var d=document.createElement("select");d.style.marginBottom="8px";d.style.borderRadius="4px";d.style.border="1px solid rgb(160, 160, 160)";d.style.width="206px";var f=
document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";n.style.marginRight="6px";f.appendChild(n);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));f.appendChild(c);t.style.marginLeft="10px";t.style.marginRight="6px";f.appendChild(t);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));f.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 q=document.createElement("input");q.setAttribute("size","7");q.style.textAlign="right";m.appendChild(q);mxUtils.write(m," in");f.style.display="none";m.style.display="none";for(var u={},v=PageSetupDialog.getFormats(),y=0;y<v.length;y++){var x=v[y];u[x.key]=x;var C=document.createElement("option");C.setAttribute("value",
-x.key);mxUtils.write(C,x.title);d.appendChild(C)}var H=!1;g();b.appendChild(d);mxUtils.br(b);b.appendChild(f);b.appendChild(m);var D=e,E=function(b,c){var l=u[d.value];null!=l.format?(p.value=l.format.width/100,q.value=l.format.height/100,m.style.display="none",f.style.display=""):(f.style.display="none",m.style.display="");l=parseFloat(p.value);if(isNaN(l)||0>=l)p.value=e.width/100;l=parseFloat(q.value);if(isNaN(l)||0>=l)q.value=e.height/100;l=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),
-Math.floor(100*parseFloat(q.value)));"custom"!=d.value&&t.checked&&(l=new mxRectangle(0,0,l.height,l.width));c&&H||l.width==D.width&&l.height==D.height||(D=l,null!=k&&k(D))};mxEvent.addListener(c,"click",function(b){n.checked=!0;E(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;E(b);mxEvent.consume(b)});mxEvent.addListener(p,"blur",E);mxEvent.addListener(p,"click",E);mxEvent.addListener(q,"blur",E);mxEvent.addListener(q,"click",E);mxEvent.addListener(t,"change",E);mxEvent.addListener(n,
-"change",E);mxEvent.addListener(d,"change",function(b){H="custom"==d.value;E(b,!0)});E();return{set:function(b){e=b;g(null,null,!0)},get:function(){return D},widthInput:p,heightInput:q}};
+x.key);mxUtils.write(C,x.title);d.appendChild(C)}var H=!1;g();b.appendChild(d);mxUtils.br(b);b.appendChild(f);b.appendChild(m);var D=e,F=function(b,c){var l=u[d.value];null!=l.format?(p.value=l.format.width/100,q.value=l.format.height/100,m.style.display="none",f.style.display=""):(f.style.display="none",m.style.display="");l=parseFloat(p.value);if(isNaN(l)||0>=l)p.value=e.width/100;l=parseFloat(q.value);if(isNaN(l)||0>=l)q.value=e.height/100;l=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),
+Math.floor(100*parseFloat(q.value)));"custom"!=d.value&&t.checked&&(l=new mxRectangle(0,0,l.height,l.width));c&&H||l.width==D.width&&l.height==D.height||(D=l,null!=k&&k(D))};mxEvent.addListener(c,"click",function(b){n.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(p,"blur",F);mxEvent.addListener(p,"click",F);mxEvent.addListener(q,"blur",F);mxEvent.addListener(q,"click",F);mxEvent.addListener(t,"change",F);mxEvent.addListener(n,
+"change",F);mxEvent.addListener(d,"change",function(b){H="custom"==d.value;F(b,!0)});F();return{set:function(b){e=b;g(null,null,!0)},get:function(){return D},widthInput:p,heightInput:q}};
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}]};
@@ -2134,7 +2135,7 @@ function(){return!1},k.panningHandler.isForcePanningEvent=function(b){return!mxE
this.setDefaultStyle=function(b){try{var d=k.view.getState(b);if(null!=d){var f=b.clone();f.style="";var c=k.getCellStyle(f);b=[];var f=[],e;for(e in d.style)c[e]!=d.style[e]&&(b.push(d.style[e]),f.push(e));for(var l=k.getModel().getStyle(d.cell),g=null!=l?l.split(";"):[],l=0;l<g.length;l++){var m=g[l],p=m.indexOf("=");if(0<=p){e=m.substring(0,p);var q=m.substring(p+1);null!=c[e]&&"none"==q&&(b.push(q),f.push(e))}}k.getModel().isEdge(d.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged",
"keys",f,"values",b,"cells",[d.cell]))}}catch(ba){this.handleError(ba)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var d=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<d.length;c++)0>mxUtils.indexOf(n,d[c])&&n.push(d[c]);var f="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),
l=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["align","verticalAlign"],["opacity"],["html"]];for(c=0;c<l.length;c++)for(e=0;e<l[c].length;e++)n.push(l[c][e]);for(c=0;c<t.length;c++)0>mxUtils.indexOf(n,t[c])&&n.push(t[c]);var m=function(b,d,f,c,e,g,m){c=null!=c?c:k.currentVertexStyle;e=null!=e?e:k.currentEdgeStyle;f=null!=f?f:k.getModel();
-if(m){m=[];for(var F=0;F<b.length;F++)m=m.concat(f.getDescendants(b[F]));b=m}f.beginUpdate();try{for(F=0;F<b.length;F++){var p=b[F],q;if(d)q=["fontSize","fontFamily","fontColor"];else{var v=f.getStyle(p),A=null!=v?v.split(";"):[];q=n.slice();for(var u=0;u<A.length;u++){var J=A[u],x=J.indexOf("=");if(0<=x){var y=J.substring(0,x),N=mxUtils.indexOf(q,y);0<=N&&q.splice(N,1);for(m=0;m<l.length;m++){var D=l[m];if(0<=mxUtils.indexOf(D,y))for(var B=0;B<D.length;B++){var E=mxUtils.indexOf(q,D[B]);0<=E&&q.splice(E,
+if(m){m=[];for(var E=0;E<b.length;E++)m=m.concat(f.getDescendants(b[E]));b=m}f.beginUpdate();try{for(E=0;E<b.length;E++){var p=b[E],q;if(d)q=["fontSize","fontFamily","fontColor"];else{var v=f.getStyle(p),A=null!=v?v.split(";"):[];q=n.slice();for(var u=0;u<A.length;u++){var J=A[u],x=J.indexOf("=");if(0<=x){var y=J.substring(0,x),N=mxUtils.indexOf(q,y);0<=N&&q.splice(N,1);for(m=0;m<l.length;m++){var D=l[m];if(0<=mxUtils.indexOf(D,y))for(var B=0;B<D.length;B++){var F=mxUtils.indexOf(q,D[B]);0<=F&&q.splice(F,
1)}}}}}var Q=f.isEdge(p);m=Q?e:c;for(var C=f.getStyle(p),u=0;u<q.length;u++){var y=q[u],H=m[y];null!=H&&"edgeStyle"!=y&&("shape"!=y||Q)&&(!Q||g||0>mxUtils.indexOf(t,y))&&(C=mxUtils.setStyle(C,y,H))}Editor.simpleLabels&&(C=mxUtils.setStyle(mxUtils.setStyle(C,"html",null),"whiteSpace",null));f.setStyle(p,C)}}finally{f.endUpdate()}return b};k.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){m(d.getProperty("cells"),
!0)});this.insertHandler=m;this.createDivs();this.createUi();this.refresh();var p=mxUtils.bind(this,function(b){null==b&&(b=window.event);return k.isEditing()||null!=b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=p,this.menubarContainer.onmousedown=p,this.toolbarContainer.onselectstart=p,this.toolbarContainer.onmousedown=p,this.diagramContainer.onselectstart=p,this.diagramContainer.onmousedown=p,this.sidebarContainer.onselectstart=p,this.sidebarContainer.onmousedown=
p,this.formatContainer.onselectstart=p,this.formatContainer.onmousedown=p,this.footerContainer.onselectstart=p,this.footerContainer.onmousedown=p,null!=this.tabContainer&&(this.tabContainer.onselectstart=p));!this.editor.chromeless||this.editor.editable?(c=function(b){if(null!=b){var d=mxEvent.getSource(b);if("A"==d.nodeName)for(;null!=d;){if("geHint"==d.className)return!0;d=d.parentNode}}return p(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,
@@ -2142,8 +2143,8 @@ p,this.formatContainer.onselectstart=p,this.formatContainer.onmousedown=p,this.f
function(b){var d=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(b)-d.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(b)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var u=!1,v=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(b,d){return u||v.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(b){32!=b.which||k.isEditing()?
mxEvent.isConsumed(b)||27!=b.keyCode||this.hideDialog(null,!0):(u=!0,this.hoverIcons.reset(),k.container.style.cursor="move",k.isEditing()||mxEvent.getSource(b)!=k.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){k.container.style.cursor="";u=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var y=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return y.apply(this,
arguments)||u||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var x=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(b){return x.apply(this,arguments)||13==b.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxClient.IS_SF&&mxEvent.isShiftDown(b))};var C=k.isZoomWheelEvent;
-k.isZoomWheelEvent=function(){return u||C.apply(this,arguments)};var H=!1,D=null,E=null,M=null,G=mxUtils.bind(this,function(){if(null!=this.toolbar&&H!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=f}b=this.toolbar.fontMenu;f=this.toolbar.sizeMenu;if(null==M)this.toolbar.createTextToolbar();else{for(var c=0;c<M.length;c++)this.toolbar.container.appendChild(M[c]);
-this.toolbar.fontMenu=D;this.toolbar.sizeMenu=E}H=k.cellEditor.isContentEditing();D=b;E=f;M=d}}),K=this,B=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){B.apply(this,arguments);G();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=K.toolbar&&(K.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),K.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},
+k.isZoomWheelEvent=function(){return u||C.apply(this,arguments)};var H=!1,D=null,F=null,M=null,G=mxUtils.bind(this,function(){if(null!=this.toolbar&&H!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=f}b=this.toolbar.fontMenu;f=this.toolbar.sizeMenu;if(null==M)this.toolbar.createTextToolbar();else{for(var c=0;c<M.length;c++)this.toolbar.container.appendChild(M[c]);
+this.toolbar.fontMenu=D;this.toolbar.sizeMenu=F}H=k.cellEditor.isContentEditing();D=b;F=f;M=d}}),K=this,B=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){B.apply(this,arguments);G();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=K.toolbar&&(K.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),K.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},
0))};mxEvent.addListener(k.cellEditor.textarea,"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var L=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{L.apply(this,arguments),G()}catch(Q){K.handleError(Q)}};k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(da){}var O=
k.fireMouseEvent;k.fireMouseEvent=function(b,d,f){b==mxEvent.MOUSE_DOWN&&this.container.focus();O.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,f){this.menus.createPopupMenu(b,d,f)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(b){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,
function(b,d){var f=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(f.push(d.getProperty("terminal")),window.setTimeout(function(){null!=K.hoverIcons&&K.hoverIcons.update(k.view.getState(f[f.length-1]))},0));m(f)});this.addListener("styleChanged",mxUtils.bind(this,function(b,c){var e=c.getProperty("cells"),l=!1,g=!1;if(0<e.length)for(var m=0;m<e.length&&(l=k.getModel().isVertex(e[m])||l,!(g=k.getModel().isEdge(e[m])||g)||!l);m++);else g=l=!0;for(var e=c.getProperty("keys"),p=c.getProperty("values"),
@@ -2190,9 +2191,9 @@ EditorUi.prototype.initClipboard=function(){var b=this,c=mxClipboard.cut;mxClipb
null;c.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):g=e.apply(this,arguments);b.updatePasteActionStates();return g};var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);b.updatePasteActionStates()};var g=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(c,e){g.apply(this,arguments);b.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var b=this.editor.graph;b.timerAutoScroll=!0;b.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((b.container.offsetWidth-34)/b.view.scale)),Math.max(0,Math.round((b.container.offsetHeight-34)/b.view.scale)))};b.view.getBackgroundPageBounds=function(){var b=this.graph.getPageLayout(),d=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+b.x*d.width),this.scale*(this.translate.y+b.y*d.height),this.scale*b.width*d.width,
-this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,f){b=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,b.width*d.width,b.height*d.height)};var c=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(d,f,c,e){if(null!=b.container&&!b.isViewer()){c=null!=c?c:0;e=null!=e?e:0;var l=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),g=mxUtils.hasScrollbars(b.container),m=b.view.translate,F=b.view.scale,k=mxRectangle.fromRectangle(l);
-k.x=k.x/F-m.x;k.y=k.y/F-m.y;k.width/=F;k.height/=F;var m=b.container.scrollTop,p=b.container.scrollLeft,q=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)q+=3;var n=b.container.offsetWidth-q,q=b.container.offsetHeight-q;d=d?Math.max(.3,Math.min(f||1,n/k.width)):F;f=(n-d*k.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(q-d*k.height)/this.lightboxVerticalDivider/d;g&&(f=Math.max(f,0),v=Math.max(v,0));if(g||l.width<n||l.height<q)b.view.scaleAndTranslate(d,Math.floor(f-
-k.x),Math.floor(v-k.y)),b.container.scrollTop=m*d/F,b.container.scrollLeft=p*d/F;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/F),Math.floor(l.y+e/F))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,f){b=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,b.width*d.width,b.height*d.height)};var c=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(d,f,c,e){if(null!=b.container&&!b.isViewer()){c=null!=c?c:0;e=null!=e?e:0;var l=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),g=mxUtils.hasScrollbars(b.container),m=b.view.translate,E=b.view.scale,k=mxRectangle.fromRectangle(l);
+k.x=k.x/E-m.x;k.y=k.y/E-m.y;k.width/=E;k.height/=E;var m=b.container.scrollTop,p=b.container.scrollLeft,q=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)q+=3;var n=b.container.offsetWidth-q,q=b.container.offsetHeight-q;d=d?Math.max(.3,Math.min(f||1,n/k.width)):E;f=(n-d*k.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(q-d*k.height)/this.lightboxVerticalDivider/d;g&&(f=Math.max(f,0),v=Math.max(v,0));if(g||l.width<n||l.height<q)b.view.scaleAndTranslate(d,Math.floor(f-
+k.x),Math.floor(v-k.y)),b.container.scrollTop=m*d/E,b.container.scrollLeft=p*d/E;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/E),Math.floor(l.y+e/E))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(d){b.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(d){b.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var g=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.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=b.isViewer()?"0":"50%";mxClient.IS_IE||mxClient.IS_IE11?(this.chromelessToolbar.style.backgroundColor="#ffffff",this.chromelessToolbar.style.border="3px solid black"):this.chromelessToolbar.style.backgroundColor="#000000";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","16px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,
"transition","opacity 600ms ease-in-out");var n=mxUtils.bind(this,function(){var d=mxUtils.getCurrentStyle(b.container);b.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=d?parseInt(d["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",n);n();var t=0,n=mxUtils.bind(this,function(b,d,f){t++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight=
@@ -2209,8 +2210,8 @@ Editor.layersImage,mxResources.get("layers")),C=b.getModel();C.addListener(mxEve
function(d){g.fullscreenBtn.url?b.openLink(g.fullscreenBtn.url):b.openLink(window.location.href);mxEvent.consume(d)}),Editor.fullscreenImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(g.closeBtn&&window.self===window.top||b.lightbox&&("1"==urlParams.close||this.container!=document.body))&&n(mxUtils.bind(this,function(b){"1"==urlParams.close||g.closeBtn?window.close():(this.destroy(),mxEvent.consume(b))}),Editor.closeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display=
"none";b.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");b.container.appendChild(this.chromelessToolbar);mxEvent.addListener(b.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||y(30),v())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",
mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hideTooltip();mxEvent.isShiftDown(d)?v():y(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?v():y(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||y(30)}));var D=b.getTolerance();b.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,f){this.startX=
-f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<D&&Math.abs(this.scrollTop-b.container.scrollTop)<D&&Math.abs(this.startX-f.getGraphX())<D&&Math.abs(this.startY-f.getGraphY())<D&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?v():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var E=
-b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}E.apply(this,arguments)};if(!b.isViewer()){var M=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),f=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
+f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<D&&Math.abs(this.scrollTop-b.container.scrollTop)<D&&Math.abs(this.startX-f.getGraphX())<D&&Math.abs(this.startY-f.getGraphY())<D&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?v():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var F=
+b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}F.apply(this,arguments)};if(!b.isViewer()){var M=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),f=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
f.x+d.width*c.width),l=Math.ceil(2*f.y+d.height*c.height),g=b.minimumGraphSize;if(null==g||g.width!=e||g.height!=l)b.minimumGraphSize=new mxRectangle(0,0,e,l);e=f.x-d.x*c.width;f=f.y-d.y*c.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==f?M.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=b.view.translate.x,c=b.view.translate.y,b.view.setTranslate(e,f),b.container.scrollLeft+=Math.round((e-d)*b.view.scale),b.container.scrollTop+=Math.round((f-
c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var G=b.view.getBackgroundPane(),K=b.view.getDrawPane();b.cumulativeZoomFactor=1;var B=null,L=null,O=null,da=null,N=null,Q=function(d){null!=B&&window.clearTimeout(B);window.setTimeout(function(){if(!b.isMouseDown||da)B=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
"transform-origin",null),mxUtils.setPrefixedStyle(b.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=""),b.view.getDecoratorPane().style.opacity="",b.view.getOverlayPane().style.opacity="");var d=new mxPoint(b.container.scrollLeft,b.container.scrollTop),
@@ -2331,7 +2332,7 @@ function(){var b=p.apply(this,arguments);if(this.graph.pageVisible){for(var d=[]
function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var q=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=q.apply(this,arguments),f=new mxDictionary,c=[],e=0;e<d.length;e++){var l=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&
this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==l||f.get(l)||(f.put(l,!0),c.push(l))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,f,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));
u.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var v=new mxRubberband(this);this.getRubberband=function(){return v};var y=(new Date).getTime(),x=0,C=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;C.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var H=
-this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&H.apply(this,arguments)};var D=this.isToggleEvent;this.isToggleEvent=function(b){return D.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var E=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return E.apply(this,
+this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&H.apply(this,arguments)};var D=this.isToggleEvent;this.isToggleEvent=function(b){return D.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var F=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return F.apply(this,
arguments)&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isControlDown(b.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var M=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(M=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=M)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var G=this.click;this.click=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);if(this.isEnabled()&&!d||b.isConsumed())return G.apply(this,arguments);var f=d?b.sourceState.cell:b.getCell();null!=f&&(f=this.getClickableLinkForCell(f),null!=f&&(this.isCustomLink(f)?
this.customLinkClicked(f):this.openLink(f)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var K=this.tooltipHandler.show;this.tooltipHandler.show=function(){K.apply(this,arguments);if(null!=this.div)for(var b=this.div.getElementsByTagName("a"),d=0;d<b.length;d++)null!=b[d].getAttribute("href")&&null==b[d].getAttribute("target")&&b[d].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};
@@ -2525,11 +2526,11 @@ d,f,c){d=null!=d?d:0;f=null!=f?f:0;var e=new mxCodec(b.ownerDocument),g=new mxGr
p&&(b=this.moveCells(p,d,f,!1,this.getDefaultParent()),l[g.getChildAt(g.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,m,l),this.updateCustomLinks(l,b),c)){this.isGridEnabled()&&(d=this.snap(d),f=this.snap(f));var q=this.getBoundingBoxFromGeometry(b,!0);null!=q&&this.moveCells(b,d-q.x,f-q.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},f=this.cloneCells(b,null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],
!0);for(var g=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<f.length;e++){l.add(k,f[e]);var m=this.view.getState(b[e]);if(null!=m){var p=this.getCellGeometry(f[e]);null!=p&&p.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&(p.offset=null,p.relative=!1,p.x=m.x/m.view.scale-m.view.translate.x,p.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),f);return g.encode(l)};Graph.prototype.isSwimlane=
function(b,d){if(null!=b&&this.model.getParent(b)!=this.model.getRoot()&&!this.model.isEdge(b)){var f=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE];return f==mxConstants.SHAPE_SWIMLANE||"table"==f}return!1};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=function(b){var f=this.model.getParent(b);if(null!=f){var c=this.getCurrentCellStyle(f);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==f||!this.isTable(f))};var f=Graph.prototype.splitEdge;
-Graph.prototype.splitEdge=function(b,d,c,e,g,l,k,m){null==m&&(m=this.model.getParent(b),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=f.apply(this,[b,d,c,e,g,l,k,m]);this.model.setValue(c,"");var p=this.getChildCells(c,!0);for(d=0;d<p.length;d++){var q=this.getCellGeometry(p[d]);null!=q&&q.relative&&0<q.x&&this.model.remove(p[d])}var F=this.getChildCells(b,!0);for(d=0;d<F.length;d++)q=this.getCellGeometry(F[d]),null!=q&&q.relative&&
-0>=q.x&&this.model.remove(F[d]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[c]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[c]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,mxConstants.NONE,[b]);var la=this.model.getTerminal(c,!1);if(null!=la){var v=this.getCurrentCellStyle(la);null!=v&&"1"==v.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,
+Graph.prototype.splitEdge=function(b,d,c,e,g,l,k,m){null==m&&(m=this.model.getParent(b),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=f.apply(this,[b,d,c,e,g,l,k,m]);this.model.setValue(c,"");var p=this.getChildCells(c,!0);for(d=0;d<p.length;d++){var q=this.getCellGeometry(p[d]);null!=q&&q.relative&&0<q.x&&this.model.remove(p[d])}var E=this.getChildCells(b,!0);for(d=0;d<E.length;d++)q=this.getCellGeometry(E[d]),null!=q&&q.relative&&
+0>=q.x&&this.model.remove(E[d]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[c]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[c]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,mxConstants.NONE,[b]);var la=this.model.getTerminal(c,!1);if(null!=la){var v=this.getCurrentCellStyle(la);null!=v&&"1"==v.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,
null,[b]),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(b,d,f){if(d||f)l.apply(this,arguments);else{var c=this.getSelectionCell(),e=null,g=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(g.push(d),d==c)e=g.length-1;else if(b&&null==c&&0<g.length||null!=e&&
b&&g.length>e||!b&&0<e)return;for(var f=0;f<this.model.getChildCount(d);f++)k(this.model.getChildAt(d,f))});k(this.model.root);0<g.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),g.length):0,this.setSelectionCell(g[e]))}};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=function(b,d,f,c,e,g,l){l=null!=l?l:{};if(this.isTable(e)){for(var k=[],p=0;p<b.length;p++)this.isTable(b[p])?k=k.concat(this.model.getChildCells(b[p],!0).reverse()):k.push(b[p]);b=k}this.model.beginUpdate();try{k=[];for(p=0;p<
-b.length;p++)if(null!=e&&this.isTableRow(b[p])){var q=this.model.getParent(b[p]),F=this.getCellGeometry(b[p]);this.isTable(q)&&k.push(q);if(null!=q&&null!=F&&this.isTable(q)&&this.isTable(e)&&(c||q!=e)){if(!c){var v=this.getCellGeometry(q);null!=v&&(v=v.clone(),v.height-=F.height,this.model.setGeometry(q,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=F.height,this.model.setGeometry(e,v));var la=this.model.getChildCells(e,!0);if(0<la.length){b[p]=c?this.cloneCell(b[p]):b[p];var u=this.model.getChildCells(b[p],
+b.length;p++)if(null!=e&&this.isTableRow(b[p])){var q=this.model.getParent(b[p]),E=this.getCellGeometry(b[p]);this.isTable(q)&&k.push(q);if(null!=q&&null!=E&&this.isTable(q)&&this.isTable(e)&&(c||q!=e)){if(!c){var v=this.getCellGeometry(q);null!=v&&(v=v.clone(),v.height-=E.height,this.model.setGeometry(q,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=E.height,this.model.setGeometry(e,v));var la=this.model.getChildCells(e,!0);if(0<la.length){b[p]=c?this.cloneCell(b[p]):b[p];var u=this.model.getChildCells(b[p],
!0),n=this.model.getChildCells(la[0],!0),A=n.length-u.length;if(0<A)for(var x=0;x<A;x++){var J=this.cloneCell(u[u.length-1]);null!=J&&(J.value="",this.model.add(b[p],J))}else if(0>A)for(x=0;x>A;x--)this.model.remove(u[u.length+x-1]);u=this.model.getChildCells(b[p],!0);for(x=0;x<n.length;x++){var P=this.getCellGeometry(n[x]),ta=this.getCellGeometry(u[x]);null!=P&&null!=ta&&(ta=ta.clone(),ta.width=P.width,this.model.setGeometry(u[x],ta))}}}}for(var t=m.apply(this,arguments),p=0;p<k.length;p++)!c&&this.model.contains(k[p])&&
0==this.model.getChildCount(k[p])&&this.model.remove(k[p]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),t)}finally{this.model.endUpdate()}return t};var p=Graph.prototype.removeCells;Graph.prototype.removeCells=function(b,d){var f=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),g=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(g)?0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,
g)&&f.push(g):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(g=this.model.getParent(b[c]),0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,g))){for(var l=this.model.getChildCells(g,!0),k=0,m=0;m<l.length;m++)0<=mxUtils.indexOf(b,l[m])&&k++;k==l.length&&f.push(g)}f.push(b[c])}f=p.apply(this,[f,d])}finally{this.model.endUpdate()}return f};Graph.prototype.updateCustomLinks=function(b,d,f){f=null!=f?f:new Graph;for(var c=0;c<d.length;c++)null!=d[c]&&f.updateCustomLinksForCell(b,d[c],f)};Graph.prototype.updateCustomLinksForCell=
@@ -2539,7 +2540,7 @@ function(b){if(null!=b){var d=this.getCurrentCellStyle(b),d=mxUtils.getValue(d,m
Graph.prototype.isValidDropTarget=function(b,d,f){for(var c=this.getCurrentCellStyle(b),e=!0,g=!0,l=0;l<d.length&&g;l++)e=e&&this.isTable(d[l]),g=g&&this.isTableRow(d[l]);return("1"!=mxUtils.getValue(c,"part","0")||this.isContainer(b))&&"0"!=mxUtils.getValue(c,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||g||e)&&!this.isCellLocked(b)};Graph.prototype.createGroupCell=function(){var b=mxGraph.prototype.createGroupCell.apply(this,
arguments);b.setStyle("group");return b};Graph.prototype.isExtendParentsOnAdd=function(b){var d=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(d&&null!=b&&null!=this.layoutManager){var f=this.model.getParent(b);null!=f&&(f=this.layoutManager.getLayout(f),null!=f&&f.constructor==mxStackLayout&&(d=!1))}return d};Graph.prototype.getPreferredSizeForCell=function(b){var d=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=d&&(d.width+=10,d.height+=4,this.gridEnabled&&
(d.width=this.snap(d.width),d.height=this.snap(d.height)));return d};Graph.prototype.turnShapes=function(b,d){var f=this.getModel(),c=[];f.beginUpdate();try{for(var e=0;e<b.length;e++){var g=b[e];if(f.isEdge(g)){var l=f.getTerminal(g,!0),k=f.getTerminal(g,!1);f.setTerminal(g,k,!0);f.setTerminal(g,l,!1);var m=f.getGeometry(g);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var p=m.getTerminalPoint(!0),q=m.getTerminalPoint(!1);m.setTerminalPoint(p,!1);m.setTerminalPoint(q,!0);f.setGeometry(g,
-m);var F=this.view.getState(g),v=this.view.getState(l),u=this.view.getState(k);if(null!=F){var n=null!=v?this.getConnectionConstraint(F,v,!0):null,la=null!=u?this.getConnectionConstraint(F,u,!1):null;this.setConnectionConstraint(g,l,!0,la);this.setConnectionConstraint(g,k,!1,n);var A=mxUtils.getValue(F.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(F.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
+m);var E=this.view.getState(g),v=this.view.getState(l),u=this.view.getState(k);if(null!=E){var n=null!=v?this.getConnectionConstraint(E,v,!0):null,la=null!=u?this.getConnectionConstraint(E,u,!1):null;this.setConnectionConstraint(g,l,!0,la);this.setConnectionConstraint(g,k,!1,n);var A=mxUtils.getValue(E.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(E.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
A,[g])}c.push(g)}}else if(f.isVertex(g)&&(m=this.getCellGeometry(g),null!=m)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){m=m.clone();m.x+=m.width/2-m.height/2;m.y+=m.height/2-m.width/2;var x=m.width;m.width=m.height;m.height=x;f.setGeometry(g,m)}var J=this.view.getState(g);if(null!=J){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],y=mxUtils.getValue(J.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);
this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,y)+(d?-1:1),t.length)],[g])}c.push(g)}}}finally{f.endUpdate()}return c};Graph.prototype.stencilHasPlaceholders=function(b){if(null!=b&&null!=b.fgNode)for(b=b.fgNode.firstChild;null!=b;){if("text"==b.nodeName&&"1"==b.getAttribute("placeholders"))return!0;b=b.nextSibling}return!1};var q=Graph.prototype.processChange;Graph.prototype.processChange=function(b){if(b instanceof mxGeometryChange&&(this.isTableCell(b.cell)||this.isTableRow(b.cell))&&
(null==b.previous&&null!=b.geometry||null!=b.previous&&!b.previous.equals(b.geometry))){var d=b.cell;this.isTableCell(d)&&(d=this.model.getParent(d));this.isTableRow(d)&&(d=this.model.getParent(d));var f=this.view.getState(d);null!=f&&null!=f.shape&&(this.view.invalidate(d),f.shape.bounds=null)}q.apply(this,arguments);b instanceof mxValueChange&&null!=b.cell&&null!=b.cell.value&&"object"==typeof b.cell.value&&this.invalidateDescendantsWithPlaceholders(b.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=
@@ -2564,18 +2565,18 @@ mouseMove:function(b,d){if(l.isMouseDown){if(null!=this.currentLink){var f=Math.
d.getGraphX(),d.getGraphY()))&&this.updateCurrentState(d))}},mouseUp:function(b,c){for(var e=c.getSource(),k=c.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-l.container.scrollLeft)<g&&Math.abs(this.scrollTop-l.container.scrollTop)<g&&(null==c.sourceState||!c.isSource(c.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&(null!=this.currentLink?(e=l.isBlankLink(this.currentLink),
"data:"!==this.currentLink.substring(0,5)&&e||null==d||d(k,this.currentLink),mxEvent.isConsumed(k)||(k=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(k)?"_blank":e?l.linkTarget:"_top",l.openLink(this.currentLink,k),c.consume())):null!=f&&!c.isConsumed()&&Math.abs(this.scrollLeft-l.container.scrollLeft)<g&&Math.abs(this.scrollTop-l.container.scrollTop)<g&&Math.abs(this.startX-c.getGraphX())<g&&Math.abs(this.startY-c.getGraphY())<g&&f(c.getEvent()));this.clear()},activate:function(b){this.currentLink=
l.getAbsoluteUrl(l.getLinkForCell(b.cell));null!=this.currentLink&&(this.currentTarget=l.getLinkTargetForCell(b.cell),l.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(b))},clear:function(){null!=l.container&&(l.container.style.cursor=e);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=l.tooltipHandler&&l.tooltipHandler.hide()}};l.click=function(b){};l.addMouseListener(k);mxEvent.addListener(document,"mouseleave",
-function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,d){b=null!=b?b:this.getSelectionCells();d=null!=d?d:!0;for(var f=0;f<b.length;f++)this.isTableCell(b[f])&&(b[f]=this.model.getParent(b[f]));b=this.model.getTopmostCells(b);var c=this.getModel(),e=this.gridSize,g=[];c.beginUpdate();try{for(var l={},k=this.createCellLookup(b),m=this.cloneCells(b,!1,l,!0),f=0;f<b.length;f++){var p=c.getParent(b[f]);if(null!=p){var q=this.moveCells([m[f]],e,e,!1)[0];g.push(q);if(d)c.add(p,m[f]);else{var F=
-p.getIndex(b[f]);c.add(p,m[f],F+1)}if(this.isTable(p)){var v=this.getCellGeometry(m[f]),u=this.getCellGeometry(p);null!=v&&null!=u&&(u=u.clone(),u.height+=v.height,c.setGeometry(p,u))}}else g.push(m[f])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return g};Graph.prototype.insertImage=function(b,d,f){if(null!=b&&null!=this.cellEditor.textarea){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),
+function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,d){b=null!=b?b:this.getSelectionCells();d=null!=d?d:!0;for(var f=0;f<b.length;f++)this.isTableCell(b[f])&&(b[f]=this.model.getParent(b[f]));b=this.model.getTopmostCells(b);var c=this.getModel(),e=this.gridSize,g=[];c.beginUpdate();try{for(var l={},k=this.createCellLookup(b),m=this.cloneCells(b,!1,l,!0),f=0;f<b.length;f++){var p=c.getParent(b[f]);if(null!=p){var q=this.moveCells([m[f]],e,e,!1)[0];g.push(q);if(d)c.add(p,m[f]);else{var E=
+p.getIndex(b[f]);c.add(p,m[f],E+1)}if(this.isTable(p)){var v=this.getCellGeometry(m[f]),u=this.getCellGeometry(p);null!=v&&null!=u&&(u=u.clone(),u.height+=v.height,c.setGeometry(p,u))}}else g.push(m[f])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return g};Graph.prototype.insertImage=function(b,d,f){if(null!=b&&null!=this.cellEditor.textarea){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),
e=[],g=0;g<c.length;g++)e.push(c[g]);document.execCommand("insertimage",!1,b);b=this.cellEditor.textarea.getElementsByTagName("img");if(b.length==e.length+1)for(g=b.length-1;0<=g;g--)if(0==g||b[g]!=e[g-1]){b[g].setAttribute("width",d);b[g].setAttribute("height",f);break}}};Graph.prototype.insertLink=function(b){if(null!=this.cellEditor.textarea)if(0==b.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var d=this.cellEditor.textarea.getElementsByTagName("a"),f=[],c=0;c<d.length;c++)f.push(d[c]);
document.execCommand("createlink",!1,mxUtils.trim(b));d=this.cellEditor.textarea.getElementsByTagName("a");if(d.length==f.length+1)for(c=d.length-1;0<=c;c--)if(d[c]!=f[c-1]){for(d=d[c].getElementsByTagName("a");0<d.length;){for(f=d[0].parentNode;null!=d[0].firstChild;)f.insertBefore(d[0].firstChild,d[0]);f.removeChild(d[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(b))};Graph.prototype.isCellResizable=function(b){var d=mxGraph.prototype.isCellResizable.apply(this,arguments),f=
this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(f,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==f[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var f=[],c=null,e=null,g=0;g<d.length;g++)if(this.getModel().isVertex(d[g])){var l=this.view.getState(d[g]);if(null!=l){var k=b?l.getCenterX():l.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):
k;f.push(l)}}if(2<f.length){f.sort(function(d,f){return b?d.x-f.x:d.y-f.y});l=this.view.translate;k=this.view.scale;e=e/k-(b?l.x:l.y);c=c/k-(b?l.x:l.y);this.getModel().beginUpdate();try{for(var m=(c-e)/(f.length-1),c=e,g=1;g<f.length-1;g++){var p=this.view.getState(this.model.getParent(f[g].cell)),q=this.getCellGeometry(f[g].cell),c=c+m;null!=q&&null!=p&&(q=q.clone(),b?q.x=Math.round(c-q.width/2)-p.origin.x:q.y=Math.round(c-q.height/2)-p.origin.y,this.getModel().setGeometry(f[g].cell,q))}}finally{this.getModel().endUpdate()}}}return d};
Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=
-function(b,d,f,c,e,g,l,k,m,p,q,F,v,u){var n=null;if(null!=u)for(n=new mxDictionary,q=0;q<u.length;q++)n.put(u[q],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;f=null!=f?f:0;e=null!=e?e:!0;g=null!=g?g:!0;l=null!=l?l:!0;var A="page"==v?this.view.getBackgroundPageBounds():g&&null==n||c||"diagram"==v?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(A=
+function(b,d,f,c,e,g,l,k,m,p,q,E,v,u){var n=null;if(null!=u)for(n=new mxDictionary,q=0;q<u.length;q++)n.put(u[q],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;f=null!=f?f:0;e=null!=e?e:!0;g=null!=g?g:!0;l=null!=l?l:!0;var A="page"==v?this.view.getBackgroundPageBounds():g&&null==n||c||"diagram"==v?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(A=
mxRectangle.fromRectangle(A),A.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*x,(this.view.translate.y+this.backgroundImage.y)*x,this.backgroundImage.width*x,this.backgroundImage.height*x)));if(null==A)throw Error(mxResources.get("drawingEmpty"));var J=mxUtils.createXmlDocument(),t=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"svg"):J.createElement("svg");null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==J.createElementNS?
(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/x;var y=Math.max(1,Math.ceil(A.width*b)+2*f)+(p?5:0),I=Math.max(1,Math.ceil(A.height*b)+2*f)+(p?5:0);t.setAttribute("version","1.1");t.setAttribute("width",y+"px");t.setAttribute("height",I+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+y+" "+I);J.appendChild(t);var D=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,
"g"):J.createElement("g");t.appendChild(D);var B=this.createSvgCanvas(D);B.foOffset=e?-.5:0;B.textOffset=e?-.5:0;B.imageOffset=e?-.5:0;B.translate(Math.floor(f/d-A.x/x),Math.floor(f/d-A.y/x));var aa=document.createElement("div"),la=B.getAlternateText;B.getAlternateText=function(b,d,f,c,e,g,l,k,m,p,q,z,ua){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?g=g.innerText:(aa.innerHTML=g,g=mxUtils.extractTextWithWhitespace(aa.childNodes));for(var Wa=Math.ceil(2*c/this.state.fontSize),ra=[],Ca=0,
-F=0;(0==Wa||Ca<Wa)&&F<g.length;){var Ua=g.charCodeAt(F);if(10==Ua||13==Ua){if(0<Ca)break}else ra.push(g.charAt(F)),255>Ua&&Ca++;F++}ra.length<g.length&&1<g.length-ra.length&&(g=mxUtils.trim(ra.join(""))+"...");return g}catch(gb){return la.apply(this,arguments)}else return la.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){d=x/d;var P=this.view.translate,ta=new mxRectangle((N.x+P.x)*d,(N.y+P.y)*d,N.width*d,N.height*d);mxUtils.intersects(A,ta)&&B.image(N.x+P.x,N.y+P.y,N.width,N.height,
+E=0;(0==Wa||Ca<Wa)&&E<g.length;){var Ua=g.charCodeAt(E);if(10==Ua||13==Ua){if(0<Ca)break}else ra.push(g.charAt(E)),255>Ua&&Ca++;E++}ra.length<g.length&&1<g.length-ra.length&&(g=mxUtils.trim(ra.join(""))+"...");return g}catch(gb){return la.apply(this,arguments)}else return la.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){d=x/d;var P=this.view.translate,ta=new mxRectangle((N.x+P.x)*d,(N.y+P.y)*d,N.width*d,N.height*d);mxUtils.intersects(A,ta)&&B.image(N.x+P.x,N.y+P.y,N.width,N.height,
N.src,!0)}B.scale(b);B.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ba=k.drawCellState,W=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var f=W.apply(this,arguments);return null==f||b.view.graph.isCustomLink(f)?null:f};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var f=b.view.graph,c=null!=n?n.get(b.cell):f.isCellSelected(b.cell),e=f.model.getParent(b.cell);!(g&&null==n||c)&&null!=e;)c=null!=n?
n.get(e):f.isCellSelected(e),e=f.model.getParent(e);(g&&null==n||c)&&ba.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),B);this.updateSvgLinks(t,m,!0);this.addForeignObjectWarning(B,t);return t}finally{u&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(b,d){if("0"!=urlParams["svg-warning"]&&0<d.getElementsByTagName("foreignObject").length){var f=b.createElement("switch"),c=b.createElement("g");c.setAttribute("requiredFeatures",
"http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||d.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 g=b.createElement("text");g.setAttribute("text-anchor",
@@ -2584,8 +2585,8 @@ d):f&&this.isCustomLink(e)&&b[c].setAttribute("href","javascript:void(0);"))}};G
this.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;null!=b&&b==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(b=this.cellEditor.textarea.firstChild);return b};Graph.prototype.getParentByName=function(b,d,f){for(;null!=b&&b.nodeName!=d;){if(b==f)return null;b=b.parentNode}return b};Graph.prototype.getParentByNames=function(b,d,f){for(;null!=b&&!(0<=mxUtils.indexOf(d,
b.nodeName));){if(b==f)return null;b=b.parentNode}return b};Graph.prototype.selectNode=function(b){var d=null;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){var f=document.createRange();f.selectNode(b);d.removeAllRanges();d.addRange(f)}}else(d=document.selection)&&"Control"!=d.type&&(b=d.createRange(),b.collapse(!0),f=d.createRange(),f.setEndPoint("StartToStart",b),f.select())};Graph.prototype.deleteCells=function(b,d){var f=null;if(null!=b&&0<b.length){this.model.beginUpdate();
try{for(var c=0;c<b.length;c++){var e=this.model.getParent(b[c]);if(this.isTable(e)){var g=this.getCellGeometry(b[c]),l=this.getCellGeometry(e);null!=g&&null!=l&&(l=l.clone(),l.height-=g.height,this.model.setGeometry(e,l))}}var k=this.selectParentAfterDelete?this.model.getParents(b):null;this.removeCells(b,d)}finally{this.model.endUpdate()}if(null!=k)for(f=[],c=0;c<k.length;c++)this.model.contains(k[c])&&(this.model.isVertex(k[c])||this.model.isEdge(k[c]))&&f.push(k[c])}return f};Graph.prototype.insertTableColumn=
-function(b,d){var f=this.getModel();f.beginUpdate();try{var c=b,e=0;if(this.isTableCell(b))var g=f.getParent(b),c=f.getParent(g),e=mxUtils.indexOf(f.getChildCells(g,!0),b);else this.isTableRow(b)?c=f.getParent(b):b=f.getChildCells(c,!0)[0],d||(e=f.getChildCells(b,!0).length-1);for(var l=f.getChildCells(c,!0),k=Graph.minTableColumnWidth,g=0;g<l.length;g++){var m=f.getChildCells(l[g],!0)[e],p=f.cloneCell(m,!1),q=this.getCellGeometry(p);p.value=null;if(null!=q){var k=q.width,F=this.getCellGeometry(l[g]);
-null!=F&&(q.height=F.height)}f.add(l[g],p,e+(d?0:1))}var v=this.getCellGeometry(c);null!=v&&(v=v.clone(),v.width+=k,f.setGeometry(c,v))}finally{f.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var f=null,f="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(f,!0);0==c.length?d.remove(f):(f==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=function(b,d){var f=this.getModel();f.beginUpdate();
+function(b,d){var f=this.getModel();f.beginUpdate();try{var c=b,e=0;if(this.isTableCell(b))var g=f.getParent(b),c=f.getParent(g),e=mxUtils.indexOf(f.getChildCells(g,!0),b);else this.isTableRow(b)?c=f.getParent(b):b=f.getChildCells(c,!0)[0],d||(e=f.getChildCells(b,!0).length-1);for(var l=f.getChildCells(c,!0),k=Graph.minTableColumnWidth,g=0;g<l.length;g++){var m=f.getChildCells(l[g],!0)[e],p=f.cloneCell(m,!1),q=this.getCellGeometry(p);p.value=null;if(null!=q){var k=q.width,E=this.getCellGeometry(l[g]);
+null!=E&&(q.height=E.height)}f.add(l[g],p,e+(d?0:1))}var v=this.getCellGeometry(c);null!=v&&(v=v.clone(),v.width+=k,f.setGeometry(c,v))}finally{f.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var f=null,f="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(f,!0);0==c.length?d.remove(f):(f==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=function(b,d){var f=this.getModel();f.beginUpdate();
try{var c=null,e=b;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var c=e,g=f.getChildCells(c,!0),e=g[d?0:g.length-1];else c=f.getParent(e);var l=c.getIndex(e),e=f.cloneCell(e,!1);e.value=null;f.add(c,e,l+(d?0:1))}finally{f.endUpdate()}};Graph.prototype.insertTableRow=function(b,d){var f=this.getModel();f.beginUpdate();try{var c=b,e=b;if(this.isTableCell(b))e=f.getParent(b),c=f.getParent(e);else if(this.isTableRow(b))c=f.getParent(b);else var g=f.getChildCells(c,!0),e=g[d?0:g.length-1];
var l=f.getChildCells(e,!0),k=c.getIndex(e),e=f.cloneCell(e,!1);e.value=null;var m=this.getCellGeometry(e);if(null!=m){for(g=0;g<l.length;g++){b=f.cloneCell(l[g],!1);e.insert(b);b.value=null;var p=this.getCellGeometry(b);null!=p&&(p.height=m.height)}f.add(c,e,k+(d?0:1));var q=this.getCellGeometry(c);null!=q&&(q=q.clone(),q.height+=m.height,f.setGeometry(c,q))}}finally{f.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();d.beginUpdate();try{var f=b,c=b;this.isTableCell(b)&&
(c=d.getParent(b));this.isTableRow(c)&&(f=d.getParent(c));var e=d.getChildCells(f,!0);if(0==e.length)d.remove(f);else{this.isTableRow(c)||(c=e[0]);var g=d.getChildCells(c,!0);if(1>=g.length)d.remove(f);else{var l=g.length-1;this.isTableCell(b)&&(l=mxUtils.indexOf(g,b));for(c=b=0;c<e.length;c++){var k=d.getChildCells(e[c],!0)[l];d.remove(k);var m=this.getCellGeometry(k);null!=m&&(b=Math.max(b,m.width))}var p=this.getCellGeometry(f);null!=p&&(p=p.clone(),p.width-=b,d.setGeometry(f,p))}}}finally{d.endUpdate()}};
@@ -2617,7 +2618,7 @@ b){var f=b.view.scale;this.bounds=mxRectangle.fromRectangle(b);if(0==this.bounds
4)/f)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/f)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/f)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*f);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/f)+(this.textarea.offsetWidth-this.textarea.clientWidth)+
"px",this.bounds.width=parseInt(this.textarea.style.width)*f);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("+f+","+f+")")}else this.textarea.style.height="",this.textarea.style.overflow="",D.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(b,d){if("0"==mxUtils.getValue(b.style,"html",
"0"))return mxCellEditorGetInitialValue.apply(this,arguments);var f=this.graph.getEditingValue(b.cell,d);"1"==mxUtils.getValue(b.style,"nl2Br","1")&&(f=f.replace(/\n/g,"<br/>"));return f=this.graph.sanitizeHtml(f,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(b){if("0"==mxUtils.getValue(b.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var d=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return d=
-"1"==mxUtils.getValue(b.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var E=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();E.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(la){}};var M=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();
+"1"==mxUtils.getValue(b.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var F=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();F.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(la){}};var M=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();
try{M.apply(this,arguments),""==d&&this.graph.isCellDeletable(b.cell)&&0==this.graph.model.getChildCount(b.cell)&&this.graph.isTransparentState(b)&&this.graph.removeCells([b.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(b){var d=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=d&&d!=mxConstants.NONE||!(null!=b.cell.geometry&&0<b.cell.geometry.width)||0==mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)&&0!=
mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)||(d=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,null));d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getMinimumSize=function(b){var d=this.graph.getView().scale;return new mxRectangle(0,0,null==b.text?30:b.text.size*d+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget=function(b,d){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&
!mxEvent.isAltDown(d.getEvent)};mxGraphView.prototype.formatUnitText=function(b){return b?c(b,this.unit):b};mxGraphHandler.prototype.updateHint=function(d){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=b(),this.graph.container.appendChild(this.hint));var f=this.graph.view.translate,e=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/e-f.x);f=this.roundLength((this.bounds.y+this.currentDy)/e-f.y);e=this.graph.view.unit;this.hint.innerHTML=
@@ -2630,11 +2631,11 @@ var O=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototyp
mxVertexHandler.prototype.isParentHighlightVisible=function(){return da.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var N=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||N.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var b=0;this.graph.isTableRow(this.state.cell)?
b=1:this.graph.isTableCell(this.state.cell)&&(b=2);return b};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 b=X.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=this.graph,f=d.model,c=this.state,e=this.selectionBorder,g=this;null==
b&&(b=[]);var l=d.view.getCellStates(f.getChildCells(this.state.cell,!0));if(0<l.length){for(var k=f.getChildCells(l[0].cell,!0),f=0;f<k.length;f++)mxUtils.bind(this,function(f){var l=d.view.getState(k[f]),m=d.getCellGeometry(k[f]),p=null!=m.alternateBounds?m.alternateBounds:m;null==l&&(l=new mxCellState(d.view,k[f],d.getCellStyle(k[f])),l.x=c.x+m.x*d.view.scale,l.y=c.y+m.y*d.view.scale,l.width=p.width*d.view.scale,l.height=p.height*d.view.scale,l.updateCachedBounds());var m=f<k.length-1?k[f+1]:null,
-m=null!=m?d.getCellGeometry(m):null,q=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);m.isDashed=e.isDashed;m.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,m);l.tableHandle=!0;var F=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){var b=d.getActualStartSize(c.cell);this.shape.stroke=0==F?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+(p.width+
-F)*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=c.y+(f==k.length-1?0:b.y*this.graph.view.scale);this.shape.bounds.height=c.height-(f==k.length-1?0:(b.height+b.y)*this.graph.view.scale);this.shape.redraw()}};var v=!1;l.setPosition=function(b,d,f){F=Math.max(Graph.minTableColumnWidth-p.width,d.x-b.x-p.width);v=mxEvent.isShiftDown(f.getEvent());null==q||v||(F=Math.min(F,q.width-Graph.minTableColumnWidth))};l.execute=function(b){if(0!=F)d.setTableColumnWidth(this.state.cell,F,v);
-else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}F=0};l.positionChanged=function(){};l.reset=function(){F=0};b.push(l)})(f);for(f=0;f<l.length;f++)mxUtils.bind(this,function(f){f=l[f];var k=new mxLine(new mxRectangle,mxConstants.NONE,1);k.isDashed=e.isDashed;k.svgStrokeTolerance++;f=new mxHandle(f,"row-resize",null,k);f.tableHandle=!0;var m=0;f.shape.node.parentNode.insertBefore(f.shape.node,f.shape.node.parentNode.firstChild);
+m=null!=m?d.getCellGeometry(m):null,q=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);m.isDashed=e.isDashed;m.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,m);l.tableHandle=!0;var E=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){var b=d.getActualStartSize(c.cell);this.shape.stroke=0==E?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+(p.width+
+E)*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=c.y+(f==k.length-1?0:b.y*this.graph.view.scale);this.shape.bounds.height=c.height-(f==k.length-1?0:(b.height+b.y)*this.graph.view.scale);this.shape.redraw()}};var v=!1;l.setPosition=function(b,d,f){E=Math.max(Graph.minTableColumnWidth-p.width,d.x-b.x-p.width);v=mxEvent.isShiftDown(f.getEvent());null==q||v||(E=Math.min(E,q.width-Graph.minTableColumnWidth))};l.execute=function(b){if(0!=E)d.setTableColumnWidth(this.state.cell,E,v);
+else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}E=0};l.positionChanged=function(){};l.reset=function(){E=0};b.push(l)})(f);for(f=0;f<l.length;f++)mxUtils.bind(this,function(f){f=l[f];var k=new mxLine(new mxRectangle,mxConstants.NONE,1);k.isDashed=e.isDashed;k.svgStrokeTolerance++;f=new mxHandle(f,"row-resize",null,k);f.tableHandle=!0;var m=0;f.shape.node.parentNode.insertBefore(f.shape.node,f.shape.node.parentNode.firstChild);
f.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==m?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+m*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};f.setPosition=function(b,d,f){m=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height)};f.execute=function(b){if(0!=m)d.setTableRowHeight(this.state.cell,m,!mxEvent.isShiftDown(b.getEvent()));
-else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}m=0};f.reset=function(){m=0};b.push(f)})(f)}}return null!=b?b.reverse():null};var F=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){F.apply(this,arguments);if(null!=this.moveHandles)for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].style.visibility=b?"":"hidden";if(null!=this.cornerHandles)for(d=0;d<this.cornerHandles.length;d++)this.cornerHandles[d].node.style.visibility=
+else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}m=0};f.reset=function(){m=0};b.push(f)})(f)}}return null!=b?b.reverse():null};var E=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){E.apply(this,arguments);if(null!=this.moveHandles)for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].style.visibility=b?"":"hidden";if(null!=this.cornerHandles)for(d=0;d<this.cornerHandles.length;d++)this.cornerHandles[d].node.style.visibility=
b?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var b=this.graph.model;if(null!=this.moveHandles){for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].parentNode.removeChild(this.moveHandles[d]);this.moveHandles=null}this.moveHandles=[];for(d=0;d<b.getChildCount(this.state.cell);d++)mxUtils.bind(this,function(d){if(null!=d&&b.isVertex(d.cell)){var f=mxUtils.createImage(Editor.rowMoveImage);f.style.position="absolute";f.style.cursor="pointer";f.style.width="7px";f.style.height=
"4px";f.style.padding="4px 2px 4px 2px";f.rowState=d;mxEvent.addGestureListeners(f,mxUtils.bind(this,function(b){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(b)&&this.graph.isCellSelected(d.cell)||this.graph.selectCellForEvent(d.cell,b);mxEvent.isPopupTrigger(b)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=
mxEvent.isMouseEvent(b),this.graph.isMouseDown=!0);mxEvent.consume(b)}),null,mxUtils.bind(this,function(b){mxEvent.isPopupTrigger(b)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(b),mxEvent.getClientY(b),d.cell,b),mxEvent.consume(b))}));this.moveHandles.push(f);this.graph.container.appendChild(f)}})(this.graph.view.getState(b.getChildAt(this.state.cell,d)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var b=0;b<this.customHandles.length;b++)this.customHandles[b].destroy();
@@ -2687,9 +2688,9 @@ function(){S.apply(this,arguments);if(null!=this.moveHandles){for(var b=0;b<this
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 ea=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=
function(){if(null!=this.marker&&(ea.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.height+Editor.hintOffset)+"px"}};var ha=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ha.apply(this,arguments);
null!=this.linkHint&&(this.linkHint.style.visibility="")};var ia=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){ia.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 b(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function k(){mxActor.call(this)}function g(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function f(){mxShape.call(this)}function l(){mxShape.call(this)}function m(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1}function p(){mxActor.call(this)}function q(){mxCylinder.call(this)}
-function u(){mxCylinder.call(this)}function v(){mxActor.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function C(){mxActor.call(this)}function H(){mxActor.call(this)}function D(){mxActor.call(this)}function E(){mxActor.call(this)}function M(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,M.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
+function u(){mxCylinder.call(this)}function v(){mxActor.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function C(){mxActor.call(this)}function H(){mxActor.call(this)}function D(){mxActor.call(this)}function F(){mxActor.call(this)}function M(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,M.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
this.canvas.moveTo=mxUtils.bind(this,M.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,M.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,M.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,M.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,M.prototype.arcTo)}function G(){mxRectangleShape.call(this)}function K(){mxRectangleShape.call(this)}
-function B(){mxActor.call(this)}function L(){mxActor.call(this)}function O(){mxActor.call(this)}function da(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function Q(){mxCylinder.call(this)}function X(){mxShape.call(this)}function F(){mxShape.call(this)}function J(){mxEllipse.call(this)}function A(){mxShape.call(this)}function aa(){mxShape.call(this)}function I(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function ba(){mxShape.call(this)}function oa(){mxShape.call(this)}
+function B(){mxActor.call(this)}function L(){mxActor.call(this)}function O(){mxActor.call(this)}function da(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function Q(){mxCylinder.call(this)}function X(){mxShape.call(this)}function E(){mxShape.call(this)}function J(){mxEllipse.call(this)}function A(){mxShape.call(this)}function aa(){mxShape.call(this)}function I(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function ba(){mxShape.call(this)}function oa(){mxShape.call(this)}
function fa(){mxShape.call(this)}function ja(){mxShape.call(this)}function na(){mxCylinder.call(this)}function pa(){mxCylinder.call(this)}function ka(){mxRectangleShape.call(this)}function Y(){mxDoubleEllipse.call(this)}function Z(){mxDoubleEllipse.call(this)}function R(){mxArrowConnector.call(this);this.spacing=0}function sa(){mxArrowConnector.call(this);this.spacing=0}function U(){mxActor.call(this)}function T(){mxRectangleShape.call(this)}function ma(){mxActor.call(this)}function va(){mxActor.call(this)}
function S(){mxActor.call(this)}function ea(){mxActor.call(this)}function ha(){mxActor.call(this)}function ia(){mxActor.call(this)}function la(){mxActor.call(this)}function ta(){mxActor.call(this)}function P(){mxActor.call(this)}function ca(){mxActor.call(this)}function wa(){mxEllipse.call(this)}function ya(){mxEllipse.call(this)}function qa(){mxEllipse.call(this)}function za(){mxRhombus.call(this)}function Aa(){mxEllipse.call(this)}function Da(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}
function Ka(){mxEllipse.call(this)}function Ba(){mxActor.call(this)}function Ha(){mxActor.call(this)}function Fa(){mxActor.call(this)}function V(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function xa(){mxConnector.call(this)}function Oa(b,d,f,c,e,g,l,k,m,p){l+=m;var z=c.clone();c.x-=e*(2*l+m);c.y-=g*(2*l+m);e*=l+m;g*=l+m;return function(){b.ellipse(z.x-
@@ -2727,8 +2728,8 @@ mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,
function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(b.height*this.scale,d*this.scale),0,Math.max(0,d*this.scale))}return null};mxUtils.extend(C,mxActor);C.prototype.size=.2;C.prototype.fixedSize=20;C.prototype.isRoundable=function(){return!0};C.prototype.redrawPath=function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):
c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c-d,e)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("parallelogram",C);mxUtils.extend(H,mxActor);H.prototype.size=.2;H.prototype.fixedSize=20;H.prototype.isRoundable=function(){return!0};H.prototype.redrawPath=function(b,d,f,c,e){d="0"!=
mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,e)],this.isRounded,f,!0)};mxCellRenderer.registerShape("trapezoid",H);mxUtils.extend(D,mxActor);D.prototype.size=
-.5;D.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,e/2),new mxPoint(0,e/2),new mxPoint(d,e/2),new mxPoint(d,e),new mxPoint(c,e)],this.isRounded,f,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",D);mxUtils.extend(E,mxActor);E.prototype.redrawPath=
-function(b,d,f,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);d=c/5;b.rect(0,0,d,e);b.fillAndStroke();b.rect(2*d,0,d,e);b.fillAndStroke();b.rect(4*d,0,d,e);b.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",E);M.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=d};M.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,
+.5;D.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,e/2),new mxPoint(0,e/2),new mxPoint(d,e/2),new mxPoint(d,e),new mxPoint(c,e)],this.isRounded,f,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",D);mxUtils.extend(F,mxActor);F.prototype.redrawPath=
+function(b,d,f,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);d=c/5;b.rect(0,0,d,e);b.fillAndStroke();b.rect(2*d,0,d,e);b.fillAndStroke();b.rect(4*d,0,d,e);b.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",F);M.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=d};M.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)};M.prototype.quadTo=function(b,d,f,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=c};M.prototype.curveTo=function(b,d,f,c,e,g){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};M.prototype.arcTo=function(b,d,f,c,e,g,l){this.originalArcTo.apply(this.canvas,arguments);this.lastX=g;this.lastY=l};M.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var f=function(b){return"number"===
typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},c=Math.abs(b-this.lastX),e=Math.abs(d-this.lastY),z=Math.sqrt(c*c+e*e);if(2>z){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var g=Math.round(z/10),l=this.defaultVariation;5>g&&(g=5,l/=3);for(var k=f(b-this.lastX)*c/g,f=f(d-this.lastY)*e/g,c=c/z,e=e/z,z=0;z<g;z++){var m=(Math.random()-.5)*l;this.originalLineTo.call(this.canvas,k*z+this.lastX-m*e,f*z+this.lastY-m*c)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,
arguments);this.lastX=b;this.lastY=d};M.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 ab=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(b){ab.apply(this,arguments);null==b.handJiggle&&(b.handJiggle=this.createHandJiggle(b))};
@@ -2746,11 +2747,11 @@ mxUtils.extend(O,mxHexagon);O.prototype.size=.25;O.prototype.fixedSize=20;O.prot
0),new mxPoint(c-d,0),new mxPoint(c,.5*e),new mxPoint(c-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,f,!0)};mxCellRenderer.registerShape("hexagon",O);mxUtils.extend(da,mxRectangleShape);da.prototype.isHtmlAllowed=function(){return!1};da.prototype.paintForeground=function(b,d,f,c,e){var g=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,f+g);b.lineTo(d+c/2,f+e-g);b.moveTo(d+g,f+e/2);b.lineTo(d+c-g,f+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};
mxCellRenderer.registerShape("plus",da);var Xa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};mxRhombus.prototype.paintVertexShape=function(b,d,f,c,e){Xa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var g=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&(b.setShadow(!1),Xa.apply(this,[b,d,f,c,e]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};N.prototype.paintForeground=function(b,d,f,c,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var g=
-Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var g=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=z){var l=this.style["symbol"+g+"Align"],k=this.style["symbol"+g+"VerticalAlign"],m=this.style["symbol"+g+"Width"],p=this.style["symbol"+g+"Height"],q=this.style["symbol"+g+"Spacing"]||0,F=this.style["symbol"+g+"VSpacing"]||q,ua=
-this.style["symbol"+g+"ArcSpacing"];null!=ua&&(ua*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),q+=ua,F+=ua);var ua=d,ra=f,ua=l==mxConstants.ALIGN_CENTER?ua+(c-m)/2:l==mxConstants.ALIGN_RIGHT?ua+(c-m-q):ua+q,ra=k==mxConstants.ALIGN_MIDDLE?ra+(e-p)/2:k==mxConstants.ALIGN_BOTTOM?ra+(e-p-F):ra+F;b.save();l=new z;l.style=this.style;z.prototype.paintVertexShape.call(l,b,ua,ra,m,p);b.restore()}g++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
+Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var g=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=z){var l=this.style["symbol"+g+"Align"],k=this.style["symbol"+g+"VerticalAlign"],m=this.style["symbol"+g+"Width"],p=this.style["symbol"+g+"Height"],q=this.style["symbol"+g+"Spacing"]||0,E=this.style["symbol"+g+"VSpacing"]||q,ua=
+this.style["symbol"+g+"ArcSpacing"];null!=ua&&(ua*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),q+=ua,E+=ua);var ua=d,ra=f,ua=l==mxConstants.ALIGN_CENTER?ua+(c-m)/2:l==mxConstants.ALIGN_RIGHT?ua+(c-m-q):ua+q,ra=k==mxConstants.ALIGN_MIDDLE?ra+(e-p)/2:k==mxConstants.ALIGN_BOTTOM?ra+(e-p-E):ra+E;b.save();l=new z;l.style=this.style;z.prototype.paintVertexShape.call(l,b,ua,ra,m,p);b.restore()}g++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
N);mxUtils.extend(Q,mxCylinder);Q.prototype.redrawPath=function(b,d,f,c,e,g){g?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",Q);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/
-2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",X);mxUtils.extend(F,mxShape);F.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};F.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",
-F);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(A,mxShape);A.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",A);mxUtils.extend(aa,mxShape);
+2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",X);mxUtils.extend(E,mxShape);E.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};E.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",
+E);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(A,mxShape);A.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",A);mxUtils.extend(aa,mxShape);
aa.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};aa.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};aa.prototype.paintForeground=function(b,d,f,c,e){b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",aa);mxUtils.extend(I,mxRectangleShape);I.prototype.size=
40;I.prototype.isHtmlAllowed=function(){return!1};I.prototype.getLabelBounds=function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(b.x,b.y,b.width,d)};I.prototype.paintBackground=function(b,d,f,c,e){var g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),l=mxUtils.getValue(this.style,"participant");null==l||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,d,
f,c,g):(l=this.state.view.graph.cellRenderer.getShape(l),null!=l&&l!=I&&(l=new l,l.apply(this.state),b.save(),l.paintVertexShape(b,d,f,c,g),b.restore()));g<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,f+g),b.lineTo(d+c/2,f+e),b.end(),b.stroke())};I.prototype.paintForeground=function(b,d,f,c,e){var g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,b,d,f,c,Math.min(e,
@@ -2804,11 +2805,11 @@ defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enu
{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"}]}];V.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,
f);this.strictDrawShape(b,0,0,c,e)};V.prototype.strictDrawShape=function(b,d,f,c,e,g){var l=g&&g.rectStyle?g.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=g&&g.absoluteCornerSize?g.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=g&&g.size?g.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=g&&g.rectOutline?g.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=g&&g.indent?
-g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),F=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),z=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,q)),u=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),n=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),A=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",!0),x=g&&g.left?g.left:mxUtils.getValue(this.style,
+g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),E=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),z=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,q)),u=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),n=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),A=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",!0),x=g&&g.left?g.left:mxUtils.getValue(this.style,
"left",!0),J=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),y=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),I=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),D=g&&g.fillColor?g.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");g&&g.strokeColor||mxUtils.getValue(this.style,
"strokeColor","#000000");var B=g&&g.strokeWidth?g.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),aa=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),N=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),ra=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),ba=g&&g.opacity?g.opacity:mxUtils.getValue(this.style,"opacity","100"),ua=Math.max(0,Math.min(50,m));g=V.prototype;
-b.setDashed(F);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(B);m=Math.min(.5*e,.5*c,m);k||(m=ua*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(q=Math.min(v*Math.min(c,e)/100));q=Math.min(q,.5*Math.min(c,e)-m);(u||n||A||x)&&"frame"!=p&&(b.begin(),u?g.moveNW(b,d,f,c,e,l,J,m,x):b.moveTo(0,0),u&&g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,n),n&&g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,y,m,A),A&&g.paintSE(b,d,f,c,e,l,y,m,n),g.paintBottom(b,d,f,c,e,l,I,m,x),x&&g.paintSW(b,
-d,f,c,e,l,I,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(aa),F=k=ba,"none"==aa&&(k=0),"none"==N&&(F=0),b.setGradient(aa,N,0,0,c,e,ra,k,F),b.begin(),u?g.moveNWInner(b,d,f,c,e,l,J,m,q,u,x):b.moveTo(q,0),g.paintLeftInner(b,d,f,c,e,l,I,m,q,A,x),x&&A&&g.paintSWInner(b,d,f,c,e,l,I,m,q,A),g.paintBottomInner(b,d,f,c,e,l,y,m,q,n,A),A&&n&&g.paintSEInner(b,d,f,c,e,l,y,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,u,n),n&&u&&g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,
+b.setDashed(E);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(B);m=Math.min(.5*e,.5*c,m);k||(m=ua*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(q=Math.min(v*Math.min(c,e)/100));q=Math.min(q,.5*Math.min(c,e)-m);(u||n||A||x)&&"frame"!=p&&(b.begin(),u?g.moveNW(b,d,f,c,e,l,J,m,x):b.moveTo(0,0),u&&g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,n),n&&g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,y,m,A),A&&g.paintSE(b,d,f,c,e,l,y,m,n),g.paintBottom(b,d,f,c,e,l,I,m,x),x&&g.paintSW(b,
+d,f,c,e,l,I,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(aa),E=k=ba,"none"==aa&&(k=0),"none"==N&&(E=0),b.setGradient(aa,N,0,0,c,e,ra,k,E),b.begin(),u?g.moveNWInner(b,d,f,c,e,l,J,m,q,u,x):b.moveTo(q,0),g.paintLeftInner(b,d,f,c,e,l,I,m,q,A,x),x&&A&&g.paintSWInner(b,d,f,c,e,l,I,m,q,A),g.paintBottomInner(b,d,f,c,e,l,y,m,q,n,A),A&&n&&g.paintSEInner(b,d,f,c,e,l,y,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,u,n),n&&u&&g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,
d,f,c,e,l,J,m,q,x,u),u&&x&&g.paintNWInner(b,d,f,c,e,l,J,m,q),b.fill(),"none"==D&&(b.begin(),g.paintFolds(b,d,f,c,e,l,J,t,y,I,m,u,n,A,x),b.stroke()));u||n||A||!x?u||n||!A||x?!u&&!n&&A&&x?"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,y,m,n),g.paintBottom(b,d,f,c,e,l,I,m,x),g.paintSW(b,d,f,c,e,l,I,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==p&&(g.moveNWInner(b,d,f,c,e,l,J,m,q,u,x),g.paintLeftInner(b,d,f,c,e,l,I,m,q,A,x),g.paintSWInner(b,d,f,c,e,l,I,m,q,A),g.paintBottomInner(b,d,f,c,e,l,y,m,q,n,A)),b.stroke()):
(b.begin(),g.moveSE(b,d,f,c,e,l,y,m,n),g.paintBottom(b,d,f,c,e,l,I,m,x),g.paintSW(b,d,f,c,e,l,I,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,q,u,x),g.paintLeftInner(b,d,f,c,e,l,I,m,q,A,x),g.paintSWInner(b,d,f,c,e,l,I,m,q,A),g.paintBottomInner(b,d,f,c,e,l,y,m,q,n,A),b.close(),b.fillAndStroke()):u||!n||A||x?!u&&n&&!A&&x?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==p&&(g.moveNWInner(b,d,f,c,e,l,J,m,q,u,x),g.paintLeftInner(b,d,f,c,e,l,
I,m,q,A,x)),b.stroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,y,m,A),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,y,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,u,n)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,q,u,x),g.paintLeftInner(b,d,f,c,e,l,I,m,q,A,x),b.close(),b.fillAndStroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,y,m,A),g.lineSEInner(b,d,f,c,e,l,y,m,q,A),g.paintRightInner(b,d,f,c,
@@ -2845,15 +2846,15 @@ l,m,k,q){q?"square"==l||"default"==l&&"square"==g?b.lineTo(k,e-k):"rounded"==l||
l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};V.prototype.lineSEInner=function(b,d,f,c,e,g,l,m,k,q){q?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,e-m-k):b.lineTo(c-k,e)};V.prototype.moveNEInner=function(b,d,f,c,e,g,l,m,k,q){q?"square"==
l||"default"==l&&"square"==g||q?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};V.prototype.lineNEInner=function(b,d,f,c,e,g,l,m,k,q){q?"square"==l||"default"==l&&"square"==g||q?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&
"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};V.prototype.moveNWInner=function(b,d,f,c,e,g,l,m,k,q,p){q||p?!q&&p?b.moveTo(k,0):q&&!p?b.moveTo(0,k):"square"==l||"default"==l&&"square"==g?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,m+k):b.moveTo(0,0)};V.prototype.lineNWInner=function(b,d,f,c,e,g,l,m,k,q,
-p){q||p?!q&&p?b.lineTo(k,0):q&&!p?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};V.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,q,p,F,u,n,A){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==l&&"fold"==g)&&F&&A&&(b.moveTo(0,p),b.lineTo(p,p),
-b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==g)&&F&&u&&(b.moveTo(c-p,0),b.lineTo(c-p,p),b.lineTo(c,p)),("fold"==k||"default"==k&&"fold"==g)&&n&&u&&(b.moveTo(c-p,e),b.lineTo(c-p,e-p),b.lineTo(c,e-p)),("fold"==q||"default"==q&&"fold"==g)&&n&&A&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(V.prototype.cst.RECT2,V);V.prototype.constraints=null;mxUtils.extend(xa,mxConnector);xa.prototype.origPaintEdgeShape=xa.prototype.paintEdgeShape;xa.prototype.paintEdgeShape=function(b,
+p){q||p?!q&&p?b.lineTo(k,0):q&&!p?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};V.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,q,p,E,u,n,A){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==l&&"fold"==g)&&E&&A&&(b.moveTo(0,p),b.lineTo(p,p),
+b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==g)&&E&&u&&(b.moveTo(c-p,0),b.lineTo(c-p,p),b.lineTo(c,p)),("fold"==k||"default"==k&&"fold"==g)&&n&&u&&(b.moveTo(c-p,e),b.lineTo(c-p,e-p),b.lineTo(c,e-p)),("fold"==q||"default"==q&&"fold"==g)&&n&&A&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(V.prototype.cst.RECT2,V);V.prototype.constraints=null;mxUtils.extend(xa,mxConnector);xa.prototype.origPaintEdgeShape=xa.prototype.paintEdgeShape;xa.prototype.paintEdgeShape=function(b,
d,f){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,g=b.state.fixDash;xa.prototype.origPaintEdgeShape.apply(this,[b,c,f]);3<=b.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(b.setStrokeColor(c),b.setStrokeWidth(b.state.strokeWidth-2),b.setDashed(e,g),xa.prototype.origPaintEdgeShape.apply(this,[b,d,f])))};mxCellRenderer.registerShape("filledEdge",xa);"undefined"!==typeof StyleFormatPanel&&function(){var b=StyleFormatPanel.prototype.getCustomColors;
-StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),f=b.apply(this,arguments);"umlFrame"==d.style.shape&&f.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return f}}();mxMarker.addMarker("dash",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.stroke()}});mxMarker.addMarker("box",function(b,d,f,c,e,g,l,m,k,q){var p=
-e*(l+k+1),F=g*(l+k+1),u=c.x+p/2,n=c.y+F/2;c.x-=p;c.y-=F;return function(){b.begin();b.moveTo(u-p/2-F/2,n-F/2+p/2);b.lineTo(u-p/2+F/2,n-F/2-p/2);b.lineTo(u+F/2-3*p/2,n-3*F/2-p/2);b.lineTo(u-F/2-3*p/2,n-3*F/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.moveTo(c.x-p/2+F/2,c.y-F/2-p/2);b.lineTo(c.x-F/2-3*p/2,c.y-
-3*F/2+p/2);b.stroke()}});mxMarker.addMarker("circle",Oa);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,q){var p=c.clone(),F=Oa.apply(this,arguments),u=e*(l+2*k),n=g*(l+2*k);return function(){F.apply(this,arguments);b.begin();b.moveTo(p.x-e*k,p.y-g*k);b.lineTo(p.x-2*u+e*k,p.y-2*n+g*k);b.moveTo(p.x-u-n+g*k,p.y-n+u-e*k);b.lineTo(p.x+n-u-g*k,p.y-n-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,p){var q=e*(l+k+1),F=g*(l+k+1),u=c.clone();c.x-=q;c.y-=F;return function(){b.begin();
-b.moveTo(u.x-F,u.y+q);b.quadTo(c.x-F,c.y+q,c.x,c.y);b.quadTo(c.x+F,c.y-q,u.x+F,u.y-q);b.stroke()}});mxMarker.addMarker("async",function(b,d,f,c,e,g,l,m,k,q){d=e*k*1.118;f=g*k*1.118;e*=l+k;g*=l+k;var p=c.clone();p.x-=d;p.y-=f;c.x+=1*-e-d;c.y+=1*-g-f;return function(){b.begin();b.moveTo(p.x,p.y);m?b.lineTo(p.x-e-g/2,p.y-g+e/2):b.lineTo(p.x+g/2-e,p.y-g-e/2);b.lineTo(p.x-e,p.y-g);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(d,f,c,
-e,g,l,m,k,p,q){g*=m+p;l*=m+p;var F=e.clone();return function(){d.begin();d.moveTo(F.x,F.y);k?d.lineTo(F.x-g-l/b,F.y-l+g/b):d.lineTo(F.x+l/b-g,F.y-l-g/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ya=function(b,d,f){return Na(b,["width"],d,function(d,c,e,g,l){l=b.shape.getEdgeWidth()*b.view.scale+f;return new mxPoint(g.x+c*d/4+e*l/2,g.y+e*d/4-c*l/2)},function(d,c,e,g,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));b.style.width=Math.round(2*d)/b.view.scale-f})},Na=
-function(b,d,f,c,e){return ga(b,d,function(d){var e=b.absolutePoints,g=e.length-1;d=b.view.translate;var l=b.view.scale,m=f?e[0]:e[g],e=f?e[1]:e[g-1],g=e.x-m.x,k=e.y-m.y,p=Math.sqrt(g*g+k*k),m=c.call(this,p,g/p,k/p,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,g){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,p=f?l[0]:l[m],l=f?l[1]:l[m-1],m=l.x-p.x,q=l.y-p.y,F=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,F,m/F,q/F,p,l,c,g)})},Ia=function(b){return function(d){return[ga(d,
+StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),f=b.apply(this,arguments);"umlFrame"==d.style.shape&&f.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return f}}();mxMarker.addMarker("dash",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),E=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-E/2,c.y-E/2+p/2);b.lineTo(c.x+E/2-3*p/2,c.y-3*E/2-p/2);b.stroke()}});mxMarker.addMarker("box",function(b,d,f,c,e,g,l,m,k,q){var p=
+e*(l+k+1),E=g*(l+k+1),u=c.x+p/2,n=c.y+E/2;c.x-=p;c.y-=E;return function(){b.begin();b.moveTo(u-p/2-E/2,n-E/2+p/2);b.lineTo(u-p/2+E/2,n-E/2-p/2);b.lineTo(u+E/2-3*p/2,n-3*E/2-p/2);b.lineTo(u-E/2-3*p/2,n-3*E/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),E=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-E/2,c.y-E/2+p/2);b.lineTo(c.x+E/2-3*p/2,c.y-3*E/2-p/2);b.moveTo(c.x-p/2+E/2,c.y-E/2-p/2);b.lineTo(c.x-E/2-3*p/2,c.y-
+3*E/2+p/2);b.stroke()}});mxMarker.addMarker("circle",Oa);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,q){var p=c.clone(),E=Oa.apply(this,arguments),u=e*(l+2*k),n=g*(l+2*k);return function(){E.apply(this,arguments);b.begin();b.moveTo(p.x-e*k,p.y-g*k);b.lineTo(p.x-2*u+e*k,p.y-2*n+g*k);b.moveTo(p.x-u-n+g*k,p.y-n+u-e*k);b.lineTo(p.x+n-u-g*k,p.y-n-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,p){var q=e*(l+k+1),E=g*(l+k+1),u=c.clone();c.x-=q;c.y-=E;return function(){b.begin();
+b.moveTo(u.x-E,u.y+q);b.quadTo(c.x-E,c.y+q,c.x,c.y);b.quadTo(c.x+E,c.y-q,u.x+E,u.y-q);b.stroke()}});mxMarker.addMarker("async",function(b,d,f,c,e,g,l,m,k,q){d=e*k*1.118;f=g*k*1.118;e*=l+k;g*=l+k;var p=c.clone();p.x-=d;p.y-=f;c.x+=1*-e-d;c.y+=1*-g-f;return function(){b.begin();b.moveTo(p.x,p.y);m?b.lineTo(p.x-e-g/2,p.y-g+e/2):b.lineTo(p.x+g/2-e,p.y-g-e/2);b.lineTo(p.x-e,p.y-g);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(d,f,c,
+e,g,l,m,k,p,q){g*=m+p;l*=m+p;var E=e.clone();return function(){d.begin();d.moveTo(E.x,E.y);k?d.lineTo(E.x-g-l/b,E.y-l+g/b):d.lineTo(E.x+l/b-g,E.y-l-g/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ya=function(b,d,f){return Na(b,["width"],d,function(d,c,e,g,l){l=b.shape.getEdgeWidth()*b.view.scale+f;return new mxPoint(g.x+c*d/4+e*l/2,g.y+e*d/4-c*l/2)},function(d,c,e,g,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));b.style.width=Math.round(2*d)/b.view.scale-f})},Na=
+function(b,d,f,c,e){return ga(b,d,function(d){var e=b.absolutePoints,g=e.length-1;d=b.view.translate;var l=b.view.scale,m=f?e[0]:e[g],e=f?e[1]:e[g-1],g=e.x-m.x,k=e.y-m.y,p=Math.sqrt(g*g+k*k),m=c.call(this,p,g/p,k/p,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,g){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,p=f?l[0]:l[m],l=f?l[1]:l[m-1],m=l.x-p.x,q=l.y-p.y,E=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,E,m/E,q/E,p,l,c,g)})},Ia=function(b){return function(d){return[ga(d,
["arrowWidth","arrowSize"],function(d){var f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ea.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",ea.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-f)*d.height/2)},function(d,f){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-f.y)/d.height*2));this.state.style.arrowSize=Math.max(0,Math.min(b,(d.x+d.width-f.x)/d.width))})]}},Za=function(b){return function(d){return[ga(d,
["size"],function(d){var f=Math.max(0,Math.min(.5*d.height,parseFloat(mxUtils.getValue(this.state.style,"size",b))));return new mxPoint(d.x,d.y+f)},function(b,d){this.state.style.size=Math.max(0,d.y-b.y)},!0)]}},Ta=function(b,d,f){return function(c){var e=[ga(c,["size"],function(f){var c=Math.max(0,Math.min(f.width,Math.min(f.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*b;return new mxPoint(f.x+c,f.y+c)},function(d,f){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,
f.x-d.x),Math.min(d.height,f.y-d.y)))/b)},!1)];f&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Pa=function(b,d,f,c,e){f=null!=f?f:.5;return function(g){var l=[ga(g,["size"],function(d){var f=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",f?e:b));return new mxPoint(d.x+Math.max(0,Math.min(.5*d.width,c*(f?1:d.width))),d.getCenterY())},function(b,d,c){b=null!=e&&"0"!=mxUtils.getValue(this.state.style,
@@ -2895,7 +2896,7 @@ Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},"mxgraph.basic.rect":
H.prototype.size,H.prototype.fixedSize),parallelogram:Va(1,C.prototype.size,C.prototype.fixedSize)};Graph.createHandle=ga;Graph.handleFactory=Qa;var eb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=eb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&null==mxStencilRegistry.getStencil(d)?d=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&
(d=mxConstants.SHAPE_SWIMLANE);d=Qa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Qa[mxConstants.SHAPE_RECTANGLE]);null!=d&&(d=d(this.state),null!=d&&(b=null==b?d:b.concat(d)))}return b};mxEdgeHandler.prototype.createCustomHandles=function(){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&null==mxStencilRegistry.getStencil(b)&&(b=mxConstants.SHAPE_CONNECTOR);b=Qa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory=
{};var Ra=new mxPoint(1,0),Sa=new mxPoint(1,0),Ia=mxUtils.toRadians(-30),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ia),Math.sin(Ia)),Ia=mxUtils.toRadians(-150),Sa=mxUtils.getRotatedPoint(Sa,Math.cos(Ia),Math.sin(Ia));mxEdgeStyle.IsometricConnector=function(b,d,f,c,e){var g=b.view;c=null!=c&&0<c.length?c[0]:null;var l=b.absolutePoints,m=l[0],l=l[l.length-1];null!=c&&(c=g.transformControlPoint(b,c));null==m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=f&&(l=new mxPoint(f.getCenterX(),
-f.getCenterY()));var k=Ra.x,p=Ra.y,q=Sa.x,F=Sa.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=n.x;var c=d-n.y;d=(F*b-q*c)/(k*F-p*q);b=(p*b-k*c)/(p*q-k*F);u?(f&&(n=new mxPoint(n.x+k*d,n.y+p*d),e.push(n)),n=new mxPoint(n.x+q*b,n.y+F*b)):(f&&(n=new mxPoint(n.x+q*b,n.y+F*b),e.push(n)),n=new mxPoint(n.x+k*d,n.y+p*d));e.push(n)};var n=m;null==c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",
+f.getCenterY()));var k=Ra.x,p=Ra.y,q=Sa.x,E=Sa.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=n.x;var c=d-n.y;d=(E*b-q*c)/(k*E-p*q);b=(p*b-k*c)/(p*q-k*E);u?(f&&(n=new mxPoint(n.x+k*d,n.y+p*d),e.push(n)),n=new mxPoint(n.x+q*b,n.y+E*b)):(f&&(n=new mxPoint(n.x+q*b,n.y+E*b),e.push(n)),n=new mxPoint(n.x+k*d,n.y+p*d));e.push(n)};var n=m;null==c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",
mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var f=new mxElbowEdgeHandler(b);f.snapToTerminals=!1;return f}return fb.apply(this,arguments)};k.prototype.constraints=[];g.prototype.getConstraints=function(b,d,f){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-c)/2,c=Math.min(d,f/(.5+c));d=(d-c)/2;f=(f-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,d+.5*c,f+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.75*c));return b};f.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,c=Math.min(d*
Math.tan(c),.5*f);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
@@ -3003,10 +3004,10 @@ c[f];if(g.getModel().isEdge(e)){var l=g.getCellGeometry(e);mxEvent.isShiftDown(b
document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");t=this.addAction("superscript",mxUtils.bind(this,function(){g.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",function(){if(g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())){var b=mxResources.get("image")+" ("+mxResources.get("url")+"):",d=g.getView().getState(g.getSelectionCell()),c="";null!=d&&(c=d.style[mxConstants.STYLE_IMAGE]||c);
var k=g.cellEditor.saveSelection();e.showImageDialog(b,c,function(b,d,c){if(g.cellEditor.isContentEditing())g.cellEditor.restoreSelection(k),g.insertImage(b,d,c);else{var f=g.getSelectionCells();if(null!=b&&(0<b.length||0<f.length)){var e=null;g.getModel().beginUpdate();try{if(0==f.length){var f=[g.insertVertex(g.getDefaultParent(),null,"",0,0,d,c,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],l=g.getCenterInsertPoint(g.getBoundingBoxFromGeometry(f,!0));
f[0].geometry.x=l.x;f[0].geometry.y=l.y;e=f;g.fireEvent(new mxEventObject("cellsInserted","cells",e))}g.setCellStyles(mxConstants.STYLE_IMAGE,0<b.length?b:null,f);var m=g.getCurrentCellStyle(f[0]);"image"!=m[mxConstants.STYLE_SHAPE]&&"label"!=m[mxConstants.STYLE_SHAPE]?g.setCellStyles(mxConstants.STYLE_SHAPE,"image",f):0==b.length&&g.setCellStyles(mxConstants.STYLE_SHAPE,null,f);if(1==g.getSelectionCount()&&null!=d&&null!=c){var p=f[0],q=g.getModel().getGeometry(p);null!=q&&(q=q.clone(),q.width=d,
-q.height=c,g.getModel().setGeometry(p,q))}}finally{g.getModel().endUpdate()}null!=e&&(g.setSelectionCells(e),g.scrollCellToVisible(e[0]))}}},g.cellEditor.isContentEditing(),!g.cellEditor.isContentEditing())}}).isEnabled=n;t=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(e,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",function(){e.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",
-function(){e.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),e.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));t=this.addAction("formatPanel",mxUtils.bind(this,function(){e.toggleFormatPanel()}),
-null,null,Editor.ctrlKey+"+Shift+P");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return 0<e.formatWidth}));t=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(e,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){e.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){e.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),
-e.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};
+q.height=c,g.getModel().setGeometry(p,q))}}finally{g.getModel().endUpdate()}null!=e&&(g.setSelectionCells(e),g.scrollCellToVisible(e[0]))}}},g.cellEditor.isContentEditing(),!g.cellEditor.isContentEditing())}}).isEnabled=n;t=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(e,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",mxUtils.bind(this,function(){e.fireEvent(new mxEventObject("layers"));this.layersWindow.window.fit()})),
+this.layersWindow.window.addListener("hide",function(){e.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),e.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));t=this.addAction("formatPanel",mxUtils.bind(this,
+function(){e.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return 0<e.formatWidth}));t=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(e,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",mxUtils.bind(this,function(){e.fireEvent(new mxEventObject("outline"));this.outlineWindow.window.fit()})),this.outlineWindow.window.addListener("hide",
+function(){e.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),e.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};
Actions.prototype.addAction=function(b,c,e,k,g){var n;"..."==b.substring(b.length-3)?(b=b.substring(0,b.length-3),n=mxResources.get(b)+"..."):n=mxResources.get(b);return this.put(b,new Action(n,c,e,k,g))};Actions.prototype.put=function(b,c){return this.actions[b]=c};Actions.prototype.get=function(b){return this.actions[b]};function Action(b,c,e,k,g){mxEventSource.call(this);this.label=b;this.funct=this.createFunction(c);this.enabled=null!=e?e:!0;this.iconCls=k;this.shortcut=g;this.visible=!0}
mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(b){return b};Action.prototype.setEnabled=function(b){this.enabled!=b&&(this.enabled=b,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(b){this.toggleAction=b};Action.prototype.setSelectedCallback=function(b){this.selectedCallback=b};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(b,c){mxEventSource.call(this);this.ui=b;this.shadowData=this.data=c||"";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;
@@ -3194,10 +3195,10 @@ else if("eot"==k||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";els
function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;null!=b&&b()})):null!=b&&b()};Editor.prototype.embedExtFonts=function(b){var d=this.graph.getCustomFonts();if(0<d.length){var c="",f=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var e=mxUtils.bind(this,function(){0==f&&this.embedCssFonts(c,b)}),g=0;g<d.length;g++)mxUtils.bind(this,function(b,d){Graph.isCssFontUrl(d)?null==this.cachedGoogleFonts[d]?
(f++,this.loadUrl(d,mxUtils.bind(this,function(b){this.cachedGoogleFonts[d]=b;c+=b;f--;e()}),mxUtils.bind(this,function(b){f--;c+="@import url("+d+");";e()}))):c+=this.cachedGoogleFonts[d]:c+='@font-face {font-family: "'+b+'";src: url("'+d+'")}'})(d[g].name,d[g].url);e()}else b()};Editor.prototype.addMathCss=function(b){b=b.getElementsByTagName("defs");if(null!=b&&0<b.length)for(var d=document.getElementsByTagName("style"),c=0;c<d.length;c++)0<mxUtils.getTextContent(d[c]).indexOf("MathJax")&&b[0].appendChild(d[c].cloneNode(!0))};
Editor.prototype.addFontCss=function(b,d){d=null!=d?d:this.absoluteCssFonts(this.fontCss);if(null!=d){var c=b.getElementsByTagName("defs"),f=b.ownerDocument;0==c.length?(c=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,"defs"):f.createElement("defs"),null!=b.firstChild?b.insertBefore(c,b.firstChild):b.appendChild(c)):c=c[0];f=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,"style"):f.createElement("style");f.setAttribute("type","text/css");mxUtils.setTextContent(f,d);c.appendChild(f)}};
-Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var f=mxClient.IS_FF?8192:16384;return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,k,m,p,q,n,u,x,v,t,y,D){try{g=null!=g?g:!0;l=null!=l?l:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var F=m?null:n.background;F==mxConstants.NONE&&(F=null);null==F&&(F=f);null==F&&0==m&&(F=t?this.graph.defaultPageBackgroundColor:"#ffffff");
+Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var f=mxClient.IS_FF?8192:16384;return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,k,m,p,q,n,u,x,v,t,y,D){try{g=null!=g?g:!0;l=null!=l?l:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var E=m?null:n.background;E==mxConstants.NONE&&(E=null);null==E&&(E=f);null==E&&0==m&&(E=t?this.graph.defaultPageBackgroundColor:"#ffffff");
this.convertImages(n.getSvg(null,null,u,x,null,l,null,null,null,p,null,t,y,D),mxUtils.bind(this,function(c){try{var f=new Image;f.onload=mxUtils.bind(this,function(){try{var l=function(){mxClient.IS_SF?window.setTimeout(function(){x.drawImage(f,0,0);b(m,c)},0):(x.drawImage(f,0,0),b(m,c))},m=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));k=null!=k?k:1;null!=d&&(k=g?Math.min(1,Math.min(3*d/(4*q),d/p)):d/p);k=this.getMaxCanvasScale(p,q,k);p=
-Math.ceil(k*p);q=Math.ceil(k*q);m.setAttribute("width",p);m.setAttribute("height",q);var x=m.getContext("2d");null!=F&&(x.beginPath(),x.rect(0,0,p,q),x.fillStyle=F,x.fill());1!=k&&x.scale(k,k);if(v){var t=n.view,y=t.scale;t.scale=1;var A=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=y;var A="data:image/svg+xml;base64,"+A,D=n.gridSize*t.gridSteps*k,B=n.getGraphBounds(),J=t.translate.x*y,N=t.translate.y*y,I=J+(B.x-J)/y-u,E=N+(B.y-N)/y-u,C=new Image;C.onload=function(){try{for(var b=
--Math.round(D-mxUtils.mod((J-I)*k,D)),d=-Math.round(D-mxUtils.mod((N-E)*k,D));b<p;b+=D)for(var c=d;c<q;c+=D)x.drawImage(C,b/k,c/k);l()}catch(V){null!=e&&e(V)}};C.onerror=function(b){null!=e&&e(b)};C.src=A}else l()}catch(Ba){null!=e&&e(Ba)}});f.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),f.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(ea){null!=
+Math.ceil(k*p);q=Math.ceil(k*q);m.setAttribute("width",p);m.setAttribute("height",q);var x=m.getContext("2d");null!=E&&(x.beginPath(),x.rect(0,0,p,q),x.fillStyle=E,x.fill());1!=k&&x.scale(k,k);if(v){var t=n.view,y=t.scale;t.scale=1;var A=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=y;var A="data:image/svg+xml;base64,"+A,D=n.gridSize*t.gridSteps*k,B=n.getGraphBounds(),J=t.translate.x*y,N=t.translate.y*y,I=J+(B.x-J)/y-u,F=N+(B.y-N)/y-u,C=new Image;C.onload=function(){try{for(var b=
+-Math.round(D-mxUtils.mod((J-I)*k,D)),d=-Math.round(D-mxUtils.mod((N-F)*k,D));b<p;b+=D)for(var c=d;c<q;c+=D)x.drawImage(C,b/k,c/k);l()}catch(V){null!=e&&e(V)}};C.onerror=function(b){null!=e&&e(b)};C.src=A}else l()}catch(Ba){null!=e&&e(Ba)}});f.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),f.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(ea){null!=
e&&e(ea)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(l)}catch(ha){null!=e&&e(ha)}}))}catch(ea){null!=e&&e(ea)}}),c,q)}catch(ma){null!=e&&e(ma)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var n=g,t=0;8>t;t++)n=1==(n&1)?3988292384^n>>>1:n>>>1,Editor.crcTable[g]=n;Editor.updateCRC=function(b,d,c,f){for(var e=0;e<f;e++)b=Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>
8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,f,e){function g(b,d){var c=m;m+=d;return b.substring(c,m)}function l(b){b=g(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function k(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+1);b=window.atob?atob(b):Base64.decode(b,!0);var m=0;if(g(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,
10))null!=e&&e();else if(g(b,4),"IHDR"!=g(b,4))null!=e&&e();else{g(b,17);e=b.substring(0,m);do{var p=l(b);if("IDAT"==g(b,4)){e=b.substring(0,m-8);"pHYs"==d&&"dpi"==c?(c=Math.round(f/.0254),c=k(c)+k(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+f;f=4294967295;f=Editor.updateCRC(f,d,0,4);f=Editor.updateCRC(f,c,0,c.length);e+=k(c.length)+d+c+k(f^4294967295);e+=b.substring(m-8,b.length);break}e+=b.substring(m-8,m-4+p);g(b,p);g(b,4)}while(p);return"data:image/png;base64,"+
@@ -3246,8 +3247,8 @@ mxEvent.addListener(g,"change",function(){var b=mxUtils.htmlEntities(g.value);f(
(l.min=parseFloat(p.min)),null!=p.max&&(l.max=parseFloat(p.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&g()});l.focus();mxEvent.addListener(l,"blur",function(){g()})})));p.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(b){f(d,"",p,p.index);mxEvent.consume(b)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",y.appendChild(u));t.appendChild(y);return t}var q=this,n=this.editorUi.editor.graph,u=[];b.style.position=
"relative";b.style.padding="0";var x=document.createElement("table");x.className="geProperties";x.style.whiteSpace="nowrap";x.style.width="100%";var v=document.createElement("tr");v.className="gePropHeader";var t=document.createElement("th");t.className="gePropHeaderCell";var y=document.createElement("img");y.src=Sidebar.prototype.expandedImage;y.style.verticalAlign="middle";t.appendChild(y);mxUtils.write(t,mxResources.get("property"));v.style.cursor="pointer";var D=function(){var d=x.querySelectorAll(".gePropNonHeaderRow"),
c;if(q.editorUi.propertiesCollapsed){y.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var e=b.childNodes[f],g=e.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||b.removeChild(e)}catch(qa){}}else y.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<d.length;f++)d[f].style.display=c};mxEvent.addListener(v,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;D()});v.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";
-t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var F=!1,B=!1,v=null;1==c.vertices.length&&0==c.edges.length?v=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(v=c.edges[0].id);null!=v&&x.appendChild(p("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var A in d)if(v=d[A],"function"!=typeof v.isVisible||v.isVisible(c,this)){var N=null!=c.style[A]?mxUtils.htmlEntities(c.style[A]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
-v.type)B=!B;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var J=v.dependentProps,E=[],C=[],t=0;t<J.length;t++){var O=c.style[J[t]];C.push(d[J[t]].subDefVal);E.push(null!=O?O.split(","):[])}v.dependentPropsDefVal=C;v.dependentPropsVals=E}x.appendChild(p(A,N,v,F,B));F=!F}}for(t=0;t<u.length;t++)for(v=u[t],d=v.parentRow,c=0;c<v.values.length;c++)A=p(v.name,v.values[c],{type:v.type,parentRow:v.parentRow,isDeletable:v.isDeletable,
+t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var E=!1,B=!1,v=null;1==c.vertices.length&&0==c.edges.length?v=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(v=c.edges[0].id);null!=v&&x.appendChild(p("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var A in d)if(v=d[A],"function"!=typeof v.isVisible||v.isVisible(c,this)){var N=null!=c.style[A]?mxUtils.htmlEntities(c.style[A]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
+v.type)B=!B;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var J=v.dependentProps,F=[],C=[],t=0;t<J.length;t++){var O=c.style[J[t]];C.push(d[J[t]].subDefVal);F.push(null!=O?O.split(","):[])}v.dependentPropsDefVal=C;v.dependentPropsVals=F}x.appendChild(p(A,N,v,E,B));E=!E}}for(t=0;t<u.length;t++)for(v=u[t],d=v.parentRow,c=0;c<v.values.length;c++)A=p(v.name,v.values[c],{type:v.type,parentRow:v.parentRow,isDeletable:v.isDeletable,
index:c,defVal:v.defVal,countProperty:v.countProperty,size:v.size},0==c%2,v.flipBkg),d.parentNode.insertBefore(A,d.nextSibling),d=A;b.appendChild(x);D();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,f=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight=
"20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var g="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";l.style.width="210px";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(b){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(b)}))})(m);k.push(p);l.appendChild(p)}var q=mxUtils.bind(this,function(b){null!=k[b]&&(null!=this.format.currentScheme&&null!=k[this.format.currentScheme]&&(k[this.format.currentScheme].style.background=
@@ -3284,9 +3285,9 @@ mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var n=m
l.selectionModel.addListener(mxEvent.CHANGE,u);l.model.addListener(mxEvent.CHANGE,u);l.addListener(mxEvent.REFRESH,u);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";l.isEnabled()&&(v.appendChild(q),v.appendChild(n),m.appendChild(v));return{div:m,refresh:u}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,
b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=Graph.getFontUrl(b,d);for(var f=0;f<c.length;f++)c[f].getAttribute("face")==b&&c[f].getAttribute("data-font-src")!=d&&c[f].setAttribute("data-font-src",d)}};var D=Graph.prototype.isFastZoomEnabled;
Graph.prototype.isFastZoomEnabled=function(){return D.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 b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(A){null!=window.console&&console.log("Error in vars URL parameter: "+A)}};Graph.prototype.getExportVariables=
-function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var E=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=E.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};
+function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var F=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=F.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};
var M=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,f,e,g,l,k,m,p,q,n,u,v){var x=null,t=null,y=null;n||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.defaultForegroundColor,y=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.defaultForegroundColor="darkTheme"==this.defaultThemeName?"#000000":"#f0f0f0",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var D=M.apply(this,
-arguments),B=this.getCustomFonts();if(q&&0<B.length){var F=D.ownerDocument,N=null!=F.createElementNS?F.createElementNS(mxConstants.NS_SVG,"style"):F.createElement("style");null!=F.setAttributeNS?N.setAttributeNS("type","text/css"):N.setAttribute("type","text/css");for(var A="",E="",C=0;C<B.length;C++){var J=B[C].name,O=B[C].url;Graph.isCssFontUrl(O)?A+="@import url("+O+");\n":E+='@font-face {\nfont-family: "'+J+'";\nsrc: url("'+O+'");\n}\n'}N.appendChild(F.createTextNode(A+E));D.getElementsByTagName("defs")[0].appendChild(N)}null!=
+arguments),B=this.getCustomFonts();if(q&&0<B.length){var E=D.ownerDocument,N=null!=E.createElementNS?E.createElementNS(mxConstants.NS_SVG,"style"):E.createElement("style");null!=E.setAttributeNS?N.setAttributeNS("type","text/css"):N.setAttribute("type","text/css");for(var A="",F="",C=0;C<B.length;C++){var J=B[C].name,O=B[C].url;Graph.isCssFontUrl(O)?A+="@import url("+O+");\n":F+='@font-face {\nfont-family: "'+J+'";\nsrc: url("'+O+'");\n}\n'}N.appendChild(E.createTextNode(A+F));D.getElementsByTagName("defs")[0].appendChild(N)}null!=
x&&(this.defaultPageBackgroundColor=y,this.defaultForegroundColor=t,this.stylesheet=x,this.refresh());return D};var G=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=G.apply(this,arguments);if(this.mathEnabled){var d=b.drawText;b.drawText=function(b,c){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var f=b.text.getContentNode();if(null!=f){f=f.cloneNode(!0);if(f.getElementsByTagNameNS)for(var e=
f.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=f.innerHTML&&(e=b.text.value,b.text.value=f.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,arguments)}}return b};var K=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){K.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=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"),
@@ -3326,29 +3327,29 @@ mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilR
"/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(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var da=mxMarker.createMarker;mxMarker.createMarker=
function(b,d,c,f,e,g,l,k,m,p){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&mxStencilRegistry.getStencil(q)}return da.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(k,Math.max(parseInt(v.value),parseInt(u.value))));u.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(u.value))))}function f(d){function c(d,c,g){var l=d.useCssTransforms,k=d.currentTranslate,m=d.currentScale,p=d.view.translate,
q=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=1,d.view.translate=new mxPoint(0,0),d.view.scale=1);var n=d.getGraphBounds(),u=0,v=0,x=J.get(),t=1/d.pageScale,B=D.checked;if(B)var t=parseInt(Q.value),N=parseInt(M.value),t=Math.min(x.height*N/(n.height/d.view.scale),x.width*t/(n.width/d.view.scale));else t=parseInt(y.value)/(100*d.pageScale),isNaN(t)&&(f=1/d.pageScale,y.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*
-f);x.height=Math.ceil(x.height*f);t*=f;!B&&d.pageVisible?(n=d.getPageLayout(),u-=n.x*x.width,v-=n.y*x.height):B=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,u,v,B);c.pageSelector=!1;c.mathEnabled=!1;u=b.getCurrentFile();null!=u&&(c.title=u.getTitle());var E=c.writeHead;c.writeHead=function(c){E.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),
+f);x.height=Math.ceil(x.height*f);t*=f;!B&&d.pageVisible?(n=d.getPageLayout(),u-=n.x*x.width,v-=n.y*x.height):B=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,u,v,B);c.pageSelector=!1;c.mathEnabled=!1;u=b.getCurrentFile();null!=u&&(c.title=u.getTitle());var C=c.writeHead;c.writeHead=function(c){C.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),
c.writeln("@media print {"),c.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),c.writeln("}"),c.writeln("</style>"));null!=b.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(b.editor.fontCss),c.writeln("</style>"));for(var f=d.getCustomFonts(),e=0;e<f.length;e++){var g=f[e].name,l=f[e].url;Graph.isCssFontUrl(l)?c.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+
-mxUtils.htmlEntities(g)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};if("undefined"!==typeof MathJax){var C=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=C.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}u=null;v=e.enableFlowAnimation;e.enableFlowAnimation=
+mxUtils.htmlEntities(g)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};if("undefined"!==typeof MathJax){var F=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=F.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}u=null;v=e.enableFlowAnimation;e.enableFlowAnimation=
!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());c.open(null,null,g,!0);e.enableFlowAnimation=v;null!=u&&(e.stylesheet=u,e.refresh())}else{x=d.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=B;c.appendGraph(d,t,u,v,g,!0);g=d.getCustomFonts();if(null!=c.wnd)for(u=0;u<g.length;u++)v=g[u].name,B=g[u].url,Graph.isCssFontUrl(B)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(B)+
'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(B)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=k,d.currentScale=m,d.view.translate=p,d.view.scale=q);return c}var f=parseInt(G.value)/100;isNaN(f)&&(f=1,G.value="100 %");var f=.75*f,g=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(g=e.stylesheet,
e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=u.value,k=v.value,p=!q.checked,n=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,D.checked,Q.value,M.value,parseInt(y.value)/100,parseInt(G.value)/100,J.get());else{p&&(p=l==m&&k==m);if(!p&&null!=b.pages&&b.pages.length){var x=0,p=b.pages.length-1;q.checked||(x=parseInt(l)-1,p=parseInt(k)-1);for(var t=x;t<=p;t++){var B=b.pages[t],l=B==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=
-!1,N=null,E=null;null==B.viewState&&null==B.root&&b.updatePageRoot(B);null!=B.viewState&&(k=B.viewState.pageVisible,x=B.viewState.mathEnabled,N=B.viewState.background,E=B.viewState.backgroundImage,l.extFonts=B.viewState.extFonts);l.background=N;l.backgroundImage=null!=E?new mxImage(E.src,E.width,E.height):null;l.pageVisible=k;l.mathEnabled=x;var C=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?B.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:C.apply(this,
+!1,N=null,C=null;null==B.viewState&&null==B.root&&b.updatePageRoot(B);null!=B.viewState&&(k=B.viewState.pageVisible,x=B.viewState.mathEnabled,N=B.viewState.background,C=B.viewState.backgroundImage,l.extFonts=B.viewState.extFonts);l.background=N;l.backgroundImage=null!=C?new mxImage(C.src,C.width,C.height):null;l.pageVisible=k;l.mathEnabled=x;var F=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?B.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:F.apply(this,
arguments)};document.body.appendChild(l.container);b.updatePageRoot(B);l.model.setRoot(B.root)}n=c(l,n,t!=p);l!=e&&l.container.parentNode.removeChild(l.container)}}else n=c(e);null==n?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(n.mathEnabled&&(p=n.wnd.document,d&&(n.wnd.IMMEDIATE_PRINT=!0),p.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),n.closeDocument(),!n.mathEnabled&&d&&PrintDialog.printPreview(n));null!=g&&(e.stylesheet=
g,e.refresh())}}var e=b.editor.graph,g=document.createElement("div"),l=document.createElement("h3");l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,d||mxResources.get("print"));g.appendChild(l);var k=1,m=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 n=q.cloneNode(!0);q.setAttribute("checked","checked");n.setAttribute("value","range");p.appendChild(n);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");p.appendChild(l);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type",
"number");u.setAttribute("min","1");u.style.width="50px";p.appendChild(u);l=document.createElement("span");mxUtils.write(l,mxResources.get("to"));p.appendChild(l);var v=u.cloneNode(!0);p.appendChild(v);mxEvent.addListener(u,"focus",function(){n.checked=!0});mxEvent.addListener(v,"focus",function(){n.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(k=b.pages.length,null!=b.currentPage))for(l=0;l<b.pages.length;l++)if(b.currentPage==b.pages[l]){m=l+
1;u.value=m;v.value=m;break}u.setAttribute("max",k);v.setAttribute("max",k);b.isPagesEnabled()?1<k&&(g.appendChild(p),n.checked=!0):n.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));x.appendChild(l);var y=document.createElement("input");
y.style.cssText="margin:0 8px 0 8px;";y.setAttribute("value","100 %");y.style.width="50px";x.appendChild(y);mxEvent.addListener(y,"focus",function(){t.checked=!0});g.appendChild(x);var p=p.cloneNode(!1),D=t.cloneNode(!0);D.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(D);p.appendChild(l);x=document.createElement("table");x.style.display="inline-block";
-var B=document.createElement("tbody"),N=document.createElement("tr"),E=N.cloneNode(!0),C=document.createElement("td"),O=C.cloneNode(!0),F=C.cloneNode(!0),H=C.cloneNode(!0),L=C.cloneNode(!0),K=C.cloneNode(!0);C.style.textAlign="right";H.style.textAlign="right";mxUtils.write(C,mxResources.get("fitTo"));var Q=document.createElement("input");Q.style.cssText="margin:0 8px 0 8px;";Q.setAttribute("value","1");Q.setAttribute("min","1");Q.setAttribute("type","number");Q.style.width="40px";O.appendChild(Q);
-l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));F.appendChild(l);mxUtils.write(H,mxResources.get("fitToBy"));var M=Q.cloneNode(!0);L.appendChild(M);mxEvent.addListener(Q,"focus",function(){D.checked=!0});mxEvent.addListener(M,"focus",function(){D.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));K.appendChild(l);N.appendChild(C);N.appendChild(O);N.appendChild(F);E.appendChild(H);E.appendChild(L);E.appendChild(K);
-B.appendChild(N);B.appendChild(E);x.appendChild(B);p.appendChild(x);g.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 J=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(l);l=document.createElement("span");mxUtils.write(l,
+var B=document.createElement("tbody"),N=document.createElement("tr"),F=N.cloneNode(!0),C=document.createElement("td"),O=C.cloneNode(!0),E=C.cloneNode(!0),H=C.cloneNode(!0),L=C.cloneNode(!0),K=C.cloneNode(!0);C.style.textAlign="right";H.style.textAlign="right";mxUtils.write(C,mxResources.get("fitTo"));var Q=document.createElement("input");Q.style.cssText="margin:0 8px 0 8px;";Q.setAttribute("value","1");Q.setAttribute("min","1");Q.setAttribute("type","number");Q.style.width="40px";O.appendChild(Q);
+l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));E.appendChild(l);mxUtils.write(H,mxResources.get("fitToBy"));var M=Q.cloneNode(!0);L.appendChild(M);mxEvent.addListener(Q,"focus",function(){D.checked=!0});mxEvent.addListener(M,"focus",function(){D.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));K.appendChild(l);N.appendChild(C);N.appendChild(O);N.appendChild(E);F.appendChild(H);F.appendChild(L);F.appendChild(K);
+B.appendChild(N);B.appendChild(F);x.appendChild(B);p.appendChild(x);g.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 J=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.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 G=document.createElement("input");G.style.cssText="margin:0 8px 0 8px;";G.setAttribute("value","100 %");G.style.width="60px";p.appendChild(G);g.appendChild(p);l=document.createElement("div");l.style.cssText="text-align:right;margin:48px 0 0 0;";p=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});p.className="geBtn";b.editor.cancelFirst&&l.appendChild(p);b.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),
x.className="geBtn",l.appendChild(x));PrintDialog.previewEnabled&&(x=mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();f(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();f(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(p);g.appendChild(l);this.container=g};var N=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==
this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}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)}}else N.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 Q=document.createElement("canvas"),X=new Image;X.onload=function(){try{Q.getContext("2d").drawImage(X,
-0,0);var b=Q.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=b&&6<b.length}catch(J){}};X.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(F){}})();
+0,0);var b=Q.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=b&&6<b.length}catch(J){}};X.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(E){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};b.afterDecode=function(b,e,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);null!=k.mathEnabled&&(k.mathEnabled=!k.mathEnabled);null!=k.shadowVisible&&(k.shadowVisible=!k.shadowVisible);return k};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.5.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=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.6.0";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&&"1"!=urlParams.extAuth&&"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(b,c,e,g,k,q,n){q=null!=q?q:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":
@@ -3408,7 +3409,7 @@ urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);f.g
function(b){d===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),m()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(l);l=window.setTimeout(k,g)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();k()}));m();k()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){f(b)}),
mxUtils.bind(this,function(b){null!=e&&e(b)})):f("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||g.warningImage,b.tooltip,b.align,b.valign,b.offset);d.addListener(mxEvent.CLICK,function(d,c){e.alert(b.tooltip)});return d}var c=null,e=this;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var g=this.editor.graph,k=g.getModel();k.beginUpdate();var n=null;try{for(b=b.firstChild;null!=b;){if("update"==
b.nodeName){var v=k.getCell(b.getAttribute("id"));if(null!=v){try{var t=b.getAttribute("value");if(null!=t){var x=mxUtils.parseXml(t).documentElement;if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(v,x);else for(var C=x.attributes,H=0;H<C.length;H++)g.setAttributeForCell(v,C[H].nodeName,0<C[H].nodeValue.length?C[H].nodeValue:null)}}catch(O){null!=window.console&&console.log("Error in value for "+v.id+": "+O)}try{var D=b.getAttribute("style");null!=D&&g.model.setStyle(v,D)}catch(O){null!=
-window.console&&console.log("Error in style for "+v.id+": "+O)}try{var E=b.getAttribute("icon");if(null!=E){var M=0<E.length?JSON.parse(E):null;null!=M&&M.append||g.removeCellOverlays(v);null!=M&&g.addCellOverlay(v,d(M))}}catch(O){null!=window.console&&console.log("Error in icon for "+v.id+": "+O)}try{var G=b.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),K=g.getCellGeometry(v);if(null!=K){K=K.clone();for(key in G){var B=parseFloat(G[key]);"dx"==key?K.x+=B:"dy"==key?K.y+=B:"dw"==key?K.width+=
+window.console&&console.log("Error in style for "+v.id+": "+O)}try{var F=b.getAttribute("icon");if(null!=F){var M=0<F.length?JSON.parse(F):null;null!=M&&M.append||g.removeCellOverlays(v);null!=M&&g.addCellOverlay(v,d(M))}}catch(O){null!=window.console&&console.log("Error in icon for "+v.id+": "+O)}try{var G=b.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),K=g.getCellGeometry(v);if(null!=K){K=K.clone();for(key in G){var B=parseFloat(G[key]);"dx"==key?K.x+=B:"dy"==key?K.y+=B:"dw"==key?K.width+=
B:"dh"==key?K.height+=B:K[key]=parseFloat(G[key])}g.model.setGeometry(v,K)}}}catch(O){null!=window.console&&console.log("Error in icon for "+v.id+": "+O)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=L&&(new mxCodec(b.firstChild)).decode(L,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(g.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))g.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||
0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(n=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{k.endUpdate()}null!=n&&this.chromelessResize&&this.chromelessResize(!0,n)}return c};EditorUi.prototype.getCopyFilename=function(b,c){var d=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,f="",e=d.lastIndexOf(".");0<=e&&(f=d.substring(e),d=d.substring(0,e));if(c)var g=new Date,e=g.getFullYear(),k=g.getMonth()+1,n=g.getDate(),
t=g.getHours(),x=g.getMinutes(),g=g.getSeconds(),d=d+(" "+(e+"-"+k+"-"+n+"-"+t+"-"+x+"-"+g));return d=mxResources.get("copyOf",[d])+f};EditorUi.prototype.fileLoaded=function(b,c){var d=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var f=!1;this.hideDialog();null!=d&&(EditorUi.debug("File.closed",[d]),d.removeListener(this.descriptorChangedListener),d.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var e=mxUtils.bind(this,function(){this.setGraphEnabled(!1);
@@ -3427,16 +3428,16 @@ this.libraryLoaded(b,f,d.documentElement.getAttribute("title"),c)}else throw{mes
null,l=mxUtils.bind(this,function(d,c){0==d.length&&b.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),c.appendChild(f)):this.addLibraryEntries(d,c)});null!=this.sidebar&&null!=c&&this.sidebar.addEntries(c);e=null!=e&&0<e.length?e:b.getTitle();var k=this.sidebar.addPalette(b.getHash(),e,null!=g?g:!0,mxUtils.bind(this,function(b){l(c,b)}));this.repositionLibrary(d);var m=k.parentNode.previousSibling;g=m.getAttribute("title");
null!=g&&0<g.length&&".scratchpad"!=b.title&&m.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+g);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";m.style.position="relative";var t=document.createElement("img");t.setAttribute("src",Editor.crossImage);t.setAttribute("title",mxResources.get("close"));t.setAttribute("valign","absmiddle");t.setAttribute("border","0");t.style.position="relative";
t.style.top="2px";t.style.width="14px";t.style.cursor="pointer";t.style.margin="0 3px";Editor.isDarkMode()&&(t.style.filter="invert(100%)");var H=null;if(".scratchpad"!=b.title||this.closableScratchpad)n.appendChild(t),mxEvent.addListener(t,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=H?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));
-if(b.isEditable()){var D=this.editor.graph,E=null,M=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),k,c,b,b.getMode());mxEvent.consume(d)}),G=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=E&&null!=E.parentNode&&E.parentNode.removeChild(E),E=t.cloneNode(!1),E.setAttribute("src",Editor.spinImage),E.setAttribute("title",mxResources.get("saving")),E.style.cursor="default",E.style.marginRight="2px",E.style.marginTop="-2px",n.insertBefore(E,n.firstChild),m.style.paddingRight=
-18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=E&&null!=E.parentNode&&(E.parentNode.removeChild(E),m.style.paddingRight=18*n.childNodes.length+"px")})):null==H&&(H=t.cloneNode(!1),H.setAttribute("src",Editor.saveImage),H.setAttribute("title",mxResources.get("save")),n.insertBefore(H,n.firstChild),mxEvent.addListener(H,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==
+if(b.isEditable()){var D=this.editor.graph,F=null,M=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),k,c,b,b.getMode());mxEvent.consume(d)}),G=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=F&&null!=F.parentNode&&F.parentNode.removeChild(F),F=t.cloneNode(!1),F.setAttribute("src",Editor.spinImage),F.setAttribute("title",mxResources.get("saving")),F.style.cursor="default",F.style.marginRight="2px",F.style.marginTop="-2px",n.insertBefore(F,n.firstChild),m.style.paddingRight=
+18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=F&&null!=F.parentNode&&(F.parentNode.removeChild(F),m.style.paddingRight=18*n.childNodes.length+"px")})):null==H&&(H=t.cloneNode(!1),H.setAttribute("src",Editor.saveImage),H.setAttribute("title",mxResources.get("save")),n.insertBefore(H,n.firstChild),mxEvent.addListener(H,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==
H||b.isModified()||(m.style.paddingRight=18*n.childNodes.length+"px",H.parentNode.removeChild(H),H=null)});mxEvent.consume(d)})),m.style.paddingRight=18*n.childNodes.length+"px")}),K=mxUtils.bind(this,function(b,d,e,g){b=D.cloneCells(mxUtils.sortCells(D.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=D.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,g||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
w:d.width,h:d.height};null!=g&&(b.title=g);c.push(b);G(e);null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)}),B=mxUtils.bind(this,function(b){if(D.isSelectionEmpty())D.getRubberband().isActive()?(D.getRubberband().execute(b),D.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=D.getSelectionCells(),c=D.view.getBounds(d),f=D.view.scale;c.x/=f;c.y/=f;c.width/=f;c.height/=f;c.x-=D.view.translate.x;
c.y-=D.view.translate.y;K(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){D.isMouseDown&&null!=D.panningManager&&null!=D.graphHandler.first&&(D.graphHandler.suspend(),null!=D.graphHandler.hint&&(D.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",D.panningManager.stop(),D.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){D.isMouseDown&&null!=D.panningManager&&null!=D.graphHandler&&
(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,D.panningManager.stop(),D.graphHandler.reset(),D.isMouseDown=!1,D.autoScroll=!0,B(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){D.isMouseDown&&null!=D.graphHandler.first&&(D.graphHandler.resume(),null!=D.graphHandler.hint&&(D.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",D.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,
-"dragover",mxUtils.bind(this,function(b){k.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(b){k.style.cursor="";k.style.backgroundColor="";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,g,m,p,q,n,u,v){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+
-this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,p,q),d)],d[0].vertex=!0,K(d,new mxRectangle(0,0,p,q),b,mxEvent.isAltDown(b)?null:n.substring(0,n.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null);else{var x=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var g=Editor.extractGraphModelFromPdf(d);null!=g&&0<g.length&&(d=g)}if(null!=d)if(g=mxUtils.parseXml(d),"mxlibrary"==g.documentElement.nodeName)try{var m=
-JSON.parse(mxUtils.getTextContent(g.documentElement));l(m,k);c=c.concat(m);G(b);this.spinner.stop();x=!0}catch(Y){}else if("mxfile"==g.documentElement.nodeName)try{for(var p=g.documentElement.getElementsByTagName("diagram"),m=0;m<p.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(p[m])),n=this.editor.graph.getBoundingBoxFromGeometry(q);K(q,new mxRectangle(0,0,n.width,n.height),b)}x=!0}catch(Y){null!=window.console&&console.log("error in drop handler:",Y)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
-null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?this.importVisio(v,function(b){t(b,"text/xml")},null,n):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,n)&&null!=v?this.parseFile(v,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?t(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?
+"dragover",mxUtils.bind(this,function(b){k.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(b){k.style.cursor="";k.style.backgroundColor="";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,g,m,p,q,n,u,x){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+
+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,p,q),d)],d[0].vertex=!0,K(d,new mxRectangle(0,0,p,q),b,mxEvent.isAltDown(b)?null:n.substring(0,n.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null);else{var v=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var g=Editor.extractGraphModelFromPdf(d);null!=g&&0<g.length&&(d=g)}if(null!=d)if(g=mxUtils.parseXml(d),"mxlibrary"==g.documentElement.nodeName)try{var m=
+JSON.parse(mxUtils.getTextContent(g.documentElement));l(m,k);c=c.concat(m);G(b);this.spinner.stop();v=!0}catch(Y){}else if("mxfile"==g.documentElement.nodeName)try{for(var p=g.documentElement.getElementsByTagName("diagram"),m=0;m<p.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(p[m])),n=this.editor.graph.getBoundingBoxFromGeometry(q);K(q,new mxRectangle(0,0,n.width,n.height),b)}v=!0}catch(Y){null!=window.console&&console.log("error in drop handler:",Y)}v||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)});null!=x&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?this.importVisio(x,function(b){t(b,"text/xml")},null,n):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,n)&&null!=x?this.parseFile(x,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?t(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?
"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):t(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"dragleave",function(b){k.style.cursor="";k.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));t=t.cloneNode(!1);t.setAttribute("src",Editor.editImage);t.setAttribute("title",mxResources.get("edit"));n.insertBefore(t,n.firstChild);mxEvent.addListener(t,"click",M);mxEvent.addListener(k,"dblclick",function(b){mxEvent.getSource(b)==
k&&M(b)});g=t.cloneNode(!1);g.setAttribute("src",Editor.plusImage);g.setAttribute("title",mxResources.get("add"));n.insertBefore(g,n.firstChild);mxEvent.addListener(g,"click",B);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(g=document.createElement("span"),g.setAttribute("title",mxResources.get("help")),g.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);
mxEvent.consume(b)})),n.insertBefore(g,n.firstChild))}m.appendChild(n);m.style.paddingRight=18*n.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,c){for(var d=0;d<b.length;d++){var f=b[d],e=f.data;if(null!=e){var e=this.convertDataUri(e),g="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==f.aspect&&(g+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(g+"image="+e,f.w,f.h,"",f.title||"",!1,!1,!0))}else null!=f.xml&&(e=this.stringToCells(Graph.decompress(f.xml)),
@@ -3448,7 +3449,7 @@ c,e,g,k){b=new ImageDialog(this,b,c,e,g,k);this.showDialog(b.container,Graph.fil
b,c,e,g,k);this.showDialog(b.container,640,440,!0,!1,mxUtils.bind(this,function(b){b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));b.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(b){var d=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(b){this.editor.graph.isSelectionEmpty()&&d.refresh()}));return d};EditorUi.prototype.createSidebarFooterContainer=function(){var b=this.createDiv("geSidebarContainer geSidebarFooter");
b.style.position="absolute";b.style.overflow="hidden";var c=document.createElement("a");c.className="geTitle";c.style.color="#DF6C0C";c.style.fontWeight="bold";c.style.height="100%";c.style.paddingTop="9px";c.innerHTML="<span>+</span>";var e=c.getElementsByTagName("span")[0];e.style.fontSize="18px";e.style.marginRight="5px";mxUtils.write(c,mxResources.get("moreShapes")+"...");mxEvent.addListener(c,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(c,
"click",mxUtils.bind(this,function(b){this.actions.get("shapes").funct();mxEvent.consume(b)}));b.appendChild(c);return b};EditorUi.prototype.handleError=function(b,c,e,g,k,q,n){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=b&&null!=b.error?b.error:b;if(null!=b&&null!=b.stack&&null!=b.message)try{n?null!=window.console&&console.error("EditorUi.handleError:",b):EditorUi.logError("Caught: "+(""==b.message&&null!=b.name)?b.name:b.message,b.filename,b.lineNumber,
-b.columnNumber,b,"INFO")}catch(E){}if(null!=f||null!=c){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok"),m=null;c=null!=c?c:mxResources.get("error");if(null!=f){null!=f.retry&&(l=mxResources.get("cancel"),m=function(){d();f.retry()});if(404==f.code||404==f.status||403==f.code){n=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=k?k:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=
+b.columnNumber,b,"INFO")}catch(F){}if(null!=f||null!=c){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok"),m=null;c=null!=c?c:mxResources.get("error");if(null!=f){null!=f.retry&&(l=mxResources.get("cancel"),m=function(){d();f.retry()});if(404==f.code||404==f.status||403==f.code){n=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 p=null!=k?null:null!=q?q:window.location.hash;if(null!=p&&("#G"==p.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==p.substring(0,45))&&(null!=b&&null!=b.error&&(null!=b.error.errors&&0<b.error.errors.length&&"fileAccess"==b.error.errors[0].reason||null!=b.error.data&&0<b.error.data.length&&"fileAccess"==b.error.data[0].reason)||404==f.code||404==f.status)){p="#U"==p.substring(0,
2)?p.substring(45,p.lastIndexOf("%26ex")):p.substring(2);this.showError(c,n,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+p);this.handleError(b,c,e,g,k)}),m,mxResources.get("changeUser"),mxUtils.bind(this,function(){function b(){e.innerHTML="";for(var b=0;b<d.length;b++){var c=document.createElement("option");mxUtils.write(c,d[b].displayName);c.value=b;e.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";
mxUtils.write(c,"<"+d[b].email+">");c.setAttribute("disabled","disabled");e.appendChild(c)}c=document.createElement("option");mxUtils.write(c,mxResources.get("addAccount"));c.value=d.length;e.appendChild(c)}var d=this.drive.getUsersList(),c=document.createElement("div"),f=document.createElement("span");f.style.marginTop="6px";mxUtils.write(f,mxResources.get("changeUser")+": ");c.appendChild(f);var e=document.createElement("select");e.style.width="200px";b();mxEvent.addListener(e,"change",mxUtils.bind(this,
@@ -3468,7 +3469,7 @@ d.textarea.style.height="380px";this.showDialog(d.container,620,460,!0,!0,null,n
q=65==(f?parseInt(f[2],10):!1)?!1:q}if(q||this.isOffline()){d.href=URL.createObjectURL(g?this.base64ToBlob(b,e):new Blob([b],{type:e}));q?d.download=c:d.setAttribute("target","_blank");document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},2E4),d.click(),d.parentNode.removeChild(d)}catch(y){}}else this.createEchoRequest(b,c,e,g,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,e,g,k,q){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,
b+(null!=e?"&mime="+e:"")+(null!=k?"&format="+k:"")+(null!=q?"&base64="+q:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(g?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=c||"";for(var d=atob(b),e=d.length,f=Math.ceil(e/1024),g=Array(f),k=0;k<f;++k){for(var n=1024*k,t=Math.min(n+1024,e),x=Array(t-n),C=0;n<t;++C,++n)x[C]=d[n].charCodeAt(0);g[k]=new Uint8Array(x)}return new Blob(g,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,g,k,q,n,v){q=null!=q?q:!1;n=null!=n?
n:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(q);isLocalStorage&&k++;var d=4>=k?2:6<k?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(d,c){try{if("_blank"==c)if(null!=e&&"image/"==e.substring(0,6))this.openInNewWindow(b,e,g);else if(null!=e&&"text/html"==e.substring(0,9)){var f=new EmbedDialog(this,b);this.showDialog(f.container,450,240,!0,!0);f.init()}else{var l=window.open("about:blank");null==l?mxUtils.popup(b,!0):(l.document.write("<pre>"+mxUtils.htmlEntities(b,
-!1)+"</pre>"),l.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,g,null,v):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(b,d,e,g,c,f)}catch(M){this.handleError(M)}}))}catch(E){this.handleError(E)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,q,n,null,1<k,d,b,e,g);q=this.isServices(k)?k>d?390:270:160;this.showDialog(c.container,420,q,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=
+!1)+"</pre>"),l.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,g,null,v):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(b,d,e,g,c,f)}catch(M){this.handleError(M)}}))}catch(F){this.handleError(F)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,q,n,null,1<k,d,b,e,g);q=this.isServices(k)?k>d?390:270:160;this.showDialog(c.container,420,q,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=
function(b,c,e){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(b,!0):("image/svg+xml"!=c||mxClient.IS_SVG?"image/svg+xml"==c?d.document.write("<html>"+b+"</html>"):(b=e?b:btoa(unescape(encodeURIComponent(b))),d.document.write('<html><img style="max-width:100%;" src="data:'+c+";base64,"+b+'"/></html>')):d.document.write("<html><pre>"+mxUtils.htmlEntities(b,!1)+"</pre></html>"),d.document.close())};var k=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.isChromelessImageExportEnabled=
function(){return"draw.io"!=this.getServiceName()||/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)};EditorUi.prototype.addChromelessToolbarItems=function(b){if(null!=urlParams.tags){this.tagsDialog=this.tagsComponent=null;var d=b(mxUtils.bind(this,function(b){null==this.tagsComponent&&(this.tagsComponent=this.editor.graph.createTagsDialog(mxUtils.bind(this,function(){return null!=this.tagsDialog}),!0),this.tagsComponent.div.getElementsByTagName("div")[0].style.position=
"",mxUtils.setPrefixedStyle(this.tagsComponent.div.style,"borderRadius","5px"),this.tagsComponent.div.className="geScrollable",this.tagsComponent.div.style.maxHeight="160px",this.tagsComponent.div.style.maxWidth="120px",this.tagsComponent.div.style.padding="4px",this.tagsComponent.div.style.overflow="auto",this.tagsComponent.div.style.height="auto",this.tagsComponent.div.style.position="fixed",this.tagsComponent.div.style.fontFamily=Editor.defaultHtmlFont,mxClient.IS_IE||mxClient.IS_IE11?(this.tagsComponent.div.style.backgroundColor=
@@ -3482,10 +3483,10 @@ else{this.exportDialog=document.createElement("div");var e=c.getBoundingClientRe
function(b){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(b,null,"png");b=document.createElement("img");b.style.maxWidth="140px";b.style.maxHeight="140px";b.style.cursor="pointer";b.style.backgroundColor="white";b.setAttribute("title",mxResources.get("openInNewWindow"));b.setAttribute("border","0");b.setAttribute("src",c);this.exportDialog.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,
function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);d.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",d);document.body.appendChild(this.exportDialog)}mxEvent.consume(b)}),Editor.cameraImage,mxResources.get("export"))}};EditorUi.prototype.saveData=function(b,c,e,g,k){this.isLocalFileSave()?
this.saveLocalFile(e,b,g,k,c):this.saveRequest(b,c,mxUtils.bind(this,function(b,d){return this.createEchoRequest(e,b,g,k,c,d)}),e,k,g)};EditorUi.prototype.saveRequest=function(b,c,e,g,k,q,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);isLocalStorage&&d++;var f=4>=d?2:6<d?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,d){if("_blank"==d||null!=b&&0<b.length){var f=e("_blank"==d?null:b,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");
-null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){q=null!=q?q:"pdf"==c?"application/pdf":"image/"+c;if(null!=g)try{this.exportFile(g,b,q,!0,d,e)}catch(E){this.handleError(E)}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(),b,q,!0,d,e)}catch(E){this.handleError(E)}else this.handleError({message:mxResources.get("errorSavingFile")})}),
+null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){q=null!=q?q:"pdf"==c?"application/pdf":"image/"+c;if(null!=g)try{this.exportFile(g,b,q,!0,d,e)}catch(F){this.handleError(F)}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(),b,q,!0,d,e)}catch(F){this.handleError(F)}else this.handleError({message:mxResources.get("errorSavingFile")})}),
function(b){this.spinner.stop();this.handleError(b)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<d,f,g,q,k);d=this.isServices(d)?4<d?390:270:160;this.showDialog(b.container,420,d,!0,!0);b.init()};EditorUi.prototype.isServices=function(b){return 1!=b};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(b,c,e,g,k,q){};EditorUi.prototype.pickFolder=function(b,
-c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,q,n,t,y,x,C,H,D,E){if(this.spinner.spin(document.body,mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=C?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,n,t,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,C,H);g&&this.editor.graph.addSvgShadow(l);var m=
-this.getBaseFilename()+(k?".drawio":"")+".svg";E=null!=E?E:mxUtils.bind(this,function(b){this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});var p=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,y,null,null,null,!1));E(Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+
+c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,q,n,t,y,x,C,H,D,F){if(this.spinner.spin(document.body,mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=C?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,n,t,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,C,H);g&&this.editor.graph.addSvgShadow(l);var m=
+this.getBaseFilename()+(k?".drawio":"")+".svg";F=null!=F?F:mxUtils.bind(this,function(b){this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});var p=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,y,null,null,null,!1));F(Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+
"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(l);var u=mxUtils.bind(this,function(b){q?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,p,this.thumbImageCache)):p(b)});D?this.embedFonts(l,u):(this.editor.addFontCss(l),u(l))}catch(da){this.handleError(da)}};EditorUi.prototype.addRadiobox=function(b,c,e,g,k,q,n){return this.addCheckbox(b,e,g,k,q,n,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,g,k,q,
n,t){q=null!=q?q:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type",n?"radio":"checkbox");n="geCheckbox-"+Editor.guid();d.id=n;null!=t&&d.setAttribute("name",t);e&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);g&&d.setAttribute("disabled","disabled");q&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",n),b.appendChild(e),k||mxUtils.br(b));return d};EditorUi.prototype.addEditButton=
function(b,c){var d=this.addCheckbox(b,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var e=this.getCurrentFile(),f="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var g=document.createElement("select");g.style.width="120px";g.style.marginLeft="8px";g.style.marginRight="10px";g.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));g.appendChild(e);e=document.createElement("option");
@@ -3502,15 +3503,15 @@ c,e,g,k,q,y);b=this.getCurrentFile();c=!0;null!=n?e="#U"+encodeURIComponent(n):(
"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";d.appendChild(f);var l=document.createElement("div");l.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");l.appendChild(f);var m=document.createElement("span");mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));l.appendChild(m);mxUtils.br(l);l.appendChild(k);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));l.appendChild(m);var n=this.getCurrentFile();null==e&&null!=n&&n.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")),l.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(n.getId())})));f.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),H=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var D=document.createElement("input");D.setAttribute("type","text");D.style.marginRight="16px";D.style.width="60px";D.style.marginLeft=
-"4px";D.style.marginRight="12px";D.value="100%";d.appendChild(D);var E=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,M=M=this.addCheckbox(d,mxResources.get("allPages"),l,!l),G=this.addCheckbox(d,mxResources.get("layers"),!0),K=this.addCheckbox(d,mxResources.get("tags"),!0),B=this.addCheckbox(d,mxResources.get("lightbox"),!0),L=this.addEditButton(d,B),O=L.getEditInput();O.style.marginBottom="16px";mxEvent.addListener(B,"change",function(){B.checked?O.removeAttribute("disabled"):
-O.setAttribute("disabled","disabled");O.checked&&B.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,H.checked,D.value,t.getTarget(),t.getColor(),E.checked,M.checked,G.checked,K.checked,B.checked,L.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,g,k,q){var d=document.createElement("div");
+"4px";D.style.marginRight="12px";D.value="100%";d.appendChild(D);var F=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,M=M=this.addCheckbox(d,mxResources.get("allPages"),l,!l),G=this.addCheckbox(d,mxResources.get("layers"),!0),K=this.addCheckbox(d,mxResources.get("tags"),!0),B=this.addCheckbox(d,mxResources.get("lightbox"),!0),L=this.addEditButton(d,B),O=L.getEditInput();O.style.marginBottom="16px";mxEvent.addListener(B,"change",function(){B.checked?O.removeAttribute("disabled"):
+O.setAttribute("disabled","disabled");O.checked&&B.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,H.checked,D.value,t.getTarget(),t.getColor(),F.checked,M.checked,G.checked,K.checked,B.checked,L.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,g,k,q){var d=document.createElement("div");
d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,b||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var l=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";b=0;if(null!=l&&l.constructor==window.DriveFile&&!c){b=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(l.getId())}));p.style.marginTop="12px";p.className="geBtn";m.appendChild(p);d.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(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var n=null,t=null;if(null!=e||null!=g)b+=30,mxUtils.write(d,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%",d.appendChild(n),mxUtils.write(d,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=g+"px",d.appendChild(t),mxUtils.br(d);var E=this.addLinkSection(d,q);e=null!=this.pages&&1<this.pages.length;var M=null;
+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%",d.appendChild(n),mxUtils.write(d,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=g+"px",d.appendChild(t),mxUtils.br(d);var F=this.addLinkSection(d,q);e=null!=this.pages&&1<this.pages.length;var M=null;
if(null==l||l.constructor!=window.DriveFile||c)M=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var G=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!q),K=this.addEditButton(d,G),B=K.getEditInput();q&&(B.style.marginLeft=G.style.marginLeft,G.style.display="none",b-=20);var L=this.addCheckbox(d,mxResources.get("layers"),!0);L.style.marginLeft=B.style.marginLeft;L.style.marginTop="8px";var O=this.addCheckbox(d,mxResources.get("tags"),!0);O.style.marginLeft=B.style.marginLeft;O.style.marginBottom=
-"16px";O.style.marginTop="16px";mxEvent.addListener(G,"change",function(){G.checked?(L.removeAttribute("disabled"),B.removeAttribute("disabled")):(L.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"));B.checked&&G.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){k(E.getTarget(),E.getColor(),null==M?!0:M.checked,G.checked,K.getLink(),L.checked,null!=n?n.value:null,
-null!=t?t.value:null,O.checked)}),null,mxResources.get("create"),f);this.showDialog(c.container,340,300+b,!0,!0);null!=n?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)):E.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,g,k){var d=document.createElement("div");d.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:"+
+"16px";O.style.marginTop="16px";mxEvent.addListener(G,"change",function(){G.checked?(L.removeAttribute("disabled"),B.removeAttribute("disabled")):(L.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"));B.checked&&G.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){k(F.getTarget(),F.getColor(),null==M?!0:M.checked,G.checked,K.getLink(),L.checked,null!=n?n.value:null,
+null!=t?t.value:null,O.checked)}),null,mxResources.get("create"),f);this.showDialog(c.container,340,300+b,!0,!0);null!=n?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)):F.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,g,k){var d=document.createElement("div");d.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";d.appendChild(f);if(k){mxUtils.write(d,mxResources.get("zoom")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";l.style.marginLeft="4px";l.style.marginRight="12px";l.value=this.lastExportZoom||"100%";d.appendChild(l);mxUtils.write(d,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";d.appendChild(m);mxUtils.br(d)}var p=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),n=g?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),f=this.editor.graph,t=g?null:this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=t&&(t.style.marginBottom="16px");b=new CustomDialog(this,d,mxUtils.bind(this,function(){var b=parseInt(l.value)/
100||1,d=parseInt(m.value)||0;e(!p.checked,null!=n?n.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(k?25:0)+(g?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,g,k,q,n,t,y){n=null!=n?n:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,l="jpeg"==t?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
@@ -3519,11 +3520,11 @@ d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var p=document.cre
document.createElement("option");mxUtils.write(L,mxResources.get(b[m]));L.setAttribute("value",b[m]);B.appendChild(L)}y?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(B),mxUtils.br(d),l+=26,mxEvent.addListener(B,"change",function(){"selectionOnly"==B.value&&(u.checked=!0)})):q&&(d.appendChild(K),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(u,"change",function(){u.checked?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?
y&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",l-=30):(B.value="diagram",K.setAttribute("checked","checked"),K.defaultChecked=!0,mxEvent.addListener(u,"change",function(){B.value=u.checked?"selectionOnly":"diagram"}));var O=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),da=null;Editor.isDarkMode()&&(da=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var N=this.addCheckbox(d,mxResources.get("shadow"),
f.shadowVisible),Q=document.createElement("input");Q.style.marginTop="16px";Q.style.marginRight="8px";Q.setAttribute("type","checkbox");var X=document.createElement("input");X.style.marginTop="16px";X.style.marginRight="8px";X.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||Q.setAttribute("disabled","disabled");c&&(d.appendChild(Q),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),d.appendChild(X),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=
-60);var F=null;if("png"==t||"jpeg"==t)F=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var J=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=t);J.style.marginBottom="16px";var A=document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.className="geBtn";c=document.createElement("option");c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));
+60);var E=null;if("png"==t||"jpeg"==t)E=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var J=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=t);J.style.marginBottom="16px";var A=document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.className="geBtn";c=document.createElement("option");c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));
A.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));A.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));A.appendChild(c);"svg"==t&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(A),mxUtils.br(d),mxUtils.br(d),l+=50);e=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=
-p.value;k(p.value,O.checked,!u.checked,N.checked,J.checked,Q.checked,v.value,K.checked,!1,A.value,null!=F?F.checked:null,null!=da?da.checked:null,B.value,X.checked)}),null,e,g);this.showDialog(e.container,340,l,!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(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;
-if(null!=c){var l=document.createElement("h3");mxUtils.write(l,c);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(l)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),p=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&g,!g),n=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),D=this.addEditButton(d,t),E=D.getEditInput(),M=1<f.model.getChildCount(f.model.getRoot()),G=this.addCheckbox(d,mxResources.get("layers"),M,
-!M);G.style.marginLeft=E.style.marginLeft;G.style.marginBottom="12px";G.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(M&&G.removeAttribute("disabled"),E.removeAttribute("disabled")):(G.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"));E.checked&&t.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,p.checked,n.checked,t.checked,
+p.value;k(p.value,O.checked,!u.checked,N.checked,J.checked,Q.checked,v.value,K.checked,!1,A.value,null!=E?E.checked:null,null!=da?da.checked:null,B.value,X.checked)}),null,e,g);this.showDialog(e.container,340,l,!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(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;
+if(null!=c){var l=document.createElement("h3");mxUtils.write(l,c);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(l)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),p=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&g,!g),n=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),D=this.addEditButton(d,t),F=D.getEditInput(),M=1<f.model.getChildCount(f.model.getRoot()),G=this.addCheckbox(d,mxResources.get("layers"),M,
+!M);G.style.marginLeft=F.style.marginLeft;G.style.marginBottom="12px";G.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(M&&G.removeAttribute("disabled"),F.removeAttribute("disabled")):(G.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&t.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,p.checked,n.checked,t.checked,
D.getLink(),G.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,g,k,q,n,t){function d(d){var c=" ",m="";g&&(c=" 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:"")+(k?"&edit=_blank":"")+(q?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");b&&(m+="max-width:100%;");var p="";e&&(p=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+d+'"'+p+(""!=m?' style="'+m+'"':"")+c+"/>")}var f=this.editor.graph.getGraphBounds(),l=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(b){var c=g?this.getFileData(!0):null;b=
this.createImageDataUri(b,c,"png");d(b)}),null,null,null,mxUtils.bind(this,function(b){t({message:mxResources.get("unknownError")})}),null,!0,e?2:1,null,c,null,null,Editor.defaultBorder);else if(c=this.getFileData(!0),f.width*f.height<=MAX_AREA&&c.length<=MAX_REQUEST_SIZE){var m="";e&&(m="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var p=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(g?"1":"0")+m+"&xml="+encodeURIComponent(c));p.send(mxUtils.bind(this,function(){200<=p.getStatus()&&
@@ -3547,8 +3548,8 @@ c[d].root)};EditorUi.prototype.updatePageLinksForCell=function(b,c){var d=docume
e.model.getChildAt(c,n))};EditorUi.prototype.updatePageLink=function(b,c){if(Graph.isPageLink(c)){var d=b[c.substring(c.indexOf(",")+1)];c=null!=d?"data:page/id,"+d:null}else if("data:action/json,"==c.substring(0,17))try{var e=JSON.parse(c.substring(17));if(null!=e.actions){for(var f=0;f<e.actions.length;f++){var g=e.actions[f];if(null!=g.open&&Graph.isPageLink(g.open)){var k=g.open.substring(g.open.indexOf(",")+1),d=b[k];null!=d?g.open="data:page/id,"+d:null==this.getPageById(k)&&delete g.open}}c=
"data:action/json,"+JSON.stringify(e)}}catch(v){}return c};EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,c,e,g,k){g=null!=g?g:b.name;e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var d=this.isRemoteVisioFormat(g);try{var f="UNKNOWN-VISIO",l=g.lastIndexOf(".");if(0<=l&&l<g.length)f=g.substring(l+
1).toUpperCase();else{var m=g.lastIndexOf("/");0<=m&&m<g.length&&(g=g.substring(m+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+g,label:d?"remote":"local"})}catch(H){}if(d)if(null==VSD_CONVERT_URL||this.isOffline())e({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{d=new FormData;d.append("file1",b,g);var p=new XMLHttpRequest;p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(g)?"?stencil=1":""));
-p.responseType="blob";this.addRemoteServiceSecurityCheck(p);null!=k&&p.setRequestHeader("x-convert-custom",k);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var b=p.response;if("text/xml"==b.type){var d=new FileReader;d.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(M){e({message:mxResources.get("errorLoadingFile")})}});d.readAsText(b)}else this.doImportVisio(b,c,e,g)}catch(E){e(E)}else try{""==p.responseType||"text"==p.responseType?
-e({message:p.responseText}):(d=new FileReader,d.onload=function(){e({message:JSON.parse(d.result).Message})},d.readAsText(p.response))}catch(E){e({})}});p.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(H){e(H)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.importGraphML=function(b,c,e){e=null!=
+p.responseType="blob";this.addRemoteServiceSecurityCheck(p);null!=k&&p.setRequestHeader("x-convert-custom",k);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var b=p.response;if("text/xml"==b.type){var d=new FileReader;d.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(M){e({message:mxResources.get("errorLoadingFile")})}});d.readAsText(b)}else this.doImportVisio(b,c,e,g)}catch(F){e(F)}else try{""==p.responseType||"text"==p.responseType?
+e({message:p.responseText}):(d=new FileReader,d.onload=function(){e({message:JSON.parse(d.result).Message})},d.readAsText(p.response))}catch(F){e({})}});p.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(H){e(H)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.importGraphML=function(b,c,e){e=null!=
e?e:mxUtils.bind(this,function(b){this.handleError(b)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(b,c,e)}catch(p){e(p)}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(b){var d=mxUtils.bind(this,function(){this.loadingExtensions=
!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(b)||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)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.convertLucidChart=function(b,c,e){var d=mxUtils.bind(this,
function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+b.length}),EditorUi.debug("convertLucidChart",b)}catch(p){}try{c(LucidImporter.importState(JSON.parse(b)))}catch(p){null!=window.console&&console.error(p),e(p)}}else e({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(d,0):(this.loadingExtensions=
@@ -3598,15 +3599,15 @@ break}}}));var n=c.getBackgroundImageObject;c.getBackgroundImageObject=function(
d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null!=d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=f&&f(b,d)};y.call(this,b,d,e)};g.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?
x.apply(this,arguments):b.menus.addMenuItems(d,"delete - cut copy copyAsImage - duplicate".split(" "),null,e)}}b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var C=c.getExportVariables;c.getExportVariables=function(){var d=C.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=
b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,b.currentPage)+1:1;return d};var H=c.getGlobalVariable;c.getGlobalVariable=function(d){var c=b.getCurrentFile();return"filename"==d&&null!=c?c.getTitle():"page"==d&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==d?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==d?null!=b.pages?b.pages.length:1:H.apply(this,arguments)};var D=c.labelLinkClicked;
-c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))D.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),c.getRubberband().reset();mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var E=this.actions.get("print");E.setEnabled(!mxClient.IS_IOS||
-!navigator.standalone);E.visible=E.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(),
+c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))D.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),c.getRubberband().reset();mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var F=this.actions.get("print");F.setEnabled(!mxClient.IS_IOS||
+!navigator.standalone);F.visible=F.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&&c.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(b){var d=c.cellEditor.text2,e=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=e&&(e.parentNode.removeChild(e),e=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(d));b.stopPropagation();
b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,f,g,l){c.insertImage(b,g,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");
/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var e=Math.max(1,b.width);b=Math.max(1,b.height);var f=this.maxImageSize,f=Math.min(1,Math.min(f/Math.max(1,e)),f/Math.max(1,b));c.insertImage(decodeURIComponent(d),e*f,b*f)})):document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(b.dataTransfer.types,
-"text/plain")&&document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"));b.stopPropagation();b.preventDefault()})))}));this.isSettingsEnabled()&&(E=this.editor.graph.view,E.setUnit(mxSettings.getUnit()),E.addListener("unitChanged",function(b,d){mxSettings.setUnit(d.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,
-E.unit),this.refresh());if("1"==urlParams.styledev){E=document.getElementById("geFooter");null!=E&&(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)})),E.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,d){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 M=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==
-this.styleInput?!0:M.apply(this,arguments)}}E=document.getElementById("geInfo");null!=E&&E.parentNode.removeChild(E);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var G=null;mxEvent.addListener(c.container,"dragleave",function(b){c.isEnabled()&&(null!=G&&(G.parentNode.removeChild(G),G=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==G&&(!mxClient.IS_IE||10<document.documentMode)&&(G=this.highlightElement(c.container));
+"text/plain")&&document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"));b.stopPropagation();b.preventDefault()})))}));this.isSettingsEnabled()&&(F=this.editor.graph.view,F.setUnit(mxSettings.getUnit()),F.addListener("unitChanged",function(b,d){mxSettings.setUnit(d.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,
+F.unit),this.refresh());if("1"==urlParams.styledev){F=document.getElementById("geFooter");null!=F&&(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)})),F.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,d){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 M=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==
+this.styleInput?!0:M.apply(this,arguments)}}F=document.getElementById("geInfo");null!=F&&F.parentNode.removeChild(F);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var G=null;mxEvent.addListener(c.container,"dragleave",function(b){c.isEnabled()&&(null!=G&&(G.parentNode.removeChild(G),G=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==G&&(!mxClient.IS_IE||10<document.documentMode)&&(G=this.highlightElement(c.container));
null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(b){null!=G&&(G.parentNode.removeChild(G),G=null);if(c.isEnabled()){var d=mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=c.view.translate,f=c.view.scale,g=d.x/f-e.x,l=d.y/f-e.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=g=null),this.importFiles(b.dataTransfer.files,
g,l,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=g=0);var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,g,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=
c.sanitizeHtml(m);var p=null,e=d.getElementsByTagName("img");null!=e&&1==e.length?(m=e[0].getAttribute("src"),null==m&&(m=e[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(p=!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var n=!0,q=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,g,l,!0,p,null,n,mxEvent.isControlDown(b)))});p&&null!=
@@ -3671,103 +3672,103 @@ B=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.
function(d,c,e,g){d=d||this.emptyDiagramXml;null!=k.callback?n.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:g,builtIn:!0,message:k}),"*"):(b(d,f,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,u?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,v?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",
[b,null],null,d,function(){d(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){n.postMessage(JSON.stringify({event:"template",docUrl:b,info:d,name:c}),"*")}),null,null,B?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==k.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==k.action){var da=
this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:da,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 N=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,
-N):this.spinner.stop();return}if("exit"==k.action)this.actions.get("exit").funct();else{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 Q=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var X=this.editor.graph,F=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();var d=this.createLoadMessage("export");d.format=
-k.format;d.message=k;d.data=b;d.xml=Q;n.postMessage(JSON.stringify(d),"*")}),J=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(Q)));X!=this.editor.graph&&X.container.parentNode.removeChild(X.container);F(b)}),A=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var aa=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=
-A){var b=X.getGlobalVariable;X=this.createTemporaryGraph(X.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==A){d=this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);X.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(X.container);X.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=X.model,f=e.getChildCells(e.getRoot()),g={},c=0;c<k.layerIds.length;c++)g[k.layerIds[c]]=
-!0;for(c=0;c<f.length;c++)e.setVisible(f[c],g[f[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){J(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){J(null)}),null,null,k.scale,k.transparent,k.shadow,null,X,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(Q),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(aa)},0):aa()):aa()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+
-("xmlpng"==k.format?"1":"0")+(null!=A?"&pageId="+A:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(Q))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?F("data:image/png;base64,"+b.getText()):J(null)}),mxUtils.bind(this,function(){J(null)}))}}else aa=mxUtils.bind(this,function(){var b=this.createLoadMessage("export");b.message=k;if("html2"==
-k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var d=this.getXmlFileData();b.xml=mxUtils.getXml(d);b.data=this.getFileData(null,null,!0,null,null,null,d);b.format=k.format}else if("html"==k.format)d=this.editor.getGraphXml(),b.data=this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;d=null!=k.background?k.background:this.editor.graph.background;d==mxConstants.NONE&&(d=null);b.xml=this.getFileData(!0,
-null,null,null,null,null,null,null,null,!1);b.format="svg";var c=mxUtils.bind(this,function(d){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(d);n.postMessage(JSON.stringify(b),"*")});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(b.xml,this.editor.graph,null,!0,c,null,null,k.embedImages,d,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),d=this.editor.graph.getSvg(d,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(d),this.embedFonts(d,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,mxUtils.bind(this,function(b){c(mxUtils.getXml(b))})):
-c(mxUtils.getXml(b))}));return}n.postMessage(JSON.stringify(b),"*")}),null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(k.xml),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(aa)},0):aa()):aa();return}if("load"==k.action){p=k.toSketch;e=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);if(null!=k.rough){var I=Editor.sketchMode;this.doSetSketchMode(k.rough);I!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(I=Editor.darkMode,this.doSetDarkMode(k.dark),I!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=k.border&&(this.embedExportBorder=k.border);var W=this.embedExportBorder;null!=k.background&&(this.embedExportBackground=k.background);null!=k.rect&&(this.diagramContainer.style.border=
-"2px solid #295fcc",this.diagramContainer.style.top=k.rect.top+"px",this.diagramContainer.style.left=k.rect.left+"px",this.diagramContainer.style.height=k.rect.height+"px",this.diagramContainer.style.width=k.rect.width+"px",this.diagramContainer.style.bottom="",this.diagramContainer.style.right="",l=mxUtils.bind(this,function(){var b=this.editor.graph,d=b.maxFitScale;b.maxFitScale=k.maxFitScale;b.fit(2*W);b.maxFitScale=d;b.container.scrollTop-=2*W;b.container.scrollLeft-=2*W;this.fireEvent(new mxEventObject("editInlineStart",
-"data",[k]))}));null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=t);try{k.libs&&this.sidebar.showEntries(k.libs)}catch(ja){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:
-k.xml}else{if("merge"==k.action){var ba=this.getCurrentFile();null!=ba&&(t=m(k.xml),null!=t&&""!=t&&ba.mergeFile(new LocalFile(this,t),function(){n.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){n.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(n):"remoteInvoke"==k.action?this.handleRemoteInvoke(k,f.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):n.postMessage(JSON.stringify({error:"unknownMessage",
-data:JSON.stringify(k)}),"*");return}}}catch(ja){this.handleError(ja)}}var oa=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,k){c=!0;try{b(f,k,null,p)}catch(ka){this.handleError(ka)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");g=oa();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=oa();if(e!=g&&!c){var f=this.createLoadMessage("autosave");
-f.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}g=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,d),this.editor.graph.addListener("gridSizeChanged",d),this.editor.graph.addListener("shadowVisibleChanged",d),this.addListener("pageFormatChanged",d),this.addListener("pageScaleChanged",d),this.addListener("backgroundColorChanged",d),this.addListener("backgroundImageChanged",d),this.addListener("foldingEnabledChanged",d),this.addListener("mathEnabledChanged",d),this.addListener("gridEnabledChanged",
-d),this.addListener("guidesEnabledChanged",d),this.addListener("pageViewChanged",d));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var m=this.createLoadMessage("load");m.xml=f;n.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){fa(b,f)},mxUtils.bind(this,function(b){this.handleError(b)}),
-m)):null!=k&&"function"===typeof k.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,13)&&fa(b.responseText,f)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){fa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):
-null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),fa(k,f)):this.loadDescriptor(k,mxUtils.bind(this,function(b){fa(oa(),f)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,k="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(k,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){t.apply(this,
-arguments);n.postMessage(JSON.stringify({event:"openLink",href:b,target:d,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop="atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=
-urlParams.saveAndExit){var g="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,g);c.setAttribute("title",g);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),
-"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,
-e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right="atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,
-mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),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(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);
-if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],k={};if(0<d.length){var n={},t=null,x=null,C=null,H=null,D=null,E=null,M="whiteSpace=wrap;html=1;",G=null,K=null,B="",L="auto",O="auto",da=null,N=null,Q=40,X=40,F=100,J=0,A=this.editor.graph;A.getGraphBounds();for(var aa=function(){null!=c?c(qa):(A.setSelectionCells(qa),
-A.scrollCellToVisible(A.getSelectionCell()))},I=A.getFreeInsertPoint(),W=I.x,ba=I.y,I=ba,oa=null,fa="auto",K=null,ja=[],na=null,pa=null,ka=0;ka<d.length&&"#"==d[ka].charAt(0);){b=d[ka];for(ka++;ka<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ka].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ka].substring(1)),ka++;if("#"!=b.charAt(1)){var Y=b.indexOf(":");if(0<Y){var Z=mxUtils.trim(b.substring(1,Y)),R=mxUtils.trim(b.substring(Y+1));"label"==Z?oa=A.sanitizeHtml(R):"labelname"==Z&&0<R.length&&
-"-"!=R?D=R:"labels"==Z&&0<R.length&&"-"!=R?E=JSON.parse(R):"style"==Z?x=R:"parentstyle"==Z?M=R:"stylename"==Z&&0<R.length&&"-"!=R?H=R:"styles"==Z&&0<R.length&&"-"!=R?C=JSON.parse(R):"vars"==Z&&0<R.length&&"-"!=R?t=JSON.parse(R):"identity"==Z&&0<R.length&&"-"!=R?G=R:"parent"==Z&&0<R.length&&"-"!=R?K=R:"namespace"==Z&&0<R.length&&"-"!=R?B=R:"width"==Z?L=R:"height"==Z?O=R:"left"==Z&&0<R.length?da=R:"top"==Z&&0<R.length?N=R:"ignore"==Z?pa=R.split(","):"connect"==Z?ja.push(JSON.parse(R)):"link"==Z?na=
-R:"padding"==Z?J=parseFloat(R):"edgespacing"==Z?Q=parseFloat(R):"nodespacing"==Z?X=parseFloat(R):"levelspacing"==Z?F=parseFloat(R):"layout"==Z&&(fa=R)}}}if(null==d[ka])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ka]),Z=Y=null,R=[],U=0;U<sa.length;U++)G==sa[U]&&(Y=U),K==sa[U]&&(Z=U),R.push(mxUtils.trim(sa[U]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==oa&&(oa="%"+R[0]+"%");if(null!=ja)for(var T=0;T<ja.length;T++)null==n[ja[T].to]&&
-(n[ja[T].to]={});G=[];for(U=ka+1;U<d.length;U++){var ma=this.editor.csvToArray(d[U]);if(null==ma){var va=40<d[U].length?d[U].substring(0,40)+"...":d[U];throw Error(va+" ("+U+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&G.push(ma)}A.model.beginUpdate();try{for(U=0;U<G.length;U++){var ma=G[U],S=null,ea=null!=Y?B+ma[Y]:null;null!=ea&&(S=A.model.getCell(ea));var d=null!=S,ha=new mxCell(oa,new mxGeometry(W,I,0,0),x||"whiteSpace=wrap;html=1;");ha.vertex=!0;ha.id=ea;for(var ia=0;ia<
-ma.length;ia++)A.setAttributeForCell(ha,R[ia],ma[ia]);if(null!=D&&null!=E){var la=E[ha.getAttribute(D)];null!=la&&A.labelChanged(ha,la)}if(null!=H&&null!=C){var ta=C[ha.getAttribute(H)];null!=ta&&(ha.style=ta)}A.setAttributeForCell(ha,"placeholders","1");ha.style=A.replacePlaceholders(ha,ha.style,t);d?(A.model.setValue(S,ha.value),A.model.setStyle(S,ha.style),0>mxUtils.indexOf(g,S)&&g.push(S),A.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):A.fireEvent(new mxEventObject("cellsInserted",
-"cells",[ha]));S=ha;if(!d)for(T=0;T<ja.length;T++)n[ja[T].to][S.getAttribute(ja[T].to)]=S;null!=na&&"link"!=na&&(A.setLinkForCell(S,S.getAttribute(na)),A.setAttributeForCell(S,na,null));var P=this.editor.graph.getPreferredSizeForCell(S),K=null!=Z?A.model.getCell(B+ma[Z]):null;if(S.vertex){va=null!=K?0:W;ka=null!=K?0:ba;null!=da&&null!=S.getAttribute(da)&&(S.geometry.x=va+parseFloat(S.getAttribute(da)));null!=N&&null!=S.getAttribute(N)&&(S.geometry.y=ka+parseFloat(S.getAttribute(N)));var ca="@"==L.charAt(0)?
-S.getAttribute(L.substring(1)):null;S.geometry.width=null!=ca&&"auto"!=ca?parseFloat(S.getAttribute(L.substring(1))):"auto"==L||"auto"==ca?P.width+J:parseFloat(L);var wa="@"==O.charAt(0)?S.getAttribute(O.substring(1)):null;S.geometry.height=null!=wa&&"auto"!=wa?parseFloat(wa):"auto"==O||"auto"==wa?P.height+J:parseFloat(O);I+=S.geometry.height+X}d?(null==k[ea]&&(k[ea]=[]),k[ea].push(S)):(e.push(S),null!=K?(K.style=A.replacePlaceholders(K,M,t),A.addCell(S,K),f.push(K)):g.push(A.addCell(S)))}for(U=0;U<
-f.length;U++)ca="@"==L.charAt(0)?f[U].getAttribute(L.substring(1)):null,wa="@"==O.charAt(0)?f[U].getAttribute(O.substring(1)):null,"auto"!=L&&"auto"!=ca||"auto"!=O&&"auto"!=wa||A.updateGroupBounds([f[U]],J,!0);for(var ya=g.slice(),qa=g.slice(),T=0;T<ja.length;T++)for(var za=ja[T],U=0;U<e.length;U++){var S=e[U],Aa=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=e.split(","),f=0;f<e.length;f++){var g=n[c.to][e[f]];if(null!=g){var k=c.label;null!=c.fromlabel&&
-(k=(d.getAttribute(c.fromlabel)||"")+(k||""));null!=c.sourcelabel&&(k=A.replacePlaceholders(d,c.sourcelabel,t)+(k||""));null!=c.tolabel&&(k=(k||"")+(g.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(g,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?g:b,l=null!=c.style?A.replacePlaceholders(l,c.style,t):A.createCurrentEdgeStyle(),k=A.insertEdge(null,null,k||"",c.invert?g:b,c.invert?b:g,l);if(null!=c.labels)for(l=0;l<c.labels.length;l++){var m=c.labels[l],
-p=new mxCell(m.label||l,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=A.replacePlaceholders("target"==m.placeholders==!c.invert?g:b,p.value,t));if(null!=m.dx||null!=m.dy)p.geometry.offset=new mxPoint(null!=m.dx?m.dx:0,null!=m.dy?m.dy:0);k.insert(p)}qa.push(k);mxUtils.remove(c.invert?b:g,ya)}}});Aa(S,S,za);if(null!=k[S.id])for(ia=0;ia<k[S.id].length;ia++)Aa(S,k[S.id][ia],za)}if(null!=pa)for(U=
-0;U<e.length;U++)for(S=e[U],ia=0;ia<pa.length;ia++)A.setAttributeForCell(S,mxUtils.trim(pa[ia]),null);if(0<g.length){var Da=new mxParallelEdgeLayout(A);Da.spacing=Q;Da.checkOverlap=!0;var Ea=function(){0<Da.spacing&&Da.execute(A.getDefaultParent());for(var b=0;b<g.length;b++){var d=A.getCellGeometry(g[b]);d.x=Math.round(A.snap(d.x));d.y=Math.round(A.snap(d.y));"auto"==L&&(d.width=Math.round(A.snap(d.width)));"auto"==O&&(d.height=Math.round(A.snap(d.height)))}};if("["==fa.charAt(0)){var Ka=aa;A.view.validate();
-this.executeLayoutList(JSON.parse(fa),function(){Ea();Ka()});aa=null}else if("circle"==fa){var Ba=new mxCircleLayout(A);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var Ha=Ba.isVertexIgnored;Ba.isVertexIgnored=function(b){return Ha.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ba.execute(A.getDefaultParent());Ea()},!0,aa);aa=null}else if("horizontaltree"==fa||"verticaltree"==fa||"auto"==fa&&qa.length==2*g.length-1&&1==ya.length){A.view.validate();var Fa=new mxCompactTreeLayout(A,
-"horizontaltree"==fa);Fa.levelDistance=X;Fa.edgeRouting=!1;Fa.resetEdges=!1;this.executeLayout(function(){Fa.execute(A.getDefaultParent(),0<ya.length?ya[0]:null)},!0,aa);aa=null}else if("horizontalflow"==fa||"verticalflow"==fa||"auto"==fa&&1==ya.length){A.view.validate();var V=new mxHierarchicalLayout(A,"horizontalflow"==fa?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);V.intraCellSpacing=X;V.parallelEdgeSpacing=Q;V.interRankCellSpacing=F;V.disableEdgeStyle=!1;this.executeLayout(function(){V.execute(A.getDefaultParent(),
-qa);A.moveCells(qa,W,ba)},!0,aa);aa=null}else if("organic"==fa||"auto"==fa&&qa.length>g.length){A.view.validate();var xa=new mxFastOrganicLayout(A);xa.forceConstant=3*X;xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Oa=xa.isVertexIgnored;xa.isVertexIgnored=function(b){return Oa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){xa.execute(A.getDefaultParent());Ea()},!0,aa);aa=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=aa&&aa()}}catch(La){this.handleError(La)}};
-EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
-e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,g,k){b=new LinkDialog(this,b,c,e,!0,g,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var d=1;null==this.drive&&"function"!==typeof window.DriveClient||d++;null==this.dropbox&&"function"!==typeof window.DropboxClient||d++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||
-d++;null!=this.gitHub&&d++;null!=this.gitLab&&d++;null!=this.notion&&d++;b&&isLocalStorage&&"1"==urlParams.browser&&d++;return d};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);
-this.actions.get("print").setEnabled(!e);this.menus.get("exportAs").setEnabled(!e);this.menus.get("embed").setEnabled(!e);e="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(e);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(e),this.menus.get("newLibrary").setEnabled(e));b="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);
-this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);this.menus.get("arrange").setEnabled(b);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(b),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(b));this.updateUserElement()};
-EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var b=this.getCurrentFile();return null!=b&&b.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var n=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){n.apply(this,arguments);var b=this.editor.graph,
-c=this.getCurrentFile(),e=this.isDiagramActive(),g=b.getEditableCells(b.getSelectionCells());this.actions.get("pageSetup").setEnabled(e);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(e);this.actions.get("editData").setEnabled(0<g.length||b.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(e);this.actions.get("connectionArrows").setEnabled(e);this.actions.get("connectionPoints").setEnabled(e);this.actions.get("copyStyle").setEnabled(e&&
-!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(e&&0<g.length);this.actions.get("editGeometry").setEnabled(0<g.length&&b.getModel().isVertex(g[0]));this.actions.get("createShape").setEnabled(e);this.actions.get("createRevision").setEnabled(e);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(e&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=
-c&&!c.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!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");
-c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(e&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var t=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);t.apply(this,arguments)};null!=window.ExportDialog&&
-(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,e,g,k,n,t,v){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(g,k,n)),"image/svg+xml");else{var f=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),p=Math.floor(l.height*k/d.view.scale);if(f.length<=MAX_REQUEST_SIZE&&
-m*p<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var q={globalVars:d.getExportVariables()};v&&(q.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(q))+(0<t?"&dpi="+t:"")+"&bg="+(null!=g?g:"none")+"&w="+m+"&h="+p+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==
-e?b.exportImage(k,null==g||"none"==g,!0,!1,!1,n,!0,!1,null,v,t):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",v);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=0;e<this.pages.length;e++){var g=b;this.currentPage!=this.pages[e]&&(g=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),g.model.setRoot(this.pages[e].root));c+=
-this.pages[e].getName()+" "+g.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var g=document.createElement("div");g.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";
-g.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]={id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}this.remoteInvoke("getCustomLibraries",null,null,function(b){g.innerHTML="";if(0==b.length)g.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+
-"</div>";else for(var d=0;d<b.length;d++){var e=b[d];k[e.id]&&(c[e.id]=e);var f=this.addCheckbox(g,e.title,k[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,f)}},mxUtils.bind(this,function(b){g.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));g.appendChild(c)}));
-d.appendChild(g);d=new CustomDialog(this,d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,d;for(d in c)null==k[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(E){this.handleError(E,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,
-mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in k)c[d]||this.closeLibrary(new RemoteLibrary(this,null,k[d]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,340,390,!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(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==d)throw Error("No callback for "+
-(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):d.callback&&d.callback.apply(this,b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,e,g,k){var d=!0,f=window.setTimeout(mxUtils.bind(this,function(){d=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),l=mxUtils.bind(this,function(){window.clearTimeout(f);d&&g.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(f);d&&k.apply(this,
-arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:l,error:m});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:e});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=c);this.remoteWin.postMessage(JSON.stringify(e),
-"*")});try{var e=b.funtionName,f=this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var g=!1,k=0;k<f.allowedDomains.length;k++)if(c=="https://"+f.allowedDomains[k]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var n=b.functionArgs;Array.isArray(n)||(n=[]);if(f.isAsync)n.push(function(){d(Array.prototype.slice.apply(arguments))}),n.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,n);else{var t=this[e].apply(this,n);
-d([t])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(x){d(null,"Invalid Call: An error occurred, "+x.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",
-{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=c&&c(u)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display=
-"none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,f,g=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,
-function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(B){console.log(B)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],l,l,["filesInfo","files"])}catch(B){console.log(B)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g=
-{};try{g=JSON.parse(b.data)}catch(L){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,m()):k():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):l())}}catch(L){console.log(L)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=
-function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(p){null!=c&&c(p)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,e,g,k){this.openDatabase(mxUtils.bind(this,function(d){try{k=k||"objects";Array.isArray(k)||(k=[k],b=[b],c=[c]);var f=d.transaction(k,"readwrite");f.oncomplete=e;f.onerror=g;for(d=0;d<k.length;d++)f.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(v){null!=g&&g(v)}}),g)};EditorUi.prototype.removeDatabaseItem=
-function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){g=g||"objects";Array.isArray(g)||(g=[g],b=[b]);d=d.transaction(g,"readwrite");d.oncomplete=c;d.onerror=e;for(var f=0;f<g.length;f++)d.objectStore(g[f])["delete"](b[f])}),e)};EditorUi.prototype.getDatabaseItem=function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){try{g=g||"objects";var f=d.transaction([g],"readonly").objectStore(g).get(b);f.onsuccess=function(){c(f.result)};f.onerror=e}catch(u){null!=e&&e(u)}}),e)};EditorUi.prototype.getDatabaseItems=
-function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),c.target.result["continue"]())};f.onerror=c}catch(u){null!=c&&c(u)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).getAllKeys();
-f.onsuccess=function(){b(f.result)};f.onerror=c}catch(q){null!=c&&c(q)}}),c)};EditorUi.prototype.commentsSupported=function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();
-null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,e){var d=this.getCurrentFile();null!=d?d.addComment(b,c,e):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,
-b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=
-function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,g,k,n,t,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,e,g,k,n,t,v)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");
-return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,g,k,n,t,v,y,x,C,H,D,E,M,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,n,t,v,
-y,x,C,H,D,E,M,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,e,g)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};
-EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,g)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,g,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,
-c,e,g,k)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var e=localStorage.key(c),g=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<g.length){var k="<mxfile "===g.substring(0,8)||"<?xml"===g.substring(0,5)||"\x3c!--[if IE]>"===g.substring(0,12),g="<mxlibrary>"===g.substring(0,11);(k||g)&&b.push(e)}}return b};EditorUi.prototype.getLocalStorageFile=
-function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
+N):this.spinner.stop();return}if("exit"==k.action){this.actions.get("exit").funct();return}if("viewport"==k.action){null!=k.viewport&&(this.embedViewport=k.viewport);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 Q=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var X=this.editor.graph,E=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);
+this.spinner.stop();var d=this.createLoadMessage("export");d.format=k.format;d.message=k;d.data=b;d.xml=Q;n.postMessage(JSON.stringify(d),"*")}),J=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(Q)));X!=this.editor.graph&&X.container.parentNode.removeChild(X.container);E(b)}),A=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var aa=
+mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=A){var b=X.getGlobalVariable;X=this.createTemporaryGraph(X.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==A){d=this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);X.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(X.container);X.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=X.model,f=e.getChildCells(e.getRoot()),
+g={},c=0;c<k.layerIds.length;c++)g[k.layerIds[c]]=!0;for(c=0;c<f.length;c++)e.setVisible(f[c],g[f[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){J(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){J(null)}),null,null,k.scale,k.transparent,k.shadow,null,X,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(Q),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(aa)},0):aa()):
+aa()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=A?"&pageId="+A:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(Q))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?E("data:image/png;base64,"+b.getText()):J(null)}),mxUtils.bind(this,function(){J(null)}))}}else aa=mxUtils.bind(this,function(){var b=
+this.createLoadMessage("export");b.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var d=this.getXmlFileData();b.xml=mxUtils.getXml(d);b.data=this.getFileData(null,null,!0,null,null,null,d);b.format=k.format}else if("html"==k.format)d=this.editor.getGraphXml(),b.data=this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;d=null!=k.background?k.background:this.editor.graph.background;
+d==mxConstants.NONE&&(d=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var c=mxUtils.bind(this,function(d){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(d);n.postMessage(JSON.stringify(b),"*")});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(b.xml,this.editor.graph,null,!0,c,null,null,k.embedImages,d,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),d=this.editor.graph.getSvg(d,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(d),this.embedFonts(d,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,
+mxUtils.bind(this,function(b){c(mxUtils.getXml(b))})):c(mxUtils.getXml(b))}));return}n.postMessage(JSON.stringify(b),"*")}),null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(k.xml),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(aa)},0):aa()):aa();return}if("load"==k.action){p=k.toSketch;e=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);if(null!=k.rough){var I=Editor.sketchMode;this.doSetSketchMode(k.rough);I!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(I=Editor.darkMode,this.doSetDarkMode(k.dark),I!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=k.border&&(this.embedExportBorder=k.border);null!=k.background&&(this.embedExportBackground=k.background);null!=k.viewport&&
+(this.embedViewport=k.viewport);if(null!=k.rect){var W=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=k.rect.top+"px";this.diagramContainer.style.left=k.rect.left+"px";this.diagramContainer.style.height=k.rect.height+"px";this.diagramContainer.style.width=k.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";l=mxUtils.bind(this,function(){var b=this.editor.graph,d=b.maxFitScale;b.maxFitScale=k.maxFitScale;
+b.fit(2*W);b.maxFitScale=d;b.container.scrollTop-=2*W;b.container.scrollLeft-=2*W;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=t);try{k.libs&&
+this.sidebar.showEntries(k.libs)}catch(ja){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var ba=this.getCurrentFile();null!=ba&&(t=m(k.xml),null!=t&&""!=t&&ba.mergeFile(new LocalFile(this,t),function(){n.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){n.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(n):"remoteInvoke"==
+k.action?this.handleRemoteInvoke(k,f.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):n.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(ja){this.handleError(ja)}}var oa=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,k){c=!0;try{b(f,k,null,p)}catch(ka){this.handleError(ka)}c=!1;null!=
+urlParams.modified&&this.editor.setStatus("");g=oa();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=oa();if(e!=g&&!c){var f=this.createLoadMessage("autosave");f.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}g=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,d),this.editor.graph.addListener("gridSizeChanged",d),this.editor.graph.addListener("shadowVisibleChanged",d),this.addListener("pageFormatChanged",d),this.addListener("pageScaleChanged",d),this.addListener("backgroundColorChanged",
+d),this.addListener("backgroundImageChanged",d),this.addListener("foldingEnabledChanged",d),this.addListener("mathEnabledChanged",d),this.addListener("gridEnabledChanged",d),this.addListener("guidesEnabledChanged",d),this.addListener("pageViewChanged",d));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var m=this.createLoadMessage("load");m.xml=f;n.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,
+34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){fa(b,f)},mxUtils.bind(this,function(b){this.handleError(b)}),m)):null!=k&&"function"===typeof k.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,
+13)&&fa(b.responseText,f)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){fa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),fa(k,f)):this.loadDescriptor(k,mxUtils.bind(this,function(b){fa(oa(),f)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,k="json"==
+urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(k,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){t.apply(this,arguments);n.postMessage(JSON.stringify({event:"openLink",href:b,target:d,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop=
+"atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var g="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,g);c.setAttribute("title",g);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,
+mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
+b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right=
+"atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),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(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],k={};if(0<d.length){var n={},t=null,x=null,C=null,H=null,D=null,F=null,M="whiteSpace=wrap;html=1;",
+G=null,K=null,B="",L="auto",O="auto",da=null,N=null,Q=40,X=40,E=100,J=0,A=this.editor.graph;A.getGraphBounds();for(var aa=function(){null!=c?c(qa):(A.setSelectionCells(qa),A.scrollCellToVisible(A.getSelectionCell()))},I=A.getFreeInsertPoint(),W=I.x,ba=I.y,I=ba,oa=null,fa="auto",K=null,ja=[],na=null,pa=null,ka=0;ka<d.length&&"#"==d[ka].charAt(0);){b=d[ka];for(ka++;ka<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ka].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ka].substring(1)),ka++;if("#"!=
+b.charAt(1)){var Y=b.indexOf(":");if(0<Y){var Z=mxUtils.trim(b.substring(1,Y)),R=mxUtils.trim(b.substring(Y+1));"label"==Z?oa=A.sanitizeHtml(R):"labelname"==Z&&0<R.length&&"-"!=R?D=R:"labels"==Z&&0<R.length&&"-"!=R?F=JSON.parse(R):"style"==Z?x=R:"parentstyle"==Z?M=R:"stylename"==Z&&0<R.length&&"-"!=R?H=R:"styles"==Z&&0<R.length&&"-"!=R?C=JSON.parse(R):"vars"==Z&&0<R.length&&"-"!=R?t=JSON.parse(R):"identity"==Z&&0<R.length&&"-"!=R?G=R:"parent"==Z&&0<R.length&&"-"!=R?K=R:"namespace"==Z&&0<R.length&&
+"-"!=R?B=R:"width"==Z?L=R:"height"==Z?O=R:"left"==Z&&0<R.length?da=R:"top"==Z&&0<R.length?N=R:"ignore"==Z?pa=R.split(","):"connect"==Z?ja.push(JSON.parse(R)):"link"==Z?na=R:"padding"==Z?J=parseFloat(R):"edgespacing"==Z?Q=parseFloat(R):"nodespacing"==Z?X=parseFloat(R):"levelspacing"==Z?E=parseFloat(R):"layout"==Z&&(fa=R)}}}if(null==d[ka])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ka]),Z=Y=null,R=[],U=0;U<sa.length;U++)G==sa[U]&&(Y=U),K==sa[U]&&(Z=U),R.push(mxUtils.trim(sa[U]).replace(/[^a-z0-9]+/ig,
+"_").replace(/^\d+/,"").replace(/_+$/,""));null==oa&&(oa="%"+R[0]+"%");if(null!=ja)for(var T=0;T<ja.length;T++)null==n[ja[T].to]&&(n[ja[T].to]={});G=[];for(U=ka+1;U<d.length;U++){var ma=this.editor.csvToArray(d[U]);if(null==ma){var va=40<d[U].length?d[U].substring(0,40)+"...":d[U];throw Error(va+" ("+U+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&G.push(ma)}A.model.beginUpdate();try{for(U=0;U<G.length;U++){var ma=G[U],S=null,ea=null!=Y?B+ma[Y]:null;null!=ea&&(S=A.model.getCell(ea));
+var d=null!=S,ha=new mxCell(oa,new mxGeometry(W,I,0,0),x||"whiteSpace=wrap;html=1;");ha.vertex=!0;ha.id=ea;for(var ia=0;ia<ma.length;ia++)A.setAttributeForCell(ha,R[ia],ma[ia]);if(null!=D&&null!=F){var la=F[ha.getAttribute(D)];null!=la&&A.labelChanged(ha,la)}if(null!=H&&null!=C){var ta=C[ha.getAttribute(H)];null!=ta&&(ha.style=ta)}A.setAttributeForCell(ha,"placeholders","1");ha.style=A.replacePlaceholders(ha,ha.style,t);d?(A.model.setValue(S,ha.value),A.model.setStyle(S,ha.style),0>mxUtils.indexOf(g,
+S)&&g.push(S),A.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):A.fireEvent(new mxEventObject("cellsInserted","cells",[ha]));S=ha;if(!d)for(T=0;T<ja.length;T++)n[ja[T].to][S.getAttribute(ja[T].to)]=S;null!=na&&"link"!=na&&(A.setLinkForCell(S,S.getAttribute(na)),A.setAttributeForCell(S,na,null));var P=this.editor.graph.getPreferredSizeForCell(S),K=null!=Z?A.model.getCell(B+ma[Z]):null;if(S.vertex){va=null!=K?0:W;ka=null!=K?0:ba;null!=da&&null!=S.getAttribute(da)&&(S.geometry.x=va+parseFloat(S.getAttribute(da)));
+null!=N&&null!=S.getAttribute(N)&&(S.geometry.y=ka+parseFloat(S.getAttribute(N)));var ca="@"==L.charAt(0)?S.getAttribute(L.substring(1)):null;S.geometry.width=null!=ca&&"auto"!=ca?parseFloat(S.getAttribute(L.substring(1))):"auto"==L||"auto"==ca?P.width+J:parseFloat(L);var wa="@"==O.charAt(0)?S.getAttribute(O.substring(1)):null;S.geometry.height=null!=wa&&"auto"!=wa?parseFloat(wa):"auto"==O||"auto"==wa?P.height+J:parseFloat(O);I+=S.geometry.height+X}d?(null==k[ea]&&(k[ea]=[]),k[ea].push(S)):(e.push(S),
+null!=K?(K.style=A.replacePlaceholders(K,M,t),A.addCell(S,K),f.push(K)):g.push(A.addCell(S)))}for(U=0;U<f.length;U++)ca="@"==L.charAt(0)?f[U].getAttribute(L.substring(1)):null,wa="@"==O.charAt(0)?f[U].getAttribute(O.substring(1)):null,"auto"!=L&&"auto"!=ca||"auto"!=O&&"auto"!=wa||A.updateGroupBounds([f[U]],J,!0);for(var ya=g.slice(),qa=g.slice(),T=0;T<ja.length;T++)for(var za=ja[T],U=0;U<e.length;U++){var S=e[U],Aa=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=
+e.split(","),f=0;f<e.length;f++){var g=n[c.to][e[f]];if(null!=g){var k=c.label;null!=c.fromlabel&&(k=(d.getAttribute(c.fromlabel)||"")+(k||""));null!=c.sourcelabel&&(k=A.replacePlaceholders(d,c.sourcelabel,t)+(k||""));null!=c.tolabel&&(k=(k||"")+(g.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(g,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?g:b,l=null!=c.style?A.replacePlaceholders(l,c.style,t):A.createCurrentEdgeStyle(),k=A.insertEdge(null,null,
+k||"",c.invert?g:b,c.invert?b:g,l);if(null!=c.labels)for(l=0;l<c.labels.length;l++){var m=c.labels[l],p=new mxCell(m.label||l,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=A.replacePlaceholders("target"==m.placeholders==!c.invert?g:b,p.value,t));if(null!=m.dx||null!=m.dy)p.geometry.offset=new mxPoint(null!=m.dx?m.dx:0,null!=m.dy?m.dy:0);k.insert(p)}qa.push(k);mxUtils.remove(c.invert?b:g,
+ya)}}});Aa(S,S,za);if(null!=k[S.id])for(ia=0;ia<k[S.id].length;ia++)Aa(S,k[S.id][ia],za)}if(null!=pa)for(U=0;U<e.length;U++)for(S=e[U],ia=0;ia<pa.length;ia++)A.setAttributeForCell(S,mxUtils.trim(pa[ia]),null);if(0<g.length){var Da=new mxParallelEdgeLayout(A);Da.spacing=Q;Da.checkOverlap=!0;var Ea=function(){0<Da.spacing&&Da.execute(A.getDefaultParent());for(var b=0;b<g.length;b++){var d=A.getCellGeometry(g[b]);d.x=Math.round(A.snap(d.x));d.y=Math.round(A.snap(d.y));"auto"==L&&(d.width=Math.round(A.snap(d.width)));
+"auto"==O&&(d.height=Math.round(A.snap(d.height)))}};if("["==fa.charAt(0)){var Ka=aa;A.view.validate();this.executeLayoutList(JSON.parse(fa),function(){Ea();Ka()});aa=null}else if("circle"==fa){var Ba=new mxCircleLayout(A);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var Ha=Ba.isVertexIgnored;Ba.isVertexIgnored=function(b){return Ha.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ba.execute(A.getDefaultParent());Ea()},!0,aa);aa=null}else if("horizontaltree"==fa||"verticaltree"==
+fa||"auto"==fa&&qa.length==2*g.length-1&&1==ya.length){A.view.validate();var Fa=new mxCompactTreeLayout(A,"horizontaltree"==fa);Fa.levelDistance=X;Fa.edgeRouting=!1;Fa.resetEdges=!1;this.executeLayout(function(){Fa.execute(A.getDefaultParent(),0<ya.length?ya[0]:null)},!0,aa);aa=null}else if("horizontalflow"==fa||"verticalflow"==fa||"auto"==fa&&1==ya.length){A.view.validate();var V=new mxHierarchicalLayout(A,"horizontalflow"==fa?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);V.intraCellSpacing=
+X;V.parallelEdgeSpacing=Q;V.interRankCellSpacing=E;V.disableEdgeStyle=!1;this.executeLayout(function(){V.execute(A.getDefaultParent(),qa);A.moveCells(qa,W,ba)},!0,aa);aa=null}else if("organic"==fa||"auto"==fa&&qa.length>g.length){A.view.validate();var xa=new mxFastOrganicLayout(A);xa.forceConstant=3*X;xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Oa=xa.isVertexIgnored;xa.isVertexIgnored=function(b){return Oa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){xa.execute(A.getDefaultParent());
+Ea()},!0,aa);aa=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=aa&&aa()}}catch(La){this.handleError(La)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?
+1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,g,k){b=new LinkDialog(this,b,c,e,!0,g,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var d=1;null==this.drive&&
+"function"!==typeof window.DriveClient||d++;null==this.dropbox&&"function"!==typeof window.DropboxClient||d++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||d++;null!=this.gitHub&&d++;null!=this.gitLab&&d++;null!=this.notion&&d++;b&&isLocalStorage&&"1"==urlParams.browser&&d++;return d};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);
+this.menus.get("viewZoom").setEnabled(c);var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);this.actions.get("print").setEnabled(!e);this.menus.get("exportAs").setEnabled(!e);this.menus.get("embed").setEnabled(!e);e="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(e);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(e),this.menus.get("newLibrary").setEnabled(e));
+b="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);this.menus.get("arrange").setEnabled(b);
+null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(b),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(b));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var b=this.getCurrentFile();return null!=b&&b.isEditable()||
+"1"==urlParams.embed&&this.editor.graph.isEnabled()};var n=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){n.apply(this,arguments);var b=this.editor.graph,c=this.getCurrentFile(),e=this.isDiagramActive(),g=b.getEditableCells(b.getSelectionCells());this.actions.get("pageSetup").setEnabled(e);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(e);this.actions.get("editData").setEnabled(0<
+g.length||b.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(e);this.actions.get("connectionArrows").setEnabled(e);this.actions.get("connectionPoints").setEnabled(e);this.actions.get("copyStyle").setEnabled(e&&!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(e&&0<g.length);this.actions.get("editGeometry").setEnabled(0<g.length&&b.getModel().isVertex(g[0]));this.actions.get("createShape").setEnabled(e);this.actions.get("createRevision").setEnabled(e);this.actions.get("moveToFolder").setEnabled(null!=
+c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(e&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.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!=
+c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(e&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var t=EditorUi.prototype.destroy;
+EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);t.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,e,g,k,n,t,v){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(g,
+k,n)),"image/svg+xml");else{var f=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),p=Math.floor(l.height*k/d.view.scale);if(f.length<=MAX_REQUEST_SIZE&&m*p<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var q={globalVars:d.getExportVariables()};v&&(q.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+
+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(q))+(0<t?"&dpi="+t:"")+"&bg="+(null!=g?g:"none")+"&w="+m+"&h="+p+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==e?b.exportImage(k,null==g||"none"==g,!0,!1,!1,n,!0,!1,null,v,t):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",v);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=
+this.pages)for(var e=0;e<this.pages.length;e++){var g=b;this.currentPage!=this.pages[e]&&(g=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),g.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+g.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,
+mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var g=document.createElement("div");g.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";g.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]=
+{id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}this.remoteInvoke("getCustomLibraries",null,null,function(b){g.innerHTML="";if(0==b.length)g.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<b.length;d++){var e=b[d];k[e.id]&&(c[e.id]=e);var f=this.addCheckbox(g,e.title,k[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,f)}},mxUtils.bind(this,
+function(b){g.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));g.appendChild(c)}));d.appendChild(g);d=new CustomDialog(this,d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,d;for(d in c)null==k[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],
+null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(F){this.handleError(F,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in k)c[d]||this.closeLibrary(new RemoteLibrary(this,null,k[d]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,
+340,390,!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(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],
+"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==d)throw Error("No callback for "+(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):d.callback&&d.callback.apply(this,b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,e,g,k){var d=!0,f=window.setTimeout(mxUtils.bind(this,function(){d=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
+this.timeout),l=mxUtils.bind(this,function(){window.clearTimeout(f);d&&g.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(f);d&&k.apply(this,arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:l,error:m});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:e});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,
+c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=c);this.remoteWin.postMessage(JSON.stringify(e),"*")});try{var e=b.funtionName,f=this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var g=!1,k=0;k<f.allowedDomains.length;k++)if(c=="https://"+f.allowedDomains[k]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var n=b.functionArgs;Array.isArray(n)||
+(n=[]);if(f.isAsync)n.push(function(){d(Array.prototype.slice.apply(arguments))}),n.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,n);else{var t=this[e].apply(this,n);d([t])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(x){d(null,"Invalid Call: An error occurred, "+x.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=
+function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=c&&c(u)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
+(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,f,g=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
+funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(B){console.log(B)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,
+size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],l,l,["filesInfo","files"])}catch(B){console.log(B)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g={};try{g=JSON.parse(b.data)}catch(L){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||
+(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,m()):k():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):l())}}catch(L){console.log(L)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(p){null!=c&&c(p)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,e,g,k){this.openDatabase(mxUtils.bind(this,function(d){try{k=k||"objects";Array.isArray(k)||(k=
+[k],b=[b],c=[c]);var f=d.transaction(k,"readwrite");f.oncomplete=e;f.onerror=g;for(d=0;d<k.length;d++)f.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(v){null!=g&&g(v)}}),g)};EditorUi.prototype.removeDatabaseItem=function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){g=g||"objects";Array.isArray(g)||(g=[g],b=[b]);d=d.transaction(g,"readwrite");d.oncomplete=c;d.onerror=e;for(var f=0;f<g.length;f++)d.objectStore(g[f])["delete"](b[f])}),e)};EditorUi.prototype.getDatabaseItem=
+function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){try{g=g||"objects";var f=d.transaction([g],"readonly").objectStore(g).get(b);f.onsuccess=function(){c(f.result)};f.onerror=e}catch(u){null!=e&&e(u)}}),e)};EditorUi.prototype.getDatabaseItems=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),
+c.target.result["continue"]())};f.onerror=c}catch(u){null!=c&&c(u)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).getAllKeys();f.onsuccess=function(){b(f.result)};f.onerror=c}catch(q){null!=c&&c(q)}}),c)};EditorUi.prototype.commentsSupported=function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=
+this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,e){var d=this.getCurrentFile();null!=d?d.addComment(b,c,e):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?
+b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=
+d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,g,k,n,t,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
+return this.editor.loadUrl(b,c,e,g,k,n,t,v)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
+return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,g,k,n,t,v,y,x,C,H,D,F,M,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,n,t,v,y,x,C,H,D,F,M,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
+return this.editor.convertImages(b,c,e,g)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,g)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");
+return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,g,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,e,g,k)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var e=localStorage.key(c),g=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<g.length){var k=
+"<mxfile "===g.substring(0,8)||"<?xml"===g.substring(0,5)||"\x3c!--[if IE]>"===g.substring(0,12),g="<mxlibrary>"===g.substring(0,11);(k||g)&&b.push(e)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
var CommentsWindow=function(b,c,e,k,g,n){function t(){for(var b=H.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==H&&c++;D.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}y={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):f();y=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);y=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(p.click(),mxEvent.consume(b)):27==b.keyCode&&(n.click(),mxEvent.consume(b)))}));p.focus();p.className="geCommentEditBtn gePrimaryBtn";m.appendChild(p);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function f(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function l(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function m(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function p(b){b.style.border="";b.removeChild(b.busyImg)}function q(c,e,g,k,n){function B(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});X.appendChild(f);e&&(f.style.display="none")}function x(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=Q;b(c);return{pdiv:e,replies:d}}function N(e,f,g,n,t){function v(){l(D);c.addReply(N,function(b){N.id=b;c.replies.push(N);p(D);g&&g()},function(c){u();m(D);b.handleError(c,null,
null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,t)}function u(){d(N,D,function(b){v()},!0)}var B=x().pdiv,N=b.newComment(e,b.getCurrentUser());N.pCommentId=c.id;null==c.replies&&(c.replies=[]);var D=q(N,c.replies,B,k+1);f?u():v()}if(n||!c.isResolved){D.style.display="none";var Q=document.createElement("div");Q.className="geCommentContainer";Q.setAttribute("data-commentId",c.id);Q.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(Q.style.backgroundColor="ghostWhite");
-var E=document.createElement("div");E.className="geCommentHeader";var C=document.createElement("img");C.className="geCommentUserImg";C.src=c.user.pictureUrl||Editor.userImage;E.appendChild(C);C=document.createElement("div");C.className="geCommentHeaderTxt";E.appendChild(C);var L=document.createElement("div");L.className="geCommentUsername";mxUtils.write(L,c.user.displayName||"");C.appendChild(L);L=document.createElement("div");L.className="geCommentDate";L.setAttribute("data-commentId",c.id);f(c,
-L);C.appendChild(L);Q.appendChild(E);E=document.createElement("div");E.className="geCommentTxt";mxUtils.write(E,c.content||"");Q.appendChild(E);c.isLocked&&(Q.style.opacity="0.5");E=document.createElement("div");E.className="geCommentActions";var X=document.createElement("ul");X.className="geCommentActionsList";E.appendChild(X);u||c.isLocked||0!=k&&!v||B(mxResources.get("reply"),function(){N("",!0)},c.isResolved);C=b.getCurrentUser();null==C||C.id!=c.user.id||u||c.isLocked||(B(mxResources.get("edit"),
+var F=document.createElement("div");F.className="geCommentHeader";var C=document.createElement("img");C.className="geCommentUserImg";C.src=c.user.pictureUrl||Editor.userImage;F.appendChild(C);C=document.createElement("div");C.className="geCommentHeaderTxt";F.appendChild(C);var L=document.createElement("div");L.className="geCommentUsername";mxUtils.write(L,c.user.displayName||"");C.appendChild(L);L=document.createElement("div");L.className="geCommentDate";L.setAttribute("data-commentId",c.id);f(c,
+L);C.appendChild(L);Q.appendChild(F);F=document.createElement("div");F.className="geCommentTxt";mxUtils.write(F,c.content||"");Q.appendChild(F);c.isLocked&&(Q.style.opacity="0.5");F=document.createElement("div");F.className="geCommentActions";var X=document.createElement("ul");X.className="geCommentActionsList";F.appendChild(X);u||c.isLocked||0!=k&&!v||B(mxResources.get("reply"),function(){N("",!0)},c.isResolved);C=b.getCurrentUser();null==C||C.id!=c.user.id||u||c.isLocked||(B(mxResources.get("edit"),
function(){function e(){d(c,Q,function(){l(Q);c.editComment(c.content,function(){p(Q)},function(c){m(Q);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),B(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(Q);c.deleteComment(function(b){if(!0===b){b=Q.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=Q.querySelectorAll(".geCommentAction");for(b=
0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);p(Q);Q.style.opacity="0.5"}else{d=x(c).replies;for(b=0;b<d.length;b++)H.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}D.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){m(Q);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||B(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=x(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);G||(f[k].style.display="none")}t()}c.isResolved?N(mxResources.get("reOpened")+": ",!0,
-d,!1,!0):N(mxResources.get("markedAsResolved"),!1,d,!0)});Q.appendChild(E);null!=g?H.insertBefore(Q,g.nextSibling):H.appendChild(Q);for(g=0;null!=c.replies&&g<c.replies.length;g++)E=c.replies[g],E.isResolved=c.isResolved,q(E,c.replies,null,k+1,n);null!=y&&(y.comment.id==c.id?(n=c.content,c.content=y.comment.content,d(c,Q,y.saveCallback,y.deleteOnCancel),c.content=n):null==y.comment.id&&y.comment.pCommentId==c.id&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return Q}}
+d,!1,!0):N(mxResources.get("markedAsResolved"),!1,d,!0)});Q.appendChild(F);null!=g?H.insertBefore(Q,g.nextSibling):H.appendChild(Q);for(g=0;null!=c.replies&&g<c.replies.length;g++)F=c.replies[g],F.isResolved=c.isResolved,q(F,c.replies,null,k+1,n);null!=y&&(y.comment.id==c.id?(n=c.content,c.content=y.comment.content,d(c,Q,y.saveCallback,y.deleteOnCancel),c.content=n):null==y.comment.id&&y.comment.pCommentId==c.id&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return Q}}
var u=!b.canComment(),v=b.canReplyToReplies(),y=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var C=EditorUi.compactUi?"26px":"30px",H=document.createElement("div");H.className="geCommentsList";H.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";H.style.bottom=parseInt(C)+7+"px";x.appendChild(H);var D=document.createElement("span");D.style.cssText="display:none;padding-top:10px;text-align:center;";
-mxUtils.write(D,mxResources.get("noCommentsFound"));var E=document.createElement("div");E.className="geToolbarContainer geCommentsToolbar";E.style.height=C;E.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";E.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";C=document.createElement("a");C.className="geButton";if(!u){var M=C.cloneNode();M.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';M.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(M,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;K.push(c);p(g)},function(c){m(g);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),g=q(f,K,null,0);e();c.preventDefault();mxEvent.consume(c)});E.appendChild(M)}M=C.cloneNode();M.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';M.setAttribute("title",mxResources.get("showResolved"));
-var G=!1;Editor.isDarkMode()&&(M.style.filter="invert(100%)");mxEvent.addListener(M,"click",function(b){this.className=(G=!G)?"geButton geCheckedBtn":"geButton";B();b.preventDefault();mxEvent.consume(b)});E.appendChild(M);b.commentsRefreshNeeded()&&(M=C.cloneNode(),M.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',M.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(M.style.filter="invert(100%)"),mxEvent.addListener(M,"click",function(b){B();
-b.preventDefault();mxEvent.consume(b)}),E.appendChild(M));b.commentsSaveNeeded()&&(C=C.cloneNode(),C.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',C.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(C.style.filter="invert(100%)"),mxEvent.addListener(C,"click",function(b){n();b.preventDefault();mxEvent.consume(b)}),E.appendChild(C));x.appendChild(E);var K=[],B=mxUtils.bind(this,function(){this.hasError=!1;if(null!=y)try{y.div=y.div.cloneNode(!0);
+mxUtils.write(D,mxResources.get("noCommentsFound"));var F=document.createElement("div");F.className="geToolbarContainer geCommentsToolbar";F.style.height=C;F.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";F.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";C=document.createElement("a");C.className="geButton";if(!u){var M=C.cloneNode();M.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';M.setAttribute("title",mxResources.get("create")+
+"...");mxEvent.addListener(M,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;K.push(c);p(g)},function(c){m(g);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),g=q(f,K,null,0);e();c.preventDefault();mxEvent.consume(c)});F.appendChild(M)}M=C.cloneNode();M.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';M.setAttribute("title",mxResources.get("showResolved"));
+var G=!1;Editor.isDarkMode()&&(M.style.filter="invert(100%)");mxEvent.addListener(M,"click",function(b){this.className=(G=!G)?"geButton geCheckedBtn":"geButton";B();b.preventDefault();mxEvent.consume(b)});F.appendChild(M);b.commentsRefreshNeeded()&&(M=C.cloneNode(),M.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',M.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(M.style.filter="invert(100%)"),mxEvent.addListener(M,"click",function(b){B();
+b.preventDefault();mxEvent.consume(b)}),F.appendChild(M));b.commentsSaveNeeded()&&(C=C.cloneNode(),C.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',C.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(C.style.filter="invert(100%)"),mxEvent.addListener(C,"click",function(b){n();b.preventDefault();mxEvent.consume(b)}),F.appendChild(C));x.appendChild(F);var K=[],B=mxUtils.bind(this,function(){this.hasError=!1;if(null!=y)try{y.div=y.div.cloneNode(!0);
var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(N){b.handleError(N)}H.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});H.innerHTML="";H.appendChild(D);D.style.display="block";K=b;for(b=0;b<K.length;b++)c(K[b].replies),q(K[b],K,null,0,G);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel))},mxUtils.bind(this,function(b){H.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
-": "+b.message:""));this.hasError=!0})):H.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});B();this.refreshComments=B;E=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=H.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(E,6E4);this.refreshCommentsTime=E;this.window=
+": "+b.message:""));this.hasError=!0})):H.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});B();this.refreshComments=B;F=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=H.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(F,6E4);this.refreshCommentsTime=F;this.window=
new mxWindow(mxResources.get("comments"),x,c,e,k,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(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var L=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",L);this.destroy=function(){mxEvent.removeListener(window,"resize",L);this.window.destroy()}},ConfirmDialog=function(b,c,e,
k,g,n,t,d,f,l,m){var p=document.createElement("div");p.style.textAlign="center";m=null!=m?m:44;var q=document.createElement("div");q.style.padding="6px";q.style.overflow="auto";q.style.maxHeight=m+"px";q.style.lineHeight="1.2em";mxUtils.write(q,c);p.appendChild(q);null!=l&&(q=document.createElement("div"),q.style.padding="6px 0 6px 0",c=document.createElement("img"),c.setAttribute("src",l),q.appendChild(c),p.appendChild(q));l=document.createElement("div");l.style.textAlign="center";l.style.whiteSpace=
@@ -3863,11 +3864,11 @@ var C=v.removeCells;v.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.
f;return C.apply(this,arguments)};u.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var H=v.duplicateCells;v.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=v.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=v.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=H.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
v.getIncomingTreeEdges(l[f]),k=v.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,v.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var D=v.moveCells;v.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var n=g,p=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<c.length;q++)if(b(c[q])||v.model.isEdge(c[q])&&null==v.model.getTerminal(c[q],
!0)){g=v.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=v.getIncomingTreeEdges(c[0]);if(0<t.length){var u=v.view.getState(v.model.getTerminal(t[0],!0));if(null!=u){var B=v.view.getState(n);null!=B&&(d=(B.getCenterX()-u.getCenterX())/v.view.scale,e=(B.getCenterY()-u.getCenterY())/v.view.scale)}}}}m=D.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
-!0))&&this.model.setTerminal(m[q],n,!0);else if(b(c[q])&&(t=v.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==v.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==v.model.getParent(c[q]))p=v.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,v.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=u.sidebar){var E=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
-function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=E.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var M={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},G=u.onKeyDown;u.onKeyDown=function(c){try{if(v.isEnabled()&&
+!0))&&this.model.setTerminal(m[q],n,!0);else if(b(c[q])&&(t=v.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==v.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==v.model.getParent(c[q]))p=v.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,v.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=u.sidebar){var F=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
+function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=F.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var M={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},G=u.onKeyDown;u.onKeyDown=function(c){try{if(v.isEnabled()&&
!v.isEditing()&&b(v.getSelectionCell())&&1==v.getSelectionCount()){var d=null;0<v.getIncomingTreeEdges(v.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?l(v.getSelectionCell()):m(v.getSelectionCell()):13==c.which&&(d=f(v.getSelectionCell(),!mxEvent.isShiftDown(c))));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!=u.hoverIcons&&u.hoverIcons.update(v.view.getState(v.getSelectionCell())),
v.startEditingAtCell(v.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=M[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(q(v.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(q(v.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(q(v.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(q(v.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(c))}}catch(F){u.handleError(F)}mxEvent.isConsumed(c)||G.apply(this,arguments)};var K=v.connectVertex;v.connectVertex=function(c,e,g,k,n,p,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),B=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,x=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?m(c,e):B==x?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};v.getSubtree=function(d){var e=
+mxEvent.consume(c))}}catch(E){u.handleError(E)}mxEvent.isConsumed(c)||G.apply(this,arguments)};var K=v.connectVertex;v.connectVertex=function(c,e,g,k,n,p,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),B=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,x=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?m(c,e):B==x?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};v.getSubtree=function(d){var e=
[d];!c(d)&&!b(d)||t(d)||v.traverse(d,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var B=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){B.apply(this,arguments);(c(this.state.cell)||b(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",
"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(b){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(b);
this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(b)})))};var L=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){L.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 O=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){O.apply(this,
@@ -3958,26 +3959,27 @@ g([c,f(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.
mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&m.appIconClicked(b)}),null,null));c=m.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==qa&&(c=t.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.className="geToolbarButton",c.style.backgroundImage="url("+Editor.globeImage+")",c.style.backgroundPosition="center center",c.style.backgroundRepeat="no-repeat",c.style.backgroundSize=
"24px 24px",c.style.position="absolute",c.style.height="24px",c.style.width="24px",c.style.zIndex="1",c.style.right="8px",c.style.cursor="pointer",c.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(c),qa=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=qa&&(qa.parentNode.removeChild(qa),qa=null))}H.apply(this,arguments);"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:
null!=mxSettings.settings.darkMode?mxSettings.settings.darkMode:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";l.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(l);"1"==urlParams.sketch&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||
-null!=urlParams["search-shapes"])c(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);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));
-m.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,
-arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);
-m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";
-var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var y=m.menus.get("viewZoom"),A="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,C="1"==urlParams.sketch?document.createElement("div"):null,I="1"==urlParams.sketch?document.createElement("div"):null,W="1"==urlParams.sketch?document.createElement("div"):null,ba=mxUtils.bind(this,
-function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.graph.defaultForegroundColor=n.defaultForegroundColor,this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",ba);m.addListener("sketchModeChanged",ba);var oa=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)W.style.left=
-"10px",W.style.top="10px",I.style.left="10px",I.style.top="60px",C.style.top="10px",C.style.right="12px",C.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height=
-"";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",
-rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}W.style.left=m.diagramContainer.offsetLeft+"px";W.style.top=m.diagramContainer.offsetTop-W.offsetHeight-4+"px";I.style.display="";I.style.left=m.diagramContainer.offsetLeft-I.offsetWidth-4+"px";I.style.top=m.diagramContainer.offsetTop+"px";C.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-C.offsetWidth+"px";C.style.top=W.style.top;C.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-
-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=
-m.bottomResizer.style.visibility;p.style.display="none";W.style.visibility="";C.style.visibility=""}),fa=mxUtils.bind(this,function(){ia.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";oa()}),ba=mxUtils.bind(this,function(){fa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+
-c.width+4,c.y)});m.addListener("inlineFullscreenChanged",fa);m.addListener("editInlineStart",ba);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",ba);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";W.style.visibility="hidden";C.style.visibility="hidden";I.style.display="none"}));Graph.touchStyle&&
-(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ja=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ja.apply(this,arguments)}}if(null!=n.freehand){var na=n.freehand.createStyle;n.freehand.createStyle=function(b){return na.apply(this,arguments)+"sketch=0;"}}if("1"==
-urlParams.sketch){I.className="geToolbarContainer";C.className="geToolbarContainer";W.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=I;var pa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){pa||(m.statusContainer.style.display="none")});var ka=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});
-"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):
-m.editor.getStatus();ka(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",pa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",pa=!1)}else m.statusContainer.style.display="inline-block",ka(null),pa=!0;p.style.visibility=12<p.clientWidth?"":
-"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow="none";P.style.padding="6px";P.style.margin="0px";W.appendChild(P);mxEvent.disableContextMenu(P);mxEvent.addGestureListeners(P,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);
-m.statusContainer.style.position="";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(e-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var Y=document.createElement("a");Y.style.padding="0px";Y.style.boxShadow=
-"none";Y.className="geMenuItem";Y.style.display="inline-block";Y.style.width="40px";Y.style.height="12px";Y.style.marginBottom="-2px";Y.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";Y.style.backgroundPosition="top center";Y.style.backgroundRepeat="no-repeat";Y.setAttribute("title","Minimize");var Z=!1,R=mxUtils.bind(this,function(){I.innerHTML="";if(!Z){var b=function(b,d,e){b=f("",b.funct,null,d,b,e);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=function(b,
-c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";I.appendChild(b);mxUtils.br(I);return b};c(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!0,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");c(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
+null!=urlParams["search-shapes"])c(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));var m=this;mxWindow.prototype.fit=function(){if(Editor.inlineFullscreen||null==m.embedViewport)mxUtils.fit(this.div);else{var b=parseInt(this.div.offsetLeft),c=parseInt(this.div.offsetWidth);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-
+c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=
+mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};
+var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText=
+"position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText=
+"position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var y=m.menus.get("viewZoom"),A="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,C="1"==urlParams.sketch?document.createElement("div"):null,I="1"==urlParams.sketch?document.createElement("div"):null,W="1"==urlParams.sketch?document.createElement("div"):null,ba=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),
+this.sidebar.graph.defaultForegroundColor=n.defaultForegroundColor,this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",ba);m.addListener("sketchModeChanged",ba);var oa=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)W.style.left="10px",W.style.top="10px",I.style.left="10px",I.style.top="60px",C.style.top="10px",C.style.right=
+"12px",C.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background=
+"transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}W.style.left=m.diagramContainer.offsetLeft+
+"px";W.style.top=m.diagramContainer.offsetTop-W.offsetHeight-4+"px";I.style.display="";I.style.left=m.diagramContainer.offsetLeft-I.offsetWidth-4+"px";I.style.top=m.diagramContainer.offsetTop+"px";C.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-C.offsetWidth+"px";C.style.top=W.style.top;C.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+
+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=m.bottomResizer.style.visibility;p.style.display="none";W.style.visibility="";C.style.visibility=
+""}),fa=mxUtils.bind(this,function(){ia.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";oa()}),ba=mxUtils.bind(this,function(){fa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",fa);m.addListener("editInlineStart",
+ba);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",ba);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";W.style.visibility="hidden";C.style.visibility="hidden";I.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==
+b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ja=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ja.apply(this,arguments)}}if(null!=n.freehand){var na=n.freehand.createStyle;n.freehand.createStyle=function(b){return na.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){I.className="geToolbarContainer";C.className="geToolbarContainer";
+W.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=I;var pa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){pa||(m.statusContainer.style.display="none")});var ka=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":
+"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();ka(b);var c=m.getCurrentFile(),
+c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",pa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",pa=!1)}else m.statusContainer.style.display="inline-block",ka(null),pa=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",
+mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow="none";P.style.padding="6px";P.style.margin="0px";W.appendChild(P);mxEvent.disableContextMenu(P);mxEvent.addGestureListeners(P,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);m.statusContainer.style.position="";m.statusContainer.style.display=
+"none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(e-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var Y=document.createElement("a");Y.style.padding="0px";Y.style.boxShadow="none";Y.className="geMenuItem";Y.style.display="inline-block";
+Y.style.width="40px";Y.style.height="12px";Y.style.marginBottom="-2px";Y.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";Y.style.backgroundPosition="top center";Y.style.backgroundRepeat="no-repeat";Y.setAttribute("title","Minimize");var Z=!1,R=mxUtils.bind(this,function(){I.innerHTML="";if(!Z){var b=function(b,d,e){b=f("",b.funct,null,d,b,e);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=
+null!=d?d:"default";b.style.margin="2px 0px";I.appendChild(b);mxUtils.br(I);return b};c(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!0,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");c(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
140,160,"",mxResources.get("note"),!0,!0,null,!0),mxResources.get("note"));c(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");c(m.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;orthogonalLoop=1;jettySize=auto;html=1;");
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;c(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));b=b.clone();b.style="edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;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=c(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(m.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);var e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+
@@ -3999,7 +4001,7 @@ null!=m.actions.layersWindow&&m.actions.layersWindow.window.fit();null!=m.menus.
l.style.position="absolute";l.style.width="10px";l.style.height="10px";l.style.borderRadius="5px";l.style.border="1px solid gray";l.style.background="#ffffff";l.style.cursor="row-resize";m.diagramContainer.parentNode.appendChild(l);m.bottomResizer=l;var za=null,Aa=null,Da=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);Aa=mxEvent.getClientY(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});l=l.cloneNode(!1);l.style.cursor="col-resize";m.diagramContainer.parentNode.appendChild(l);
m.rightResizer=l;mxEvent.addGestureListeners(l,function(b){Da=parseInt(m.diagramContainer.style.width);za=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=za&&(m.diagramContainer.style.width=Math.max(20,Da+mxEvent.getClientX(b)-za)+"px",c=!0);null!=Aa&&(m.diagramContainer.style.height=Math.max(20,Ea+mxEvent.getClientY(b)-Aa)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",
fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),m.fireEvent(new mxEventObject("editInlineStart")),m.refresh())},function(b){null==za&&null==Aa||mxEvent.consume(b);Aa=za=null});n.defaultPageBackgroundColor="transparent";this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";W.style.visibility="hidden";C.style.visibility="hidden";I.style.display=
-"none"}"1"==urlParams.prefetchFonts&&m.editor.loadFonts()}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();DrawioComment=function(b,c,e,k,g,n,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=g;this.isResolved=n;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,g){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,g){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=g};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\nbringForward=Bring Forward\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.\ncontainer=Container\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\nembedFonts=Embed Fonts\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\nradial=Radial\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\nsendBackward=Send Backward\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 occurred 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\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\nconfDraftPermissionErr=Draft cannot be written. Do you have attachment write/read permission on this page?\nconfDraftTooBigErr=Draft size is too large. Pease check "Attachment Maximum Size" of "Attachment Settings" in Confluence Configuration?\nowner=Owner\nrepository=Repository\nbranch=Branch\nmeters=Meters\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;
+"none"}"1"==urlParams.prefetchFonts&&m.editor.loadFonts()}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();DrawioComment=function(b,c,e,k,g,n,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=g;this.isResolved=n;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,g){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,g){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=g};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\nbringForward=Bring Forward\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.\ncontainer=Container\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\nembedFonts=Embed Fonts\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\nradial=Radial\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\nsendBackward=Send Backward\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 occurred 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\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\nconfDraftPermissionErr=Draft cannot be written. Do you have attachment write/read permission on this page?\nconfDraftTooBigErr=Draft size is too large. Pease check "Attachment Maximum Size" of "Attachment Settings" in Confluence Configuration?\nowner=Owner\nrepository=Repository\nbranch=Branch\nmeters=Meters\nteamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)\ncontactOwner=Contact Owner\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="default"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="default"/><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="default"/><add as="fontColor" value="default"/></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="default"/><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="default"/><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(b,c,e){this.init(b,c,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://app.diagrams.net/";GraphViewer.prototype.imageBaseUrl="https://viewer.diagrams.net/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?24:26;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!1;GraphViewer.prototype.autoCrop=!1;
GraphViewer.prototype.autoOrigin=!0;GraphViewer.prototype.center=!1;GraphViewer.prototype.forceCenter=!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(b,c,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.autoOrigin=null!=this.graphConfig["auto-origin"]?this.graphConfig["auto-origin"]:this.autoOrigin;this.allowZoomOut=null!=this.graphConfig["allow-zoom-out"]?this.graphConfig["allow-zoom-out"]:this.allowZoomOut;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?
@@ -4042,10 +4044,10 @@ function(){mxUtils.setOpacity(e,0);k=null;g=window.setTimeout(mxUtils.bind(this,
this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<f&&Math.abs(this.scrollTop-d.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?n():t(30))}})}for(var l=this.toolbarItems,m=0,p=null,q=null,u=null,v=null,y=0;y<l.length;y++){var x=l[y];if("pages"==x){v=c.ownerDocument.createElement("div");
v.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(v,70);var C=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");C.style.borderRightStyle="none";C.style.paddingLeft="0px";C.style.paddingRight="0px";e.appendChild(v);var H=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");H.style.paddingLeft="0px";H.style.paddingRight="0px";x=mxUtils.bind(this,function(){v.innerHTML="";mxUtils.write(v,this.currentPage+1+" / "+this.diagrams.length);v.style.display=1<this.diagrams.length?"inline-block":"none";C.style.display=v.style.display;H.style.display=v.style.display});this.addListener("graphChanged",x);x()}else if("zoom"==x)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
-mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(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"==x){if(this.layersEnabled){var D=this.graph.getModel(),E=b(mxUtils.bind(this,function(b){if(null!=p)p.parentNode.removeChild(p),
+mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(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"==x){if(this.layersEnabled){var D=this.graph.getModel(),F=b(mxUtils.bind(this,function(b){if(null!=p)p.parentNode.removeChild(p),
p=null;else{p=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this.autoCrop)this.crop();else if(this.autoOrigin){var b=this.graph.getGraphBounds(),c=this.graph.view;0>b.x||0>b.y?(this.crop(),this.graph.originalViewState=this.graph.initialViewState,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale}):null!=this.graph.originalViewState&&0<b.x/c.scale+this.graph.originalViewState.translate.x-c.translate.x&&0<b.y/c.scale+this.graph.originalViewState.translate.y-c.translate.y&&
-(c.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale})}}));mxEvent.addListener(p,"mouseleave",function(){p.parentNode.removeChild(p);p=null});b=E.getBoundingClientRect();p.style.width="140px";p.style.padding="2px 0px 2px 0px";p.style.border="1px solid #d0d0d0";p.style.backgroundColor="#eee";p.style.fontFamily=Editor.defaultHtmlFont;p.style.fontSize=
-"11px";p.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(p,80);var c=mxUtils.getDocumentScrollOrigin(document);p.style.left=c.x+b.left-1+"px";p.style.top=c.y+b.bottom-2+"px";document.body.appendChild(p)}}),Editor.layersImage,mxResources.get("layers")||"Layers");D.addListener(mxEvent.CHANGE,function(){E.style.display=1<D.getChildCount(D.root)?"inline-block":"none"});E.style.display=1<D.getChildCount(D.root)?"inline-block":"none"}}else if("tags"==x){if(this.tagsEnabled){var M=b(mxUtils.bind(this,
+(c.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale})}}));mxEvent.addListener(p,"mouseleave",function(){p.parentNode.removeChild(p);p=null});b=F.getBoundingClientRect();p.style.width="140px";p.style.padding="2px 0px 2px 0px";p.style.border="1px solid #d0d0d0";p.style.backgroundColor="#eee";p.style.fontFamily=Editor.defaultHtmlFont;p.style.fontSize=
+"11px";p.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(p,80);var c=mxUtils.getDocumentScrollOrigin(document);p.style.left=c.x+b.left-1+"px";p.style.top=c.y+b.bottom-2+"px";document.body.appendChild(p)}}),Editor.layersImage,mxResources.get("layers")||"Layers");D.addListener(mxEvent.CHANGE,function(){F.style.display=1<D.getChildCount(D.root)?"inline-block":"none"});F.style.display=1<D.getChildCount(D.root)?"inline-block":"none"}}else if("tags"==x){if(this.tagsEnabled){var M=b(mxUtils.bind(this,
function(b){null==q&&(q=this.graph.createTagsDialog(mxUtils.bind(this,function(){return!0})),q.div.getElementsByTagName("div")[0].style.position="",q.div.style.maxHeight="160px",q.div.style.maxWidth="120px",q.div.style.padding="2px",q.div.style.overflow="auto",q.div.style.height="auto",q.div.style.position="fixed",q.div.style.fontFamily=Editor.defaultHtmlFont,q.div.style.fontSize="11px",q.div.style.backgroundColor="#eee",q.div.style.color="#000",q.div.style.border="1px solid #d0d0d0",q.div.style.zIndex=
this.toolbarZIndex+1,mxUtils.setOpacity(q.div,80));if(null!=u)u.parentNode.removeChild(u),u=null;else{u=q.div;mxEvent.addListener(u,"mouseleave",function(){u.parentNode.removeChild(u);u=null});b=M.getBoundingClientRect();var c=mxUtils.getDocumentScrollOrigin(document);u.style.left=c.x+b.left-1+"px";u.style.top=c.y+b.bottom-2+"px";document.body.appendChild(u);q.refresh()}}),Editor.tagsImage,mxResources.get("tags")||"Tags");D.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){M.style.display=0<
this.graph.getAllTags().length?"inline-block":"none"}));M.style.display=0<this.graph.getAllTags().length?"inline-block":"none"}}else"lightbox"==x?this.lightboxEnabled&&b(mxUtils.bind(this,function(){this.showLightbox()}),Editor.fullscreenImage,mxResources.get("fullscreen")||"Fullscreen"):null!=this.graphConfig["toolbar-buttons"]&&(x=this.graphConfig["toolbar-buttons"][x],null!=x&&(x.elem=b(null==x.enabled||x.enabled?x.handler:function(){},x.image,x.title,x.enabled)))}null!=this.graph.minimumContainerSize&&
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 44f43d47..9b32fae8 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -201,7 +201,7 @@ null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=
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";
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"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:"15.5.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/"),
+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:"15.6.0",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_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),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/"),
@@ -2061,13 +2061,14 @@ Editor.prototype.setFilename=function(b){this.filename=b};
Editor.prototype.createUndoManager=function(){var b=this.graph,c=new mxUndoManager;this.undoListener=function(b,e){c.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(b,c){this.undoListener.apply(this,arguments)});b.getModel().addListener(mxEvent.UNDO,e);b.getView().addListener(mxEvent.UNDO,e);e=function(c,e){var g=b.getSelectionCellsForChanges(e.getProperty("edit").changes,function(b){return!(b instanceof mxChildChange)});if(0<g.length){b.getModel();for(var k=[],d=0;d<
g.length;d++)null!=b.view.getState(g[d])&&k.push(g[d]);b.setSelectionCells(k)}};c.addListener(mxEvent.UNDO,e);c.addListener(mxEvent.REDO,e);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(b){this.consumer=this.producer=null;this.done=b;this.args=null};OpenFile.prototype.setConsumer=function(b){this.consumer=b;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(b){this.cancel(!0);mxUtils.alert(b)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(b){null!=this.done&&this.done(null!=b?b:!0)};
-function Dialog(b,c,e,k,g,n,t,d,f,l,m){var p=f?57:0,q=e,u=k,v=f?0:64,y=mxUtils.getDocumentSize();null!=window.innerHeight&&(y.height=window.innerHeight);var x=y.height,C=Math.max(1,Math.round((y.width-e-v)/2)),H=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-v):e;k=Math.min(k,x-v);0<b.dialogs.length&&(this.zIndex+=2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",
-this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));y=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=y.x+"px";this.bg.style.top=y.y+"px";C+=y.x;H+=y.y;g&&document.body.appendChild(this.bg);var D=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(C,H,e,k);C=g.x;H=g.y;D.style.width=e+"px";D.style.height=k+"px";D.style.left=C+"px";D.style.top=H+"px";D.style.zIndex=
-this.zIndex;D.appendChild(c);document.body.appendChild(D);!d&&c.clientHeight>D.clientHeight-v&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(n&&(n=document.createElement("img"),n.setAttribute("src",Dialog.prototype.closeImage),n.setAttribute("title",mxResources.get("close")),n.className="geDialogClose",n.style.top=H+14+"px",n.style.left=C+e+38-p+"px",n.style.zIndex=this.zIndex,mxEvent.addListener(n,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(n),this.dialogImg=
-n,!m)){var E=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){E=!0}),null,mxUtils.bind(this,function(d){E&&(b.hideDialog(!0),E=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();null!=f&&(q=e=f.w,u=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";C=Math.max(1,Math.round((f.width-e-v)/2));H=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(q,document.body.scrollWidth-v):q;k=Math.min(u,x-v);f=this.getPosition(C,
-H,e,k);C=f.x;H=f.y;D.style.left=C+"px";D.style.top=H+"px";D.style.width=e+"px";D.style.height=k+"px";!d&&c.clientHeight>D.clientHeight-v&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=H+14+"px",this.dialogImg.style.left=C+e+38-p+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=D;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
-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";
+function Dialog(b,c,e,k,g,n,t,d,f,l,m){var p=f?57:0,q=e,u=k,v=f?0:64,y=Editor.inlineFullscreen||null==b.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(b.embedViewport);null==b.embedViewport&&null!=window.innerHeight&&(y.height=window.innerHeight);var x=y.height,C=Math.max(1,Math.round((y.width-e-v)/2)),H=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-v):e;k=Math.min(k,x-v);0<b.dialogs.length&&(this.zIndex+=
+2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));y=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=y.x+"px";this.bg.style.top=y.y+"px";C+=y.x;H+=y.y;Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
+H+=b.embedViewport.y,C+=b.embedViewport.x);g&&document.body.appendChild(this.bg);var D=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(C,H,e,k);C=g.x;H=g.y;D.style.width=e+"px";D.style.height=k+"px";D.style.left=C+"px";D.style.top=H+"px";D.style.zIndex=this.zIndex;D.appendChild(c);document.body.appendChild(D);!d&&c.clientHeight>D.clientHeight-v&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(n&&(n=document.createElement("img"),n.setAttribute("src",Dialog.prototype.closeImage),
+n.setAttribute("title",mxResources.get("close")),n.className="geDialogClose",n.style.top=H+14+"px",n.style.left=C+e+38-p+"px",n.style.zIndex=this.zIndex,mxEvent.addListener(n,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(n),this.dialogImg=n,!m)){var F=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){F=!0}),null,mxUtils.bind(this,function(d){F&&(b.hideDialog(!0),F=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();
+null!=f&&(q=e=f.w,u=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");C=Math.max(1,Math.round((f.width-e-v)/2));H=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(q,document.body.scrollWidth-v):q;k=Math.min(u,x-v);f=this.getPosition(C,H,e,k);C=f.x;H=f.y;D.style.left=C+"px";D.style.top=H+"px";D.style.width=e+"px";D.style.height=k+"px";!d&&
+c.clientHeight>D.clientHeight-v&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=H+14+"px",this.dialogImg.style.left=C+e+38-p+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=D;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
+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+
"/clear.gif";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(b,c){return new mxPoint(b,c)};Dialog.prototype.close=function(b,c){if(null!=this.onDialogClose){if(0==this.onDialogClose(b,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(b,c,e,k,g,n,t,d,f,l,m){f=null!=f?f:!0;var p=document.createElement("div");p.style.textAlign="center";if(null!=c){var q=document.createElement("div");q.style.padding="0px";q.style.margin="0px";q.style.fontSize="18px";q.style.paddingBottom="16px";q.style.marginBottom="10px";q.style.borderBottom="1px solid #c0c0c0";q.style.color="gray";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.overflow="hidden";mxUtils.write(q,c);q.setAttribute("title",c);p.appendChild(q)}c=
@@ -2095,9 +2096,9 @@ e.height==l.format.height?(d.value=l.key,n.setAttribute("checked","checked"),n.d
d.value="custom",f.style.display="none",m.style.display="")}}c="format-"+c;var n=document.createElement("input");n.setAttribute("name",c);n.setAttribute("type","radio");n.setAttribute("value","portrait");var t=document.createElement("input");t.setAttribute("name",c);t.setAttribute("type","radio");t.setAttribute("value","landscape");var d=document.createElement("select");d.style.marginBottom="8px";d.style.borderRadius="4px";d.style.border="1px solid rgb(160, 160, 160)";d.style.width="206px";var f=
document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";n.style.marginRight="6px";f.appendChild(n);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));f.appendChild(c);t.style.marginLeft="10px";t.style.marginRight="6px";f.appendChild(t);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));f.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 q=document.createElement("input");q.setAttribute("size","7");q.style.textAlign="right";m.appendChild(q);mxUtils.write(m," in");f.style.display="none";m.style.display="none";for(var u={},v=PageSetupDialog.getFormats(),y=0;y<v.length;y++){var x=v[y];u[x.key]=x;var C=document.createElement("option");C.setAttribute("value",
-x.key);mxUtils.write(C,x.title);d.appendChild(C)}var H=!1;g();b.appendChild(d);mxUtils.br(b);b.appendChild(f);b.appendChild(m);var D=e,E=function(b,c){var l=u[d.value];null!=l.format?(p.value=l.format.width/100,q.value=l.format.height/100,m.style.display="none",f.style.display=""):(f.style.display="none",m.style.display="");l=parseFloat(p.value);if(isNaN(l)||0>=l)p.value=e.width/100;l=parseFloat(q.value);if(isNaN(l)||0>=l)q.value=e.height/100;l=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),
-Math.floor(100*parseFloat(q.value)));"custom"!=d.value&&t.checked&&(l=new mxRectangle(0,0,l.height,l.width));c&&H||l.width==D.width&&l.height==D.height||(D=l,null!=k&&k(D))};mxEvent.addListener(c,"click",function(b){n.checked=!0;E(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;E(b);mxEvent.consume(b)});mxEvent.addListener(p,"blur",E);mxEvent.addListener(p,"click",E);mxEvent.addListener(q,"blur",E);mxEvent.addListener(q,"click",E);mxEvent.addListener(t,"change",E);mxEvent.addListener(n,
-"change",E);mxEvent.addListener(d,"change",function(b){H="custom"==d.value;E(b,!0)});E();return{set:function(b){e=b;g(null,null,!0)},get:function(){return D},widthInput:p,heightInput:q}};
+x.key);mxUtils.write(C,x.title);d.appendChild(C)}var H=!1;g();b.appendChild(d);mxUtils.br(b);b.appendChild(f);b.appendChild(m);var D=e,F=function(b,c){var l=u[d.value];null!=l.format?(p.value=l.format.width/100,q.value=l.format.height/100,m.style.display="none",f.style.display=""):(f.style.display="none",m.style.display="");l=parseFloat(p.value);if(isNaN(l)||0>=l)p.value=e.width/100;l=parseFloat(q.value);if(isNaN(l)||0>=l)q.value=e.height/100;l=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),
+Math.floor(100*parseFloat(q.value)));"custom"!=d.value&&t.checked&&(l=new mxRectangle(0,0,l.height,l.width));c&&H||l.width==D.width&&l.height==D.height||(D=l,null!=k&&k(D))};mxEvent.addListener(c,"click",function(b){n.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(p,"blur",F);mxEvent.addListener(p,"click",F);mxEvent.addListener(q,"blur",F);mxEvent.addListener(q,"click",F);mxEvent.addListener(t,"change",F);mxEvent.addListener(n,
+"change",F);mxEvent.addListener(d,"change",function(b){H="custom"==d.value;F(b,!0)});F();return{set:function(b){e=b;g(null,null,!0)},get:function(){return D},widthInput:p,heightInput:q}};
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}]};
@@ -2134,7 +2135,7 @@ function(){return!1},k.panningHandler.isForcePanningEvent=function(b){return!mxE
this.setDefaultStyle=function(b){try{var d=k.view.getState(b);if(null!=d){var f=b.clone();f.style="";var c=k.getCellStyle(f);b=[];var f=[],e;for(e in d.style)c[e]!=d.style[e]&&(b.push(d.style[e]),f.push(e));for(var l=k.getModel().getStyle(d.cell),g=null!=l?l.split(";"):[],l=0;l<g.length;l++){var m=g[l],p=m.indexOf("=");if(0<=p){e=m.substring(0,p);var q=m.substring(p+1);null!=c[e]&&"none"==q&&(b.push(q),f.push(e))}}k.getModel().isEdge(d.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged",
"keys",f,"values",b,"cells",[d.cell]))}}catch(ba){this.handleError(ba)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var d=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<d.length;c++)0>mxUtils.indexOf(n,d[c])&&n.push(d[c]);var f="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),
l=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["align","verticalAlign"],["opacity"],["html"]];for(c=0;c<l.length;c++)for(e=0;e<l[c].length;e++)n.push(l[c][e]);for(c=0;c<t.length;c++)0>mxUtils.indexOf(n,t[c])&&n.push(t[c]);var m=function(b,d,f,c,e,g,m){c=null!=c?c:k.currentVertexStyle;e=null!=e?e:k.currentEdgeStyle;f=null!=f?f:k.getModel();
-if(m){m=[];for(var F=0;F<b.length;F++)m=m.concat(f.getDescendants(b[F]));b=m}f.beginUpdate();try{for(F=0;F<b.length;F++){var p=b[F],q;if(d)q=["fontSize","fontFamily","fontColor"];else{var v=f.getStyle(p),A=null!=v?v.split(";"):[];q=n.slice();for(var u=0;u<A.length;u++){var J=A[u],x=J.indexOf("=");if(0<=x){var y=J.substring(0,x),N=mxUtils.indexOf(q,y);0<=N&&q.splice(N,1);for(m=0;m<l.length;m++){var D=l[m];if(0<=mxUtils.indexOf(D,y))for(var B=0;B<D.length;B++){var E=mxUtils.indexOf(q,D[B]);0<=E&&q.splice(E,
+if(m){m=[];for(var E=0;E<b.length;E++)m=m.concat(f.getDescendants(b[E]));b=m}f.beginUpdate();try{for(E=0;E<b.length;E++){var p=b[E],q;if(d)q=["fontSize","fontFamily","fontColor"];else{var v=f.getStyle(p),A=null!=v?v.split(";"):[];q=n.slice();for(var u=0;u<A.length;u++){var J=A[u],x=J.indexOf("=");if(0<=x){var y=J.substring(0,x),N=mxUtils.indexOf(q,y);0<=N&&q.splice(N,1);for(m=0;m<l.length;m++){var D=l[m];if(0<=mxUtils.indexOf(D,y))for(var B=0;B<D.length;B++){var F=mxUtils.indexOf(q,D[B]);0<=F&&q.splice(F,
1)}}}}}var Q=f.isEdge(p);m=Q?e:c;for(var C=f.getStyle(p),u=0;u<q.length;u++){var y=q[u],H=m[y];null!=H&&"edgeStyle"!=y&&("shape"!=y||Q)&&(!Q||g||0>mxUtils.indexOf(t,y))&&(C=mxUtils.setStyle(C,y,H))}Editor.simpleLabels&&(C=mxUtils.setStyle(mxUtils.setStyle(C,"html",null),"whiteSpace",null));f.setStyle(p,C)}}finally{f.endUpdate()}return b};k.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){m(d.getProperty("cells"),
!0)});this.insertHandler=m;this.createDivs();this.createUi();this.refresh();var p=mxUtils.bind(this,function(b){null==b&&(b=window.event);return k.isEditing()||null!=b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=p,this.menubarContainer.onmousedown=p,this.toolbarContainer.onselectstart=p,this.toolbarContainer.onmousedown=p,this.diagramContainer.onselectstart=p,this.diagramContainer.onmousedown=p,this.sidebarContainer.onselectstart=p,this.sidebarContainer.onmousedown=
p,this.formatContainer.onselectstart=p,this.formatContainer.onmousedown=p,this.footerContainer.onselectstart=p,this.footerContainer.onmousedown=p,null!=this.tabContainer&&(this.tabContainer.onselectstart=p));!this.editor.chromeless||this.editor.editable?(c=function(b){if(null!=b){var d=mxEvent.getSource(b);if("A"==d.nodeName)for(;null!=d;){if("geHint"==d.className)return!0;d=d.parentNode}}return p(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,
@@ -2142,8 +2143,8 @@ p,this.formatContainer.onselectstart=p,this.formatContainer.onmousedown=p,this.f
function(b){var d=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(b)-d.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(b)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var u=!1,v=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(b,d){return u||v.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(b){32!=b.which||k.isEditing()?
mxEvent.isConsumed(b)||27!=b.keyCode||this.hideDialog(null,!0):(u=!0,this.hoverIcons.reset(),k.container.style.cursor="move",k.isEditing()||mxEvent.getSource(b)!=k.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){k.container.style.cursor="";u=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var y=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return y.apply(this,
arguments)||u||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var x=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(b){return x.apply(this,arguments)||13==b.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxClient.IS_SF&&mxEvent.isShiftDown(b))};var C=k.isZoomWheelEvent;
-k.isZoomWheelEvent=function(){return u||C.apply(this,arguments)};var H=!1,D=null,E=null,M=null,G=mxUtils.bind(this,function(){if(null!=this.toolbar&&H!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=f}b=this.toolbar.fontMenu;f=this.toolbar.sizeMenu;if(null==M)this.toolbar.createTextToolbar();else{for(var c=0;c<M.length;c++)this.toolbar.container.appendChild(M[c]);
-this.toolbar.fontMenu=D;this.toolbar.sizeMenu=E}H=k.cellEditor.isContentEditing();D=b;E=f;M=d}}),K=this,B=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){B.apply(this,arguments);G();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=K.toolbar&&(K.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),K.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},
+k.isZoomWheelEvent=function(){return u||C.apply(this,arguments)};var H=!1,D=null,F=null,M=null,G=mxUtils.bind(this,function(){if(null!=this.toolbar&&H!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=f}b=this.toolbar.fontMenu;f=this.toolbar.sizeMenu;if(null==M)this.toolbar.createTextToolbar();else{for(var c=0;c<M.length;c++)this.toolbar.container.appendChild(M[c]);
+this.toolbar.fontMenu=D;this.toolbar.sizeMenu=F}H=k.cellEditor.isContentEditing();D=b;F=f;M=d}}),K=this,B=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){B.apply(this,arguments);G();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=K.toolbar&&(K.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),K.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},
0))};mxEvent.addListener(k.cellEditor.textarea,"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var L=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{L.apply(this,arguments),G()}catch(Q){K.handleError(Q)}};k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(da){}var O=
k.fireMouseEvent;k.fireMouseEvent=function(b,d,f){b==mxEvent.MOUSE_DOWN&&this.container.focus();O.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,f){this.menus.createPopupMenu(b,d,f)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(b){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,
function(b,d){var f=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(f.push(d.getProperty("terminal")),window.setTimeout(function(){null!=K.hoverIcons&&K.hoverIcons.update(k.view.getState(f[f.length-1]))},0));m(f)});this.addListener("styleChanged",mxUtils.bind(this,function(b,c){var e=c.getProperty("cells"),l=!1,g=!1;if(0<e.length)for(var m=0;m<e.length&&(l=k.getModel().isVertex(e[m])||l,!(g=k.getModel().isEdge(e[m])||g)||!l);m++);else g=l=!0;for(var e=c.getProperty("keys"),p=c.getProperty("values"),
@@ -2190,9 +2191,9 @@ EditorUi.prototype.initClipboard=function(){var b=this,c=mxClipboard.cut;mxClipb
null;c.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):g=e.apply(this,arguments);b.updatePasteActionStates();return g};var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);b.updatePasteActionStates()};var g=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(c,e){g.apply(this,arguments);b.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var b=this.editor.graph;b.timerAutoScroll=!0;b.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((b.container.offsetWidth-34)/b.view.scale)),Math.max(0,Math.round((b.container.offsetHeight-34)/b.view.scale)))};b.view.getBackgroundPageBounds=function(){var b=this.graph.getPageLayout(),d=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+b.x*d.width),this.scale*(this.translate.y+b.y*d.height),this.scale*b.width*d.width,
-this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,f){b=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,b.width*d.width,b.height*d.height)};var c=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(d,f,c,e){if(null!=b.container&&!b.isViewer()){c=null!=c?c:0;e=null!=e?e:0;var l=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),g=mxUtils.hasScrollbars(b.container),m=b.view.translate,F=b.view.scale,k=mxRectangle.fromRectangle(l);
-k.x=k.x/F-m.x;k.y=k.y/F-m.y;k.width/=F;k.height/=F;var m=b.container.scrollTop,p=b.container.scrollLeft,q=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)q+=3;var n=b.container.offsetWidth-q,q=b.container.offsetHeight-q;d=d?Math.max(.3,Math.min(f||1,n/k.width)):F;f=(n-d*k.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(q-d*k.height)/this.lightboxVerticalDivider/d;g&&(f=Math.max(f,0),v=Math.max(v,0));if(g||l.width<n||l.height<q)b.view.scaleAndTranslate(d,Math.floor(f-
-k.x),Math.floor(v-k.y)),b.container.scrollTop=m*d/F,b.container.scrollLeft=p*d/F;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/F),Math.floor(l.y+e/F))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,f){b=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,b.width*d.width,b.height*d.height)};var c=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(d,f,c,e){if(null!=b.container&&!b.isViewer()){c=null!=c?c:0;e=null!=e?e:0;var l=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),g=mxUtils.hasScrollbars(b.container),m=b.view.translate,E=b.view.scale,k=mxRectangle.fromRectangle(l);
+k.x=k.x/E-m.x;k.y=k.y/E-m.y;k.width/=E;k.height/=E;var m=b.container.scrollTop,p=b.container.scrollLeft,q=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)q+=3;var n=b.container.offsetWidth-q,q=b.container.offsetHeight-q;d=d?Math.max(.3,Math.min(f||1,n/k.width)):E;f=(n-d*k.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(q-d*k.height)/this.lightboxVerticalDivider/d;g&&(f=Math.max(f,0),v=Math.max(v,0));if(g||l.width<n||l.height<q)b.view.scaleAndTranslate(d,Math.floor(f-
+k.x),Math.floor(v-k.y)),b.container.scrollTop=m*d/E,b.container.scrollLeft=p*d/E;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/E),Math.floor(l.y+e/E))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(d){b.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(d){b.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var g=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.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=b.isViewer()?"0":"50%";mxClient.IS_IE||mxClient.IS_IE11?(this.chromelessToolbar.style.backgroundColor="#ffffff",this.chromelessToolbar.style.border="3px solid black"):this.chromelessToolbar.style.backgroundColor="#000000";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","16px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,
"transition","opacity 600ms ease-in-out");var n=mxUtils.bind(this,function(){var d=mxUtils.getCurrentStyle(b.container);b.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=d?parseInt(d["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",n);n();var t=0,n=mxUtils.bind(this,function(b,d,f){t++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight=
@@ -2209,8 +2210,8 @@ Editor.layersImage,mxResources.get("layers")),C=b.getModel();C.addListener(mxEve
function(d){g.fullscreenBtn.url?b.openLink(g.fullscreenBtn.url):b.openLink(window.location.href);mxEvent.consume(d)}),Editor.fullscreenImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(g.closeBtn&&window.self===window.top||b.lightbox&&("1"==urlParams.close||this.container!=document.body))&&n(mxUtils.bind(this,function(b){"1"==urlParams.close||g.closeBtn?window.close():(this.destroy(),mxEvent.consume(b))}),Editor.closeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display=
"none";b.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");b.container.appendChild(this.chromelessToolbar);mxEvent.addListener(b.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||y(30),v())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",
mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hideTooltip();mxEvent.isShiftDown(d)?v():y(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?v():y(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||y(30)}));var D=b.getTolerance();b.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,f){this.startX=
-f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<D&&Math.abs(this.scrollTop-b.container.scrollTop)<D&&Math.abs(this.startX-f.getGraphX())<D&&Math.abs(this.startY-f.getGraphY())<D&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?v():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var E=
-b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}E.apply(this,arguments)};if(!b.isViewer()){var M=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),f=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
+f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<D&&Math.abs(this.scrollTop-b.container.scrollTop)<D&&Math.abs(this.startX-f.getGraphX())<D&&Math.abs(this.startY-f.getGraphY())<D&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?v():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var F=
+b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}F.apply(this,arguments)};if(!b.isViewer()){var M=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),f=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
f.x+d.width*c.width),l=Math.ceil(2*f.y+d.height*c.height),g=b.minimumGraphSize;if(null==g||g.width!=e||g.height!=l)b.minimumGraphSize=new mxRectangle(0,0,e,l);e=f.x-d.x*c.width;f=f.y-d.y*c.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==f?M.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=b.view.translate.x,c=b.view.translate.y,b.view.setTranslate(e,f),b.container.scrollLeft+=Math.round((e-d)*b.view.scale),b.container.scrollTop+=Math.round((f-
c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var G=b.view.getBackgroundPane(),K=b.view.getDrawPane();b.cumulativeZoomFactor=1;var B=null,L=null,O=null,da=null,N=null,Q=function(d){null!=B&&window.clearTimeout(B);window.setTimeout(function(){if(!b.isMouseDown||da)B=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
"transform-origin",null),mxUtils.setPrefixedStyle(b.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=""),b.view.getDecoratorPane().style.opacity="",b.view.getOverlayPane().style.opacity="");var d=new mxPoint(b.container.scrollLeft,b.container.scrollTop),
@@ -2331,7 +2332,7 @@ function(){var b=p.apply(this,arguments);if(this.graph.pageVisible){for(var d=[]
function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var q=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=q.apply(this,arguments),f=new mxDictionary,c=[],e=0;e<d.length;e++){var l=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&
this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==l||f.get(l)||(f.put(l,!0),c.push(l))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,f,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));
u.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var v=new mxRubberband(this);this.getRubberband=function(){return v};var y=(new Date).getTime(),x=0,C=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;C.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var H=
-this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&H.apply(this,arguments)};var D=this.isToggleEvent;this.isToggleEvent=function(b){return D.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var E=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return E.apply(this,
+this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&H.apply(this,arguments)};var D=this.isToggleEvent;this.isToggleEvent=function(b){return D.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var F=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return F.apply(this,
arguments)&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isControlDown(b.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var M=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(M=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=M)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var G=this.click;this.click=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);if(this.isEnabled()&&!d||b.isConsumed())return G.apply(this,arguments);var f=d?b.sourceState.cell:b.getCell();null!=f&&(f=this.getClickableLinkForCell(f),null!=f&&(this.isCustomLink(f)?
this.customLinkClicked(f):this.openLink(f)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var K=this.tooltipHandler.show;this.tooltipHandler.show=function(){K.apply(this,arguments);if(null!=this.div)for(var b=this.div.getElementsByTagName("a"),d=0;d<b.length;d++)null!=b[d].getAttribute("href")&&null==b[d].getAttribute("target")&&b[d].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};
@@ -2525,11 +2526,11 @@ d,f,c){d=null!=d?d:0;f=null!=f?f:0;var e=new mxCodec(b.ownerDocument),g=new mxGr
p&&(b=this.moveCells(p,d,f,!1,this.getDefaultParent()),l[g.getChildAt(g.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,m,l),this.updateCustomLinks(l,b),c)){this.isGridEnabled()&&(d=this.snap(d),f=this.snap(f));var q=this.getBoundingBoxFromGeometry(b,!0);null!=q&&this.moveCells(b,d-q.x,f-q.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},f=this.cloneCells(b,null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],
!0);for(var g=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<f.length;e++){l.add(k,f[e]);var m=this.view.getState(b[e]);if(null!=m){var p=this.getCellGeometry(f[e]);null!=p&&p.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&(p.offset=null,p.relative=!1,p.x=m.x/m.view.scale-m.view.translate.x,p.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),f);return g.encode(l)};Graph.prototype.isSwimlane=
function(b,d){if(null!=b&&this.model.getParent(b)!=this.model.getRoot()&&!this.model.isEdge(b)){var f=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE];return f==mxConstants.SHAPE_SWIMLANE||"table"==f}return!1};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=function(b){var f=this.model.getParent(b);if(null!=f){var c=this.getCurrentCellStyle(f);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==f||!this.isTable(f))};var f=Graph.prototype.splitEdge;
-Graph.prototype.splitEdge=function(b,d,c,e,g,l,k,m){null==m&&(m=this.model.getParent(b),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=f.apply(this,[b,d,c,e,g,l,k,m]);this.model.setValue(c,"");var p=this.getChildCells(c,!0);for(d=0;d<p.length;d++){var q=this.getCellGeometry(p[d]);null!=q&&q.relative&&0<q.x&&this.model.remove(p[d])}var F=this.getChildCells(b,!0);for(d=0;d<F.length;d++)q=this.getCellGeometry(F[d]),null!=q&&q.relative&&
-0>=q.x&&this.model.remove(F[d]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[c]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[c]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,mxConstants.NONE,[b]);var la=this.model.getTerminal(c,!1);if(null!=la){var v=this.getCurrentCellStyle(la);null!=v&&"1"==v.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,
+Graph.prototype.splitEdge=function(b,d,c,e,g,l,k,m){null==m&&(m=this.model.getParent(b),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=f.apply(this,[b,d,c,e,g,l,k,m]);this.model.setValue(c,"");var p=this.getChildCells(c,!0);for(d=0;d<p.length;d++){var q=this.getCellGeometry(p[d]);null!=q&&q.relative&&0<q.x&&this.model.remove(p[d])}var E=this.getChildCells(b,!0);for(d=0;d<E.length;d++)q=this.getCellGeometry(E[d]),null!=q&&q.relative&&
+0>=q.x&&this.model.remove(E[d]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[c]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[c]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,mxConstants.NONE,[b]);var la=this.model.getTerminal(c,!1);if(null!=la){var v=this.getCurrentCellStyle(la);null!=v&&"1"==v.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,
null,[b]),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(b,d,f){if(d||f)l.apply(this,arguments);else{var c=this.getSelectionCell(),e=null,g=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(g.push(d),d==c)e=g.length-1;else if(b&&null==c&&0<g.length||null!=e&&
b&&g.length>e||!b&&0<e)return;for(var f=0;f<this.model.getChildCount(d);f++)k(this.model.getChildAt(d,f))});k(this.model.root);0<g.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),g.length):0,this.setSelectionCell(g[e]))}};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=function(b,d,f,c,e,g,l){l=null!=l?l:{};if(this.isTable(e)){for(var k=[],p=0;p<b.length;p++)this.isTable(b[p])?k=k.concat(this.model.getChildCells(b[p],!0).reverse()):k.push(b[p]);b=k}this.model.beginUpdate();try{k=[];for(p=0;p<
-b.length;p++)if(null!=e&&this.isTableRow(b[p])){var q=this.model.getParent(b[p]),F=this.getCellGeometry(b[p]);this.isTable(q)&&k.push(q);if(null!=q&&null!=F&&this.isTable(q)&&this.isTable(e)&&(c||q!=e)){if(!c){var v=this.getCellGeometry(q);null!=v&&(v=v.clone(),v.height-=F.height,this.model.setGeometry(q,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=F.height,this.model.setGeometry(e,v));var la=this.model.getChildCells(e,!0);if(0<la.length){b[p]=c?this.cloneCell(b[p]):b[p];var u=this.model.getChildCells(b[p],
+b.length;p++)if(null!=e&&this.isTableRow(b[p])){var q=this.model.getParent(b[p]),E=this.getCellGeometry(b[p]);this.isTable(q)&&k.push(q);if(null!=q&&null!=E&&this.isTable(q)&&this.isTable(e)&&(c||q!=e)){if(!c){var v=this.getCellGeometry(q);null!=v&&(v=v.clone(),v.height-=E.height,this.model.setGeometry(q,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=E.height,this.model.setGeometry(e,v));var la=this.model.getChildCells(e,!0);if(0<la.length){b[p]=c?this.cloneCell(b[p]):b[p];var u=this.model.getChildCells(b[p],
!0),n=this.model.getChildCells(la[0],!0),A=n.length-u.length;if(0<A)for(var x=0;x<A;x++){var J=this.cloneCell(u[u.length-1]);null!=J&&(J.value="",this.model.add(b[p],J))}else if(0>A)for(x=0;x>A;x--)this.model.remove(u[u.length+x-1]);u=this.model.getChildCells(b[p],!0);for(x=0;x<n.length;x++){var P=this.getCellGeometry(n[x]),ta=this.getCellGeometry(u[x]);null!=P&&null!=ta&&(ta=ta.clone(),ta.width=P.width,this.model.setGeometry(u[x],ta))}}}}for(var t=m.apply(this,arguments),p=0;p<k.length;p++)!c&&this.model.contains(k[p])&&
0==this.model.getChildCount(k[p])&&this.model.remove(k[p]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),t)}finally{this.model.endUpdate()}return t};var p=Graph.prototype.removeCells;Graph.prototype.removeCells=function(b,d){var f=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),g=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(g)?0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,
g)&&f.push(g):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(g=this.model.getParent(b[c]),0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,g))){for(var l=this.model.getChildCells(g,!0),k=0,m=0;m<l.length;m++)0<=mxUtils.indexOf(b,l[m])&&k++;k==l.length&&f.push(g)}f.push(b[c])}f=p.apply(this,[f,d])}finally{this.model.endUpdate()}return f};Graph.prototype.updateCustomLinks=function(b,d,f){f=null!=f?f:new Graph;for(var c=0;c<d.length;c++)null!=d[c]&&f.updateCustomLinksForCell(b,d[c],f)};Graph.prototype.updateCustomLinksForCell=
@@ -2539,7 +2540,7 @@ function(b){if(null!=b){var d=this.getCurrentCellStyle(b),d=mxUtils.getValue(d,m
Graph.prototype.isValidDropTarget=function(b,d,f){for(var c=this.getCurrentCellStyle(b),e=!0,g=!0,l=0;l<d.length&&g;l++)e=e&&this.isTable(d[l]),g=g&&this.isTableRow(d[l]);return("1"!=mxUtils.getValue(c,"part","0")||this.isContainer(b))&&"0"!=mxUtils.getValue(c,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||g||e)&&!this.isCellLocked(b)};Graph.prototype.createGroupCell=function(){var b=mxGraph.prototype.createGroupCell.apply(this,
arguments);b.setStyle("group");return b};Graph.prototype.isExtendParentsOnAdd=function(b){var d=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(d&&null!=b&&null!=this.layoutManager){var f=this.model.getParent(b);null!=f&&(f=this.layoutManager.getLayout(f),null!=f&&f.constructor==mxStackLayout&&(d=!1))}return d};Graph.prototype.getPreferredSizeForCell=function(b){var d=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=d&&(d.width+=10,d.height+=4,this.gridEnabled&&
(d.width=this.snap(d.width),d.height=this.snap(d.height)));return d};Graph.prototype.turnShapes=function(b,d){var f=this.getModel(),c=[];f.beginUpdate();try{for(var e=0;e<b.length;e++){var g=b[e];if(f.isEdge(g)){var l=f.getTerminal(g,!0),k=f.getTerminal(g,!1);f.setTerminal(g,k,!0);f.setTerminal(g,l,!1);var m=f.getGeometry(g);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var p=m.getTerminalPoint(!0),q=m.getTerminalPoint(!1);m.setTerminalPoint(p,!1);m.setTerminalPoint(q,!0);f.setGeometry(g,
-m);var F=this.view.getState(g),v=this.view.getState(l),u=this.view.getState(k);if(null!=F){var n=null!=v?this.getConnectionConstraint(F,v,!0):null,la=null!=u?this.getConnectionConstraint(F,u,!1):null;this.setConnectionConstraint(g,l,!0,la);this.setConnectionConstraint(g,k,!1,n);var A=mxUtils.getValue(F.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(F.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
+m);var E=this.view.getState(g),v=this.view.getState(l),u=this.view.getState(k);if(null!=E){var n=null!=v?this.getConnectionConstraint(E,v,!0):null,la=null!=u?this.getConnectionConstraint(E,u,!1):null;this.setConnectionConstraint(g,l,!0,la);this.setConnectionConstraint(g,k,!1,n);var A=mxUtils.getValue(E.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(E.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
A,[g])}c.push(g)}}else if(f.isVertex(g)&&(m=this.getCellGeometry(g),null!=m)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){m=m.clone();m.x+=m.width/2-m.height/2;m.y+=m.height/2-m.width/2;var x=m.width;m.width=m.height;m.height=x;f.setGeometry(g,m)}var J=this.view.getState(g);if(null!=J){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],y=mxUtils.getValue(J.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);
this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,y)+(d?-1:1),t.length)],[g])}c.push(g)}}}finally{f.endUpdate()}return c};Graph.prototype.stencilHasPlaceholders=function(b){if(null!=b&&null!=b.fgNode)for(b=b.fgNode.firstChild;null!=b;){if("text"==b.nodeName&&"1"==b.getAttribute("placeholders"))return!0;b=b.nextSibling}return!1};var q=Graph.prototype.processChange;Graph.prototype.processChange=function(b){if(b instanceof mxGeometryChange&&(this.isTableCell(b.cell)||this.isTableRow(b.cell))&&
(null==b.previous&&null!=b.geometry||null!=b.previous&&!b.previous.equals(b.geometry))){var d=b.cell;this.isTableCell(d)&&(d=this.model.getParent(d));this.isTableRow(d)&&(d=this.model.getParent(d));var f=this.view.getState(d);null!=f&&null!=f.shape&&(this.view.invalidate(d),f.shape.bounds=null)}q.apply(this,arguments);b instanceof mxValueChange&&null!=b.cell&&null!=b.cell.value&&"object"==typeof b.cell.value&&this.invalidateDescendantsWithPlaceholders(b.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=
@@ -2564,18 +2565,18 @@ mouseMove:function(b,d){if(l.isMouseDown){if(null!=this.currentLink){var f=Math.
d.getGraphX(),d.getGraphY()))&&this.updateCurrentState(d))}},mouseUp:function(b,c){for(var e=c.getSource(),k=c.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-l.container.scrollLeft)<g&&Math.abs(this.scrollTop-l.container.scrollTop)<g&&(null==c.sourceState||!c.isSource(c.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&(null!=this.currentLink?(e=l.isBlankLink(this.currentLink),
"data:"!==this.currentLink.substring(0,5)&&e||null==d||d(k,this.currentLink),mxEvent.isConsumed(k)||(k=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(k)?"_blank":e?l.linkTarget:"_top",l.openLink(this.currentLink,k),c.consume())):null!=f&&!c.isConsumed()&&Math.abs(this.scrollLeft-l.container.scrollLeft)<g&&Math.abs(this.scrollTop-l.container.scrollTop)<g&&Math.abs(this.startX-c.getGraphX())<g&&Math.abs(this.startY-c.getGraphY())<g&&f(c.getEvent()));this.clear()},activate:function(b){this.currentLink=
l.getAbsoluteUrl(l.getLinkForCell(b.cell));null!=this.currentLink&&(this.currentTarget=l.getLinkTargetForCell(b.cell),l.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(b))},clear:function(){null!=l.container&&(l.container.style.cursor=e);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=l.tooltipHandler&&l.tooltipHandler.hide()}};l.click=function(b){};l.addMouseListener(k);mxEvent.addListener(document,"mouseleave",
-function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,d){b=null!=b?b:this.getSelectionCells();d=null!=d?d:!0;for(var f=0;f<b.length;f++)this.isTableCell(b[f])&&(b[f]=this.model.getParent(b[f]));b=this.model.getTopmostCells(b);var c=this.getModel(),e=this.gridSize,g=[];c.beginUpdate();try{for(var l={},k=this.createCellLookup(b),m=this.cloneCells(b,!1,l,!0),f=0;f<b.length;f++){var p=c.getParent(b[f]);if(null!=p){var q=this.moveCells([m[f]],e,e,!1)[0];g.push(q);if(d)c.add(p,m[f]);else{var F=
-p.getIndex(b[f]);c.add(p,m[f],F+1)}if(this.isTable(p)){var v=this.getCellGeometry(m[f]),u=this.getCellGeometry(p);null!=v&&null!=u&&(u=u.clone(),u.height+=v.height,c.setGeometry(p,u))}}else g.push(m[f])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return g};Graph.prototype.insertImage=function(b,d,f){if(null!=b&&null!=this.cellEditor.textarea){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),
+function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,d){b=null!=b?b:this.getSelectionCells();d=null!=d?d:!0;for(var f=0;f<b.length;f++)this.isTableCell(b[f])&&(b[f]=this.model.getParent(b[f]));b=this.model.getTopmostCells(b);var c=this.getModel(),e=this.gridSize,g=[];c.beginUpdate();try{for(var l={},k=this.createCellLookup(b),m=this.cloneCells(b,!1,l,!0),f=0;f<b.length;f++){var p=c.getParent(b[f]);if(null!=p){var q=this.moveCells([m[f]],e,e,!1)[0];g.push(q);if(d)c.add(p,m[f]);else{var E=
+p.getIndex(b[f]);c.add(p,m[f],E+1)}if(this.isTable(p)){var v=this.getCellGeometry(m[f]),u=this.getCellGeometry(p);null!=v&&null!=u&&(u=u.clone(),u.height+=v.height,c.setGeometry(p,u))}}else g.push(m[f])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return g};Graph.prototype.insertImage=function(b,d,f){if(null!=b&&null!=this.cellEditor.textarea){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),
e=[],g=0;g<c.length;g++)e.push(c[g]);document.execCommand("insertimage",!1,b);b=this.cellEditor.textarea.getElementsByTagName("img");if(b.length==e.length+1)for(g=b.length-1;0<=g;g--)if(0==g||b[g]!=e[g-1]){b[g].setAttribute("width",d);b[g].setAttribute("height",f);break}}};Graph.prototype.insertLink=function(b){if(null!=this.cellEditor.textarea)if(0==b.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var d=this.cellEditor.textarea.getElementsByTagName("a"),f=[],c=0;c<d.length;c++)f.push(d[c]);
document.execCommand("createlink",!1,mxUtils.trim(b));d=this.cellEditor.textarea.getElementsByTagName("a");if(d.length==f.length+1)for(c=d.length-1;0<=c;c--)if(d[c]!=f[c-1]){for(d=d[c].getElementsByTagName("a");0<d.length;){for(f=d[0].parentNode;null!=d[0].firstChild;)f.insertBefore(d[0].firstChild,d[0]);f.removeChild(d[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(b))};Graph.prototype.isCellResizable=function(b){var d=mxGraph.prototype.isCellResizable.apply(this,arguments),f=
this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(f,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==f[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var f=[],c=null,e=null,g=0;g<d.length;g++)if(this.getModel().isVertex(d[g])){var l=this.view.getState(d[g]);if(null!=l){var k=b?l.getCenterX():l.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):
k;f.push(l)}}if(2<f.length){f.sort(function(d,f){return b?d.x-f.x:d.y-f.y});l=this.view.translate;k=this.view.scale;e=e/k-(b?l.x:l.y);c=c/k-(b?l.x:l.y);this.getModel().beginUpdate();try{for(var m=(c-e)/(f.length-1),c=e,g=1;g<f.length-1;g++){var p=this.view.getState(this.model.getParent(f[g].cell)),q=this.getCellGeometry(f[g].cell),c=c+m;null!=q&&null!=p&&(q=q.clone(),b?q.x=Math.round(c-q.width/2)-p.origin.x:q.y=Math.round(c-q.height/2)-p.origin.y,this.getModel().setGeometry(f[g].cell,q))}}finally{this.getModel().endUpdate()}}}return d};
Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=
-function(b,d,f,c,e,g,l,k,m,p,q,F,v,u){var n=null;if(null!=u)for(n=new mxDictionary,q=0;q<u.length;q++)n.put(u[q],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;f=null!=f?f:0;e=null!=e?e:!0;g=null!=g?g:!0;l=null!=l?l:!0;var A="page"==v?this.view.getBackgroundPageBounds():g&&null==n||c||"diagram"==v?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(A=
+function(b,d,f,c,e,g,l,k,m,p,q,E,v,u){var n=null;if(null!=u)for(n=new mxDictionary,q=0;q<u.length;q++)n.put(u[q],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;f=null!=f?f:0;e=null!=e?e:!0;g=null!=g?g:!0;l=null!=l?l:!0;var A="page"==v?this.view.getBackgroundPageBounds():g&&null==n||c||"diagram"==v?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(A=
mxRectangle.fromRectangle(A),A.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*x,(this.view.translate.y+this.backgroundImage.y)*x,this.backgroundImage.width*x,this.backgroundImage.height*x)));if(null==A)throw Error(mxResources.get("drawingEmpty"));var J=mxUtils.createXmlDocument(),t=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"svg"):J.createElement("svg");null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==J.createElementNS?
(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/x;var y=Math.max(1,Math.ceil(A.width*b)+2*f)+(p?5:0),I=Math.max(1,Math.ceil(A.height*b)+2*f)+(p?5:0);t.setAttribute("version","1.1");t.setAttribute("width",y+"px");t.setAttribute("height",I+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+y+" "+I);J.appendChild(t);var D=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,
"g"):J.createElement("g");t.appendChild(D);var B=this.createSvgCanvas(D);B.foOffset=e?-.5:0;B.textOffset=e?-.5:0;B.imageOffset=e?-.5:0;B.translate(Math.floor(f/d-A.x/x),Math.floor(f/d-A.y/x));var aa=document.createElement("div"),la=B.getAlternateText;B.getAlternateText=function(b,d,f,c,e,g,l,k,m,p,q,z,ua){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?g=g.innerText:(aa.innerHTML=g,g=mxUtils.extractTextWithWhitespace(aa.childNodes));for(var Wa=Math.ceil(2*c/this.state.fontSize),ra=[],Ca=0,
-F=0;(0==Wa||Ca<Wa)&&F<g.length;){var Ua=g.charCodeAt(F);if(10==Ua||13==Ua){if(0<Ca)break}else ra.push(g.charAt(F)),255>Ua&&Ca++;F++}ra.length<g.length&&1<g.length-ra.length&&(g=mxUtils.trim(ra.join(""))+"...");return g}catch(gb){return la.apply(this,arguments)}else return la.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){d=x/d;var P=this.view.translate,ta=new mxRectangle((N.x+P.x)*d,(N.y+P.y)*d,N.width*d,N.height*d);mxUtils.intersects(A,ta)&&B.image(N.x+P.x,N.y+P.y,N.width,N.height,
+E=0;(0==Wa||Ca<Wa)&&E<g.length;){var Ua=g.charCodeAt(E);if(10==Ua||13==Ua){if(0<Ca)break}else ra.push(g.charAt(E)),255>Ua&&Ca++;E++}ra.length<g.length&&1<g.length-ra.length&&(g=mxUtils.trim(ra.join(""))+"...");return g}catch(gb){return la.apply(this,arguments)}else return la.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){d=x/d;var P=this.view.translate,ta=new mxRectangle((N.x+P.x)*d,(N.y+P.y)*d,N.width*d,N.height*d);mxUtils.intersects(A,ta)&&B.image(N.x+P.x,N.y+P.y,N.width,N.height,
N.src,!0)}B.scale(b);B.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ba=k.drawCellState,W=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var f=W.apply(this,arguments);return null==f||b.view.graph.isCustomLink(f)?null:f};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var f=b.view.graph,c=null!=n?n.get(b.cell):f.isCellSelected(b.cell),e=f.model.getParent(b.cell);!(g&&null==n||c)&&null!=e;)c=null!=n?
n.get(e):f.isCellSelected(e),e=f.model.getParent(e);(g&&null==n||c)&&ba.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),B);this.updateSvgLinks(t,m,!0);this.addForeignObjectWarning(B,t);return t}finally{u&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(b,d){if("0"!=urlParams["svg-warning"]&&0<d.getElementsByTagName("foreignObject").length){var f=b.createElement("switch"),c=b.createElement("g");c.setAttribute("requiredFeatures",
"http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||d.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 g=b.createElement("text");g.setAttribute("text-anchor",
@@ -2584,8 +2585,8 @@ d):f&&this.isCustomLink(e)&&b[c].setAttribute("href","javascript:void(0);"))}};G
this.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;null!=b&&b==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(b=this.cellEditor.textarea.firstChild);return b};Graph.prototype.getParentByName=function(b,d,f){for(;null!=b&&b.nodeName!=d;){if(b==f)return null;b=b.parentNode}return b};Graph.prototype.getParentByNames=function(b,d,f){for(;null!=b&&!(0<=mxUtils.indexOf(d,
b.nodeName));){if(b==f)return null;b=b.parentNode}return b};Graph.prototype.selectNode=function(b){var d=null;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){var f=document.createRange();f.selectNode(b);d.removeAllRanges();d.addRange(f)}}else(d=document.selection)&&"Control"!=d.type&&(b=d.createRange(),b.collapse(!0),f=d.createRange(),f.setEndPoint("StartToStart",b),f.select())};Graph.prototype.deleteCells=function(b,d){var f=null;if(null!=b&&0<b.length){this.model.beginUpdate();
try{for(var c=0;c<b.length;c++){var e=this.model.getParent(b[c]);if(this.isTable(e)){var g=this.getCellGeometry(b[c]),l=this.getCellGeometry(e);null!=g&&null!=l&&(l=l.clone(),l.height-=g.height,this.model.setGeometry(e,l))}}var k=this.selectParentAfterDelete?this.model.getParents(b):null;this.removeCells(b,d)}finally{this.model.endUpdate()}if(null!=k)for(f=[],c=0;c<k.length;c++)this.model.contains(k[c])&&(this.model.isVertex(k[c])||this.model.isEdge(k[c]))&&f.push(k[c])}return f};Graph.prototype.insertTableColumn=
-function(b,d){var f=this.getModel();f.beginUpdate();try{var c=b,e=0;if(this.isTableCell(b))var g=f.getParent(b),c=f.getParent(g),e=mxUtils.indexOf(f.getChildCells(g,!0),b);else this.isTableRow(b)?c=f.getParent(b):b=f.getChildCells(c,!0)[0],d||(e=f.getChildCells(b,!0).length-1);for(var l=f.getChildCells(c,!0),k=Graph.minTableColumnWidth,g=0;g<l.length;g++){var m=f.getChildCells(l[g],!0)[e],p=f.cloneCell(m,!1),q=this.getCellGeometry(p);p.value=null;if(null!=q){var k=q.width,F=this.getCellGeometry(l[g]);
-null!=F&&(q.height=F.height)}f.add(l[g],p,e+(d?0:1))}var v=this.getCellGeometry(c);null!=v&&(v=v.clone(),v.width+=k,f.setGeometry(c,v))}finally{f.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var f=null,f="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(f,!0);0==c.length?d.remove(f):(f==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=function(b,d){var f=this.getModel();f.beginUpdate();
+function(b,d){var f=this.getModel();f.beginUpdate();try{var c=b,e=0;if(this.isTableCell(b))var g=f.getParent(b),c=f.getParent(g),e=mxUtils.indexOf(f.getChildCells(g,!0),b);else this.isTableRow(b)?c=f.getParent(b):b=f.getChildCells(c,!0)[0],d||(e=f.getChildCells(b,!0).length-1);for(var l=f.getChildCells(c,!0),k=Graph.minTableColumnWidth,g=0;g<l.length;g++){var m=f.getChildCells(l[g],!0)[e],p=f.cloneCell(m,!1),q=this.getCellGeometry(p);p.value=null;if(null!=q){var k=q.width,E=this.getCellGeometry(l[g]);
+null!=E&&(q.height=E.height)}f.add(l[g],p,e+(d?0:1))}var v=this.getCellGeometry(c);null!=v&&(v=v.clone(),v.width+=k,f.setGeometry(c,v))}finally{f.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var f=null,f="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(f,!0);0==c.length?d.remove(f):(f==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=function(b,d){var f=this.getModel();f.beginUpdate();
try{var c=null,e=b;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var c=e,g=f.getChildCells(c,!0),e=g[d?0:g.length-1];else c=f.getParent(e);var l=c.getIndex(e),e=f.cloneCell(e,!1);e.value=null;f.add(c,e,l+(d?0:1))}finally{f.endUpdate()}};Graph.prototype.insertTableRow=function(b,d){var f=this.getModel();f.beginUpdate();try{var c=b,e=b;if(this.isTableCell(b))e=f.getParent(b),c=f.getParent(e);else if(this.isTableRow(b))c=f.getParent(b);else var g=f.getChildCells(c,!0),e=g[d?0:g.length-1];
var l=f.getChildCells(e,!0),k=c.getIndex(e),e=f.cloneCell(e,!1);e.value=null;var m=this.getCellGeometry(e);if(null!=m){for(g=0;g<l.length;g++){b=f.cloneCell(l[g],!1);e.insert(b);b.value=null;var p=this.getCellGeometry(b);null!=p&&(p.height=m.height)}f.add(c,e,k+(d?0:1));var q=this.getCellGeometry(c);null!=q&&(q=q.clone(),q.height+=m.height,f.setGeometry(c,q))}}finally{f.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();d.beginUpdate();try{var f=b,c=b;this.isTableCell(b)&&
(c=d.getParent(b));this.isTableRow(c)&&(f=d.getParent(c));var e=d.getChildCells(f,!0);if(0==e.length)d.remove(f);else{this.isTableRow(c)||(c=e[0]);var g=d.getChildCells(c,!0);if(1>=g.length)d.remove(f);else{var l=g.length-1;this.isTableCell(b)&&(l=mxUtils.indexOf(g,b));for(c=b=0;c<e.length;c++){var k=d.getChildCells(e[c],!0)[l];d.remove(k);var m=this.getCellGeometry(k);null!=m&&(b=Math.max(b,m.width))}var p=this.getCellGeometry(f);null!=p&&(p=p.clone(),p.width-=b,d.setGeometry(f,p))}}}finally{d.endUpdate()}};
@@ -2617,7 +2618,7 @@ b){var f=b.view.scale;this.bounds=mxRectangle.fromRectangle(b);if(0==this.bounds
4)/f)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/f)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/f)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*f);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/f)+(this.textarea.offsetWidth-this.textarea.clientWidth)+
"px",this.bounds.width=parseInt(this.textarea.style.width)*f);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("+f+","+f+")")}else this.textarea.style.height="",this.textarea.style.overflow="",D.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(b,d){if("0"==mxUtils.getValue(b.style,"html",
"0"))return mxCellEditorGetInitialValue.apply(this,arguments);var f=this.graph.getEditingValue(b.cell,d);"1"==mxUtils.getValue(b.style,"nl2Br","1")&&(f=f.replace(/\n/g,"<br/>"));return f=this.graph.sanitizeHtml(f,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(b){if("0"==mxUtils.getValue(b.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var d=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return d=
-"1"==mxUtils.getValue(b.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var E=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();E.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(la){}};var M=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();
+"1"==mxUtils.getValue(b.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var F=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();F.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(la){}};var M=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();
try{M.apply(this,arguments),""==d&&this.graph.isCellDeletable(b.cell)&&0==this.graph.model.getChildCount(b.cell)&&this.graph.isTransparentState(b)&&this.graph.removeCells([b.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(b){var d=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=d&&d!=mxConstants.NONE||!(null!=b.cell.geometry&&0<b.cell.geometry.width)||0==mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)&&0!=
mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)||(d=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,null));d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getMinimumSize=function(b){var d=this.graph.getView().scale;return new mxRectangle(0,0,null==b.text?30:b.text.size*d+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget=function(b,d){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&
!mxEvent.isAltDown(d.getEvent)};mxGraphView.prototype.formatUnitText=function(b){return b?c(b,this.unit):b};mxGraphHandler.prototype.updateHint=function(d){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=b(),this.graph.container.appendChild(this.hint));var f=this.graph.view.translate,e=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/e-f.x);f=this.roundLength((this.bounds.y+this.currentDy)/e-f.y);e=this.graph.view.unit;this.hint.innerHTML=
@@ -2630,11 +2631,11 @@ var O=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototyp
mxVertexHandler.prototype.isParentHighlightVisible=function(){return da.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var N=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||N.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var b=0;this.graph.isTableRow(this.state.cell)?
b=1:this.graph.isTableCell(this.state.cell)&&(b=2);return b};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 b=X.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=this.graph,f=d.model,c=this.state,e=this.selectionBorder,g=this;null==
b&&(b=[]);var l=d.view.getCellStates(f.getChildCells(this.state.cell,!0));if(0<l.length){for(var k=f.getChildCells(l[0].cell,!0),f=0;f<k.length;f++)mxUtils.bind(this,function(f){var l=d.view.getState(k[f]),m=d.getCellGeometry(k[f]),p=null!=m.alternateBounds?m.alternateBounds:m;null==l&&(l=new mxCellState(d.view,k[f],d.getCellStyle(k[f])),l.x=c.x+m.x*d.view.scale,l.y=c.y+m.y*d.view.scale,l.width=p.width*d.view.scale,l.height=p.height*d.view.scale,l.updateCachedBounds());var m=f<k.length-1?k[f+1]:null,
-m=null!=m?d.getCellGeometry(m):null,q=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);m.isDashed=e.isDashed;m.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,m);l.tableHandle=!0;var F=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){var b=d.getActualStartSize(c.cell);this.shape.stroke=0==F?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+(p.width+
-F)*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=c.y+(f==k.length-1?0:b.y*this.graph.view.scale);this.shape.bounds.height=c.height-(f==k.length-1?0:(b.height+b.y)*this.graph.view.scale);this.shape.redraw()}};var v=!1;l.setPosition=function(b,d,f){F=Math.max(Graph.minTableColumnWidth-p.width,d.x-b.x-p.width);v=mxEvent.isShiftDown(f.getEvent());null==q||v||(F=Math.min(F,q.width-Graph.minTableColumnWidth))};l.execute=function(b){if(0!=F)d.setTableColumnWidth(this.state.cell,F,v);
-else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}F=0};l.positionChanged=function(){};l.reset=function(){F=0};b.push(l)})(f);for(f=0;f<l.length;f++)mxUtils.bind(this,function(f){f=l[f];var k=new mxLine(new mxRectangle,mxConstants.NONE,1);k.isDashed=e.isDashed;k.svgStrokeTolerance++;f=new mxHandle(f,"row-resize",null,k);f.tableHandle=!0;var m=0;f.shape.node.parentNode.insertBefore(f.shape.node,f.shape.node.parentNode.firstChild);
+m=null!=m?d.getCellGeometry(m):null,q=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);m.isDashed=e.isDashed;m.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,m);l.tableHandle=!0;var E=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){var b=d.getActualStartSize(c.cell);this.shape.stroke=0==E?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+(p.width+
+E)*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=c.y+(f==k.length-1?0:b.y*this.graph.view.scale);this.shape.bounds.height=c.height-(f==k.length-1?0:(b.height+b.y)*this.graph.view.scale);this.shape.redraw()}};var v=!1;l.setPosition=function(b,d,f){E=Math.max(Graph.minTableColumnWidth-p.width,d.x-b.x-p.width);v=mxEvent.isShiftDown(f.getEvent());null==q||v||(E=Math.min(E,q.width-Graph.minTableColumnWidth))};l.execute=function(b){if(0!=E)d.setTableColumnWidth(this.state.cell,E,v);
+else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}E=0};l.positionChanged=function(){};l.reset=function(){E=0};b.push(l)})(f);for(f=0;f<l.length;f++)mxUtils.bind(this,function(f){f=l[f];var k=new mxLine(new mxRectangle,mxConstants.NONE,1);k.isDashed=e.isDashed;k.svgStrokeTolerance++;f=new mxHandle(f,"row-resize",null,k);f.tableHandle=!0;var m=0;f.shape.node.parentNode.insertBefore(f.shape.node,f.shape.node.parentNode.firstChild);
f.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==m?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+m*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};f.setPosition=function(b,d,f){m=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height)};f.execute=function(b){if(0!=m)d.setTableRowHeight(this.state.cell,m,!mxEvent.isShiftDown(b.getEvent()));
-else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}m=0};f.reset=function(){m=0};b.push(f)})(f)}}return null!=b?b.reverse():null};var F=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){F.apply(this,arguments);if(null!=this.moveHandles)for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].style.visibility=b?"":"hidden";if(null!=this.cornerHandles)for(d=0;d<this.cornerHandles.length;d++)this.cornerHandles[d].node.style.visibility=
+else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}m=0};f.reset=function(){m=0};b.push(f)})(f)}}return null!=b?b.reverse():null};var E=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){E.apply(this,arguments);if(null!=this.moveHandles)for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].style.visibility=b?"":"hidden";if(null!=this.cornerHandles)for(d=0;d<this.cornerHandles.length;d++)this.cornerHandles[d].node.style.visibility=
b?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var b=this.graph.model;if(null!=this.moveHandles){for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].parentNode.removeChild(this.moveHandles[d]);this.moveHandles=null}this.moveHandles=[];for(d=0;d<b.getChildCount(this.state.cell);d++)mxUtils.bind(this,function(d){if(null!=d&&b.isVertex(d.cell)){var f=mxUtils.createImage(Editor.rowMoveImage);f.style.position="absolute";f.style.cursor="pointer";f.style.width="7px";f.style.height=
"4px";f.style.padding="4px 2px 4px 2px";f.rowState=d;mxEvent.addGestureListeners(f,mxUtils.bind(this,function(b){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(b)&&this.graph.isCellSelected(d.cell)||this.graph.selectCellForEvent(d.cell,b);mxEvent.isPopupTrigger(b)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=
mxEvent.isMouseEvent(b),this.graph.isMouseDown=!0);mxEvent.consume(b)}),null,mxUtils.bind(this,function(b){mxEvent.isPopupTrigger(b)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(b),mxEvent.getClientY(b),d.cell,b),mxEvent.consume(b))}));this.moveHandles.push(f);this.graph.container.appendChild(f)}})(this.graph.view.getState(b.getChildAt(this.state.cell,d)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var b=0;b<this.customHandles.length;b++)this.customHandles[b].destroy();
@@ -2687,9 +2688,9 @@ function(){S.apply(this,arguments);if(null!=this.moveHandles){for(var b=0;b<this
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 ea=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=
function(){if(null!=this.marker&&(ea.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.height+Editor.hintOffset)+"px"}};var ha=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ha.apply(this,arguments);
null!=this.linkHint&&(this.linkHint.style.visibility="")};var ia=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){ia.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 b(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function k(){mxActor.call(this)}function g(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function f(){mxShape.call(this)}function l(){mxShape.call(this)}function m(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1}function p(){mxActor.call(this)}function q(){mxCylinder.call(this)}
-function u(){mxCylinder.call(this)}function v(){mxActor.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function C(){mxActor.call(this)}function H(){mxActor.call(this)}function D(){mxActor.call(this)}function E(){mxActor.call(this)}function M(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,M.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
+function u(){mxCylinder.call(this)}function v(){mxActor.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function C(){mxActor.call(this)}function H(){mxActor.call(this)}function D(){mxActor.call(this)}function F(){mxActor.call(this)}function M(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,M.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
this.canvas.moveTo=mxUtils.bind(this,M.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,M.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,M.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,M.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,M.prototype.arcTo)}function G(){mxRectangleShape.call(this)}function K(){mxRectangleShape.call(this)}
-function B(){mxActor.call(this)}function L(){mxActor.call(this)}function O(){mxActor.call(this)}function da(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function Q(){mxCylinder.call(this)}function X(){mxShape.call(this)}function F(){mxShape.call(this)}function J(){mxEllipse.call(this)}function A(){mxShape.call(this)}function aa(){mxShape.call(this)}function I(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function ba(){mxShape.call(this)}function oa(){mxShape.call(this)}
+function B(){mxActor.call(this)}function L(){mxActor.call(this)}function O(){mxActor.call(this)}function da(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function Q(){mxCylinder.call(this)}function X(){mxShape.call(this)}function E(){mxShape.call(this)}function J(){mxEllipse.call(this)}function A(){mxShape.call(this)}function aa(){mxShape.call(this)}function I(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function ba(){mxShape.call(this)}function oa(){mxShape.call(this)}
function fa(){mxShape.call(this)}function ja(){mxShape.call(this)}function na(){mxCylinder.call(this)}function pa(){mxCylinder.call(this)}function ka(){mxRectangleShape.call(this)}function Y(){mxDoubleEllipse.call(this)}function Z(){mxDoubleEllipse.call(this)}function R(){mxArrowConnector.call(this);this.spacing=0}function sa(){mxArrowConnector.call(this);this.spacing=0}function U(){mxActor.call(this)}function T(){mxRectangleShape.call(this)}function ma(){mxActor.call(this)}function va(){mxActor.call(this)}
function S(){mxActor.call(this)}function ea(){mxActor.call(this)}function ha(){mxActor.call(this)}function ia(){mxActor.call(this)}function la(){mxActor.call(this)}function ta(){mxActor.call(this)}function P(){mxActor.call(this)}function ca(){mxActor.call(this)}function wa(){mxEllipse.call(this)}function ya(){mxEllipse.call(this)}function qa(){mxEllipse.call(this)}function za(){mxRhombus.call(this)}function Aa(){mxEllipse.call(this)}function Da(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}
function Ka(){mxEllipse.call(this)}function Ba(){mxActor.call(this)}function Ha(){mxActor.call(this)}function Fa(){mxActor.call(this)}function V(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function xa(){mxConnector.call(this)}function Oa(b,d,f,c,e,g,l,k,m,p){l+=m;var z=c.clone();c.x-=e*(2*l+m);c.y-=g*(2*l+m);e*=l+m;g*=l+m;return function(){b.ellipse(z.x-
@@ -2727,8 +2728,8 @@ mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,
function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(b.height*this.scale,d*this.scale),0,Math.max(0,d*this.scale))}return null};mxUtils.extend(C,mxActor);C.prototype.size=.2;C.prototype.fixedSize=20;C.prototype.isRoundable=function(){return!0};C.prototype.redrawPath=function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):
c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c-d,e)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("parallelogram",C);mxUtils.extend(H,mxActor);H.prototype.size=.2;H.prototype.fixedSize=20;H.prototype.isRoundable=function(){return!0};H.prototype.redrawPath=function(b,d,f,c,e){d="0"!=
mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,e)],this.isRounded,f,!0)};mxCellRenderer.registerShape("trapezoid",H);mxUtils.extend(D,mxActor);D.prototype.size=
-.5;D.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,e/2),new mxPoint(0,e/2),new mxPoint(d,e/2),new mxPoint(d,e),new mxPoint(c,e)],this.isRounded,f,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",D);mxUtils.extend(E,mxActor);E.prototype.redrawPath=
-function(b,d,f,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);d=c/5;b.rect(0,0,d,e);b.fillAndStroke();b.rect(2*d,0,d,e);b.fillAndStroke();b.rect(4*d,0,d,e);b.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",E);M.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=d};M.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,
+.5;D.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,e/2),new mxPoint(0,e/2),new mxPoint(d,e/2),new mxPoint(d,e),new mxPoint(c,e)],this.isRounded,f,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",D);mxUtils.extend(F,mxActor);F.prototype.redrawPath=
+function(b,d,f,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);d=c/5;b.rect(0,0,d,e);b.fillAndStroke();b.rect(2*d,0,d,e);b.fillAndStroke();b.rect(4*d,0,d,e);b.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",F);M.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=d};M.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)};M.prototype.quadTo=function(b,d,f,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=c};M.prototype.curveTo=function(b,d,f,c,e,g){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};M.prototype.arcTo=function(b,d,f,c,e,g,l){this.originalArcTo.apply(this.canvas,arguments);this.lastX=g;this.lastY=l};M.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var f=function(b){return"number"===
typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},c=Math.abs(b-this.lastX),e=Math.abs(d-this.lastY),z=Math.sqrt(c*c+e*e);if(2>z){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var g=Math.round(z/10),l=this.defaultVariation;5>g&&(g=5,l/=3);for(var k=f(b-this.lastX)*c/g,f=f(d-this.lastY)*e/g,c=c/z,e=e/z,z=0;z<g;z++){var m=(Math.random()-.5)*l;this.originalLineTo.call(this.canvas,k*z+this.lastX-m*e,f*z+this.lastY-m*c)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,
arguments);this.lastX=b;this.lastY=d};M.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 ab=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(b){ab.apply(this,arguments);null==b.handJiggle&&(b.handJiggle=this.createHandJiggle(b))};
@@ -2746,11 +2747,11 @@ mxUtils.extend(O,mxHexagon);O.prototype.size=.25;O.prototype.fixedSize=20;O.prot
0),new mxPoint(c-d,0),new mxPoint(c,.5*e),new mxPoint(c-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,f,!0)};mxCellRenderer.registerShape("hexagon",O);mxUtils.extend(da,mxRectangleShape);da.prototype.isHtmlAllowed=function(){return!1};da.prototype.paintForeground=function(b,d,f,c,e){var g=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,f+g);b.lineTo(d+c/2,f+e-g);b.moveTo(d+g,f+e/2);b.lineTo(d+c-g,f+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};
mxCellRenderer.registerShape("plus",da);var Xa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};mxRhombus.prototype.paintVertexShape=function(b,d,f,c,e){Xa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var g=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&(b.setShadow(!1),Xa.apply(this,[b,d,f,c,e]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};N.prototype.paintForeground=function(b,d,f,c,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var g=
-Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var g=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=z){var l=this.style["symbol"+g+"Align"],k=this.style["symbol"+g+"VerticalAlign"],m=this.style["symbol"+g+"Width"],p=this.style["symbol"+g+"Height"],q=this.style["symbol"+g+"Spacing"]||0,F=this.style["symbol"+g+"VSpacing"]||q,ua=
-this.style["symbol"+g+"ArcSpacing"];null!=ua&&(ua*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),q+=ua,F+=ua);var ua=d,ra=f,ua=l==mxConstants.ALIGN_CENTER?ua+(c-m)/2:l==mxConstants.ALIGN_RIGHT?ua+(c-m-q):ua+q,ra=k==mxConstants.ALIGN_MIDDLE?ra+(e-p)/2:k==mxConstants.ALIGN_BOTTOM?ra+(e-p-F):ra+F;b.save();l=new z;l.style=this.style;z.prototype.paintVertexShape.call(l,b,ua,ra,m,p);b.restore()}g++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
+Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var g=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=z){var l=this.style["symbol"+g+"Align"],k=this.style["symbol"+g+"VerticalAlign"],m=this.style["symbol"+g+"Width"],p=this.style["symbol"+g+"Height"],q=this.style["symbol"+g+"Spacing"]||0,E=this.style["symbol"+g+"VSpacing"]||q,ua=
+this.style["symbol"+g+"ArcSpacing"];null!=ua&&(ua*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),q+=ua,E+=ua);var ua=d,ra=f,ua=l==mxConstants.ALIGN_CENTER?ua+(c-m)/2:l==mxConstants.ALIGN_RIGHT?ua+(c-m-q):ua+q,ra=k==mxConstants.ALIGN_MIDDLE?ra+(e-p)/2:k==mxConstants.ALIGN_BOTTOM?ra+(e-p-E):ra+E;b.save();l=new z;l.style=this.style;z.prototype.paintVertexShape.call(l,b,ua,ra,m,p);b.restore()}g++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
N);mxUtils.extend(Q,mxCylinder);Q.prototype.redrawPath=function(b,d,f,c,e,g){g?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",Q);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/
-2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",X);mxUtils.extend(F,mxShape);F.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};F.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",
-F);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(A,mxShape);A.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",A);mxUtils.extend(aa,mxShape);
+2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",X);mxUtils.extend(E,mxShape);E.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};E.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",
+E);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(A,mxShape);A.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",A);mxUtils.extend(aa,mxShape);
aa.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};aa.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};aa.prototype.paintForeground=function(b,d,f,c,e){b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",aa);mxUtils.extend(I,mxRectangleShape);I.prototype.size=
40;I.prototype.isHtmlAllowed=function(){return!1};I.prototype.getLabelBounds=function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(b.x,b.y,b.width,d)};I.prototype.paintBackground=function(b,d,f,c,e){var g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),l=mxUtils.getValue(this.style,"participant");null==l||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,d,
f,c,g):(l=this.state.view.graph.cellRenderer.getShape(l),null!=l&&l!=I&&(l=new l,l.apply(this.state),b.save(),l.paintVertexShape(b,d,f,c,g),b.restore()));g<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,f+g),b.lineTo(d+c/2,f+e),b.end(),b.stroke())};I.prototype.paintForeground=function(b,d,f,c,e){var g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,b,d,f,c,Math.min(e,
@@ -2804,11 +2805,11 @@ defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enu
{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"}]}];V.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,
f);this.strictDrawShape(b,0,0,c,e)};V.prototype.strictDrawShape=function(b,d,f,c,e,g){var l=g&&g.rectStyle?g.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=g&&g.absoluteCornerSize?g.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=g&&g.size?g.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=g&&g.rectOutline?g.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=g&&g.indent?
-g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),F=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),z=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,q)),u=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),n=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),A=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",!0),x=g&&g.left?g.left:mxUtils.getValue(this.style,
+g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),E=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),z=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,q)),u=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),n=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),A=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",!0),x=g&&g.left?g.left:mxUtils.getValue(this.style,
"left",!0),J=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),y=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),I=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),D=g&&g.fillColor?g.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");g&&g.strokeColor||mxUtils.getValue(this.style,
"strokeColor","#000000");var B=g&&g.strokeWidth?g.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),aa=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),N=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),ra=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),ba=g&&g.opacity?g.opacity:mxUtils.getValue(this.style,"opacity","100"),ua=Math.max(0,Math.min(50,m));g=V.prototype;
-b.setDashed(F);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(B);m=Math.min(.5*e,.5*c,m);k||(m=ua*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(q=Math.min(v*Math.min(c,e)/100));q=Math.min(q,.5*Math.min(c,e)-m);(u||n||A||x)&&"frame"!=p&&(b.begin(),u?g.moveNW(b,d,f,c,e,l,J,m,x):b.moveTo(0,0),u&&g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,n),n&&g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,y,m,A),A&&g.paintSE(b,d,f,c,e,l,y,m,n),g.paintBottom(b,d,f,c,e,l,I,m,x),x&&g.paintSW(b,
-d,f,c,e,l,I,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(aa),F=k=ba,"none"==aa&&(k=0),"none"==N&&(F=0),b.setGradient(aa,N,0,0,c,e,ra,k,F),b.begin(),u?g.moveNWInner(b,d,f,c,e,l,J,m,q,u,x):b.moveTo(q,0),g.paintLeftInner(b,d,f,c,e,l,I,m,q,A,x),x&&A&&g.paintSWInner(b,d,f,c,e,l,I,m,q,A),g.paintBottomInner(b,d,f,c,e,l,y,m,q,n,A),A&&n&&g.paintSEInner(b,d,f,c,e,l,y,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,u,n),n&&u&&g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,
+b.setDashed(E);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(B);m=Math.min(.5*e,.5*c,m);k||(m=ua*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(q=Math.min(v*Math.min(c,e)/100));q=Math.min(q,.5*Math.min(c,e)-m);(u||n||A||x)&&"frame"!=p&&(b.begin(),u?g.moveNW(b,d,f,c,e,l,J,m,x):b.moveTo(0,0),u&&g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,n),n&&g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,y,m,A),A&&g.paintSE(b,d,f,c,e,l,y,m,n),g.paintBottom(b,d,f,c,e,l,I,m,x),x&&g.paintSW(b,
+d,f,c,e,l,I,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(aa),E=k=ba,"none"==aa&&(k=0),"none"==N&&(E=0),b.setGradient(aa,N,0,0,c,e,ra,k,E),b.begin(),u?g.moveNWInner(b,d,f,c,e,l,J,m,q,u,x):b.moveTo(q,0),g.paintLeftInner(b,d,f,c,e,l,I,m,q,A,x),x&&A&&g.paintSWInner(b,d,f,c,e,l,I,m,q,A),g.paintBottomInner(b,d,f,c,e,l,y,m,q,n,A),A&&n&&g.paintSEInner(b,d,f,c,e,l,y,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,u,n),n&&u&&g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,
d,f,c,e,l,J,m,q,x,u),u&&x&&g.paintNWInner(b,d,f,c,e,l,J,m,q),b.fill(),"none"==D&&(b.begin(),g.paintFolds(b,d,f,c,e,l,J,t,y,I,m,u,n,A,x),b.stroke()));u||n||A||!x?u||n||!A||x?!u&&!n&&A&&x?"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,y,m,n),g.paintBottom(b,d,f,c,e,l,I,m,x),g.paintSW(b,d,f,c,e,l,I,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==p&&(g.moveNWInner(b,d,f,c,e,l,J,m,q,u,x),g.paintLeftInner(b,d,f,c,e,l,I,m,q,A,x),g.paintSWInner(b,d,f,c,e,l,I,m,q,A),g.paintBottomInner(b,d,f,c,e,l,y,m,q,n,A)),b.stroke()):
(b.begin(),g.moveSE(b,d,f,c,e,l,y,m,n),g.paintBottom(b,d,f,c,e,l,I,m,x),g.paintSW(b,d,f,c,e,l,I,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,q,u,x),g.paintLeftInner(b,d,f,c,e,l,I,m,q,A,x),g.paintSWInner(b,d,f,c,e,l,I,m,q,A),g.paintBottomInner(b,d,f,c,e,l,y,m,q,n,A),b.close(),b.fillAndStroke()):u||!n||A||x?!u&&n&&!A&&x?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==p&&(g.moveNWInner(b,d,f,c,e,l,J,m,q,u,x),g.paintLeftInner(b,d,f,c,e,l,
I,m,q,A,x)),b.stroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,y,m,A),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,y,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,u,n)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,q,u,x),g.paintLeftInner(b,d,f,c,e,l,I,m,q,A,x),b.close(),b.fillAndStroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,y,m,A),g.lineSEInner(b,d,f,c,e,l,y,m,q,A),g.paintRightInner(b,d,f,c,
@@ -2845,15 +2846,15 @@ l,m,k,q){q?"square"==l||"default"==l&&"square"==g?b.lineTo(k,e-k):"rounded"==l||
l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};V.prototype.lineSEInner=function(b,d,f,c,e,g,l,m,k,q){q?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,e-m-k):b.lineTo(c-k,e)};V.prototype.moveNEInner=function(b,d,f,c,e,g,l,m,k,q){q?"square"==
l||"default"==l&&"square"==g||q?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};V.prototype.lineNEInner=function(b,d,f,c,e,g,l,m,k,q){q?"square"==l||"default"==l&&"square"==g||q?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&
"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};V.prototype.moveNWInner=function(b,d,f,c,e,g,l,m,k,q,p){q||p?!q&&p?b.moveTo(k,0):q&&!p?b.moveTo(0,k):"square"==l||"default"==l&&"square"==g?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,m+k):b.moveTo(0,0)};V.prototype.lineNWInner=function(b,d,f,c,e,g,l,m,k,q,
-p){q||p?!q&&p?b.lineTo(k,0):q&&!p?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};V.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,q,p,F,u,n,A){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==l&&"fold"==g)&&F&&A&&(b.moveTo(0,p),b.lineTo(p,p),
-b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==g)&&F&&u&&(b.moveTo(c-p,0),b.lineTo(c-p,p),b.lineTo(c,p)),("fold"==k||"default"==k&&"fold"==g)&&n&&u&&(b.moveTo(c-p,e),b.lineTo(c-p,e-p),b.lineTo(c,e-p)),("fold"==q||"default"==q&&"fold"==g)&&n&&A&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(V.prototype.cst.RECT2,V);V.prototype.constraints=null;mxUtils.extend(xa,mxConnector);xa.prototype.origPaintEdgeShape=xa.prototype.paintEdgeShape;xa.prototype.paintEdgeShape=function(b,
+p){q||p?!q&&p?b.lineTo(k,0):q&&!p?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};V.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,q,p,E,u,n,A){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==l&&"fold"==g)&&E&&A&&(b.moveTo(0,p),b.lineTo(p,p),
+b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==g)&&E&&u&&(b.moveTo(c-p,0),b.lineTo(c-p,p),b.lineTo(c,p)),("fold"==k||"default"==k&&"fold"==g)&&n&&u&&(b.moveTo(c-p,e),b.lineTo(c-p,e-p),b.lineTo(c,e-p)),("fold"==q||"default"==q&&"fold"==g)&&n&&A&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(V.prototype.cst.RECT2,V);V.prototype.constraints=null;mxUtils.extend(xa,mxConnector);xa.prototype.origPaintEdgeShape=xa.prototype.paintEdgeShape;xa.prototype.paintEdgeShape=function(b,
d,f){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,g=b.state.fixDash;xa.prototype.origPaintEdgeShape.apply(this,[b,c,f]);3<=b.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(b.setStrokeColor(c),b.setStrokeWidth(b.state.strokeWidth-2),b.setDashed(e,g),xa.prototype.origPaintEdgeShape.apply(this,[b,d,f])))};mxCellRenderer.registerShape("filledEdge",xa);"undefined"!==typeof StyleFormatPanel&&function(){var b=StyleFormatPanel.prototype.getCustomColors;
-StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),f=b.apply(this,arguments);"umlFrame"==d.style.shape&&f.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return f}}();mxMarker.addMarker("dash",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.stroke()}});mxMarker.addMarker("box",function(b,d,f,c,e,g,l,m,k,q){var p=
-e*(l+k+1),F=g*(l+k+1),u=c.x+p/2,n=c.y+F/2;c.x-=p;c.y-=F;return function(){b.begin();b.moveTo(u-p/2-F/2,n-F/2+p/2);b.lineTo(u-p/2+F/2,n-F/2-p/2);b.lineTo(u+F/2-3*p/2,n-3*F/2-p/2);b.lineTo(u-F/2-3*p/2,n-3*F/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.moveTo(c.x-p/2+F/2,c.y-F/2-p/2);b.lineTo(c.x-F/2-3*p/2,c.y-
-3*F/2+p/2);b.stroke()}});mxMarker.addMarker("circle",Oa);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,q){var p=c.clone(),F=Oa.apply(this,arguments),u=e*(l+2*k),n=g*(l+2*k);return function(){F.apply(this,arguments);b.begin();b.moveTo(p.x-e*k,p.y-g*k);b.lineTo(p.x-2*u+e*k,p.y-2*n+g*k);b.moveTo(p.x-u-n+g*k,p.y-n+u-e*k);b.lineTo(p.x+n-u-g*k,p.y-n-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,p){var q=e*(l+k+1),F=g*(l+k+1),u=c.clone();c.x-=q;c.y-=F;return function(){b.begin();
-b.moveTo(u.x-F,u.y+q);b.quadTo(c.x-F,c.y+q,c.x,c.y);b.quadTo(c.x+F,c.y-q,u.x+F,u.y-q);b.stroke()}});mxMarker.addMarker("async",function(b,d,f,c,e,g,l,m,k,q){d=e*k*1.118;f=g*k*1.118;e*=l+k;g*=l+k;var p=c.clone();p.x-=d;p.y-=f;c.x+=1*-e-d;c.y+=1*-g-f;return function(){b.begin();b.moveTo(p.x,p.y);m?b.lineTo(p.x-e-g/2,p.y-g+e/2):b.lineTo(p.x+g/2-e,p.y-g-e/2);b.lineTo(p.x-e,p.y-g);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(d,f,c,
-e,g,l,m,k,p,q){g*=m+p;l*=m+p;var F=e.clone();return function(){d.begin();d.moveTo(F.x,F.y);k?d.lineTo(F.x-g-l/b,F.y-l+g/b):d.lineTo(F.x+l/b-g,F.y-l-g/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ya=function(b,d,f){return Na(b,["width"],d,function(d,c,e,g,l){l=b.shape.getEdgeWidth()*b.view.scale+f;return new mxPoint(g.x+c*d/4+e*l/2,g.y+e*d/4-c*l/2)},function(d,c,e,g,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));b.style.width=Math.round(2*d)/b.view.scale-f})},Na=
-function(b,d,f,c,e){return ga(b,d,function(d){var e=b.absolutePoints,g=e.length-1;d=b.view.translate;var l=b.view.scale,m=f?e[0]:e[g],e=f?e[1]:e[g-1],g=e.x-m.x,k=e.y-m.y,p=Math.sqrt(g*g+k*k),m=c.call(this,p,g/p,k/p,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,g){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,p=f?l[0]:l[m],l=f?l[1]:l[m-1],m=l.x-p.x,q=l.y-p.y,F=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,F,m/F,q/F,p,l,c,g)})},Ia=function(b){return function(d){return[ga(d,
+StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),f=b.apply(this,arguments);"umlFrame"==d.style.shape&&f.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return f}}();mxMarker.addMarker("dash",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),E=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-E/2,c.y-E/2+p/2);b.lineTo(c.x+E/2-3*p/2,c.y-3*E/2-p/2);b.stroke()}});mxMarker.addMarker("box",function(b,d,f,c,e,g,l,m,k,q){var p=
+e*(l+k+1),E=g*(l+k+1),u=c.x+p/2,n=c.y+E/2;c.x-=p;c.y-=E;return function(){b.begin();b.moveTo(u-p/2-E/2,n-E/2+p/2);b.lineTo(u-p/2+E/2,n-E/2-p/2);b.lineTo(u+E/2-3*p/2,n-3*E/2-p/2);b.lineTo(u-E/2-3*p/2,n-3*E/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),E=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-E/2,c.y-E/2+p/2);b.lineTo(c.x+E/2-3*p/2,c.y-3*E/2-p/2);b.moveTo(c.x-p/2+E/2,c.y-E/2-p/2);b.lineTo(c.x-E/2-3*p/2,c.y-
+3*E/2+p/2);b.stroke()}});mxMarker.addMarker("circle",Oa);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,q){var p=c.clone(),E=Oa.apply(this,arguments),u=e*(l+2*k),n=g*(l+2*k);return function(){E.apply(this,arguments);b.begin();b.moveTo(p.x-e*k,p.y-g*k);b.lineTo(p.x-2*u+e*k,p.y-2*n+g*k);b.moveTo(p.x-u-n+g*k,p.y-n+u-e*k);b.lineTo(p.x+n-u-g*k,p.y-n-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,p){var q=e*(l+k+1),E=g*(l+k+1),u=c.clone();c.x-=q;c.y-=E;return function(){b.begin();
+b.moveTo(u.x-E,u.y+q);b.quadTo(c.x-E,c.y+q,c.x,c.y);b.quadTo(c.x+E,c.y-q,u.x+E,u.y-q);b.stroke()}});mxMarker.addMarker("async",function(b,d,f,c,e,g,l,m,k,q){d=e*k*1.118;f=g*k*1.118;e*=l+k;g*=l+k;var p=c.clone();p.x-=d;p.y-=f;c.x+=1*-e-d;c.y+=1*-g-f;return function(){b.begin();b.moveTo(p.x,p.y);m?b.lineTo(p.x-e-g/2,p.y-g+e/2):b.lineTo(p.x+g/2-e,p.y-g-e/2);b.lineTo(p.x-e,p.y-g);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(d,f,c,
+e,g,l,m,k,p,q){g*=m+p;l*=m+p;var E=e.clone();return function(){d.begin();d.moveTo(E.x,E.y);k?d.lineTo(E.x-g-l/b,E.y-l+g/b):d.lineTo(E.x+l/b-g,E.y-l-g/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ya=function(b,d,f){return Na(b,["width"],d,function(d,c,e,g,l){l=b.shape.getEdgeWidth()*b.view.scale+f;return new mxPoint(g.x+c*d/4+e*l/2,g.y+e*d/4-c*l/2)},function(d,c,e,g,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));b.style.width=Math.round(2*d)/b.view.scale-f})},Na=
+function(b,d,f,c,e){return ga(b,d,function(d){var e=b.absolutePoints,g=e.length-1;d=b.view.translate;var l=b.view.scale,m=f?e[0]:e[g],e=f?e[1]:e[g-1],g=e.x-m.x,k=e.y-m.y,p=Math.sqrt(g*g+k*k),m=c.call(this,p,g/p,k/p,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,g){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,p=f?l[0]:l[m],l=f?l[1]:l[m-1],m=l.x-p.x,q=l.y-p.y,E=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,E,m/E,q/E,p,l,c,g)})},Ia=function(b){return function(d){return[ga(d,
["arrowWidth","arrowSize"],function(d){var f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ea.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",ea.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-f)*d.height/2)},function(d,f){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-f.y)/d.height*2));this.state.style.arrowSize=Math.max(0,Math.min(b,(d.x+d.width-f.x)/d.width))})]}},Za=function(b){return function(d){return[ga(d,
["size"],function(d){var f=Math.max(0,Math.min(.5*d.height,parseFloat(mxUtils.getValue(this.state.style,"size",b))));return new mxPoint(d.x,d.y+f)},function(b,d){this.state.style.size=Math.max(0,d.y-b.y)},!0)]}},Ta=function(b,d,f){return function(c){var e=[ga(c,["size"],function(f){var c=Math.max(0,Math.min(f.width,Math.min(f.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*b;return new mxPoint(f.x+c,f.y+c)},function(d,f){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,
f.x-d.x),Math.min(d.height,f.y-d.y)))/b)},!1)];f&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Pa=function(b,d,f,c,e){f=null!=f?f:.5;return function(g){var l=[ga(g,["size"],function(d){var f=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",f?e:b));return new mxPoint(d.x+Math.max(0,Math.min(.5*d.width,c*(f?1:d.width))),d.getCenterY())},function(b,d,c){b=null!=e&&"0"!=mxUtils.getValue(this.state.style,
@@ -2895,7 +2896,7 @@ Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},"mxgraph.basic.rect":
H.prototype.size,H.prototype.fixedSize),parallelogram:Va(1,C.prototype.size,C.prototype.fixedSize)};Graph.createHandle=ga;Graph.handleFactory=Qa;var eb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=eb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&null==mxStencilRegistry.getStencil(d)?d=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&
(d=mxConstants.SHAPE_SWIMLANE);d=Qa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Qa[mxConstants.SHAPE_RECTANGLE]);null!=d&&(d=d(this.state),null!=d&&(b=null==b?d:b.concat(d)))}return b};mxEdgeHandler.prototype.createCustomHandles=function(){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&null==mxStencilRegistry.getStencil(b)&&(b=mxConstants.SHAPE_CONNECTOR);b=Qa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory=
{};var Ra=new mxPoint(1,0),Sa=new mxPoint(1,0),Ia=mxUtils.toRadians(-30),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ia),Math.sin(Ia)),Ia=mxUtils.toRadians(-150),Sa=mxUtils.getRotatedPoint(Sa,Math.cos(Ia),Math.sin(Ia));mxEdgeStyle.IsometricConnector=function(b,d,f,c,e){var g=b.view;c=null!=c&&0<c.length?c[0]:null;var l=b.absolutePoints,m=l[0],l=l[l.length-1];null!=c&&(c=g.transformControlPoint(b,c));null==m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=f&&(l=new mxPoint(f.getCenterX(),
-f.getCenterY()));var k=Ra.x,p=Ra.y,q=Sa.x,F=Sa.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=n.x;var c=d-n.y;d=(F*b-q*c)/(k*F-p*q);b=(p*b-k*c)/(p*q-k*F);u?(f&&(n=new mxPoint(n.x+k*d,n.y+p*d),e.push(n)),n=new mxPoint(n.x+q*b,n.y+F*b)):(f&&(n=new mxPoint(n.x+q*b,n.y+F*b),e.push(n)),n=new mxPoint(n.x+k*d,n.y+p*d));e.push(n)};var n=m;null==c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",
+f.getCenterY()));var k=Ra.x,p=Ra.y,q=Sa.x,E=Sa.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=n.x;var c=d-n.y;d=(E*b-q*c)/(k*E-p*q);b=(p*b-k*c)/(p*q-k*E);u?(f&&(n=new mxPoint(n.x+k*d,n.y+p*d),e.push(n)),n=new mxPoint(n.x+q*b,n.y+E*b)):(f&&(n=new mxPoint(n.x+q*b,n.y+E*b),e.push(n)),n=new mxPoint(n.x+k*d,n.y+p*d));e.push(n)};var n=m;null==c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",
mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var f=new mxElbowEdgeHandler(b);f.snapToTerminals=!1;return f}return fb.apply(this,arguments)};k.prototype.constraints=[];g.prototype.getConstraints=function(b,d,f){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-c)/2,c=Math.min(d,f/(.5+c));d=(d-c)/2;f=(f-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,d+.5*c,f+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.75*c));return b};f.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,c=Math.min(d*
Math.tan(c),.5*f);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
@@ -3003,10 +3004,10 @@ c[f];if(g.getModel().isEdge(e)){var l=g.getCellGeometry(e);mxEvent.isShiftDown(b
document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");t=this.addAction("superscript",mxUtils.bind(this,function(){g.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",function(){if(g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())){var b=mxResources.get("image")+" ("+mxResources.get("url")+"):",d=g.getView().getState(g.getSelectionCell()),c="";null!=d&&(c=d.style[mxConstants.STYLE_IMAGE]||c);
var k=g.cellEditor.saveSelection();e.showImageDialog(b,c,function(b,d,c){if(g.cellEditor.isContentEditing())g.cellEditor.restoreSelection(k),g.insertImage(b,d,c);else{var f=g.getSelectionCells();if(null!=b&&(0<b.length||0<f.length)){var e=null;g.getModel().beginUpdate();try{if(0==f.length){var f=[g.insertVertex(g.getDefaultParent(),null,"",0,0,d,c,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],l=g.getCenterInsertPoint(g.getBoundingBoxFromGeometry(f,!0));
f[0].geometry.x=l.x;f[0].geometry.y=l.y;e=f;g.fireEvent(new mxEventObject("cellsInserted","cells",e))}g.setCellStyles(mxConstants.STYLE_IMAGE,0<b.length?b:null,f);var m=g.getCurrentCellStyle(f[0]);"image"!=m[mxConstants.STYLE_SHAPE]&&"label"!=m[mxConstants.STYLE_SHAPE]?g.setCellStyles(mxConstants.STYLE_SHAPE,"image",f):0==b.length&&g.setCellStyles(mxConstants.STYLE_SHAPE,null,f);if(1==g.getSelectionCount()&&null!=d&&null!=c){var p=f[0],q=g.getModel().getGeometry(p);null!=q&&(q=q.clone(),q.width=d,
-q.height=c,g.getModel().setGeometry(p,q))}}finally{g.getModel().endUpdate()}null!=e&&(g.setSelectionCells(e),g.scrollCellToVisible(e[0]))}}},g.cellEditor.isContentEditing(),!g.cellEditor.isContentEditing())}}).isEnabled=n;t=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(e,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",function(){e.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",
-function(){e.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),e.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));t=this.addAction("formatPanel",mxUtils.bind(this,function(){e.toggleFormatPanel()}),
-null,null,Editor.ctrlKey+"+Shift+P");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return 0<e.formatWidth}));t=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(e,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){e.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){e.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),
-e.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};
+q.height=c,g.getModel().setGeometry(p,q))}}finally{g.getModel().endUpdate()}null!=e&&(g.setSelectionCells(e),g.scrollCellToVisible(e[0]))}}},g.cellEditor.isContentEditing(),!g.cellEditor.isContentEditing())}}).isEnabled=n;t=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(e,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",mxUtils.bind(this,function(){e.fireEvent(new mxEventObject("layers"));this.layersWindow.window.fit()})),
+this.layersWindow.window.addListener("hide",function(){e.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),e.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));t=this.addAction("formatPanel",mxUtils.bind(this,
+function(){e.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return 0<e.formatWidth}));t=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(e,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",mxUtils.bind(this,function(){e.fireEvent(new mxEventObject("outline"));this.outlineWindow.window.fit()})),this.outlineWindow.window.addListener("hide",
+function(){e.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),e.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};
Actions.prototype.addAction=function(b,c,e,k,g){var n;"..."==b.substring(b.length-3)?(b=b.substring(0,b.length-3),n=mxResources.get(b)+"..."):n=mxResources.get(b);return this.put(b,new Action(n,c,e,k,g))};Actions.prototype.put=function(b,c){return this.actions[b]=c};Actions.prototype.get=function(b){return this.actions[b]};function Action(b,c,e,k,g){mxEventSource.call(this);this.label=b;this.funct=this.createFunction(c);this.enabled=null!=e?e:!0;this.iconCls=k;this.shortcut=g;this.visible=!0}
mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(b){return b};Action.prototype.setEnabled=function(b){this.enabled!=b&&(this.enabled=b,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(b){this.toggleAction=b};Action.prototype.setSelectedCallback=function(b){this.selectedCallback=b};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(b,c){mxEventSource.call(this);this.ui=b;this.shadowData=this.data=c||"";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;
@@ -3194,10 +3195,10 @@ else if("eot"==k||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";els
function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;null!=b&&b()})):null!=b&&b()};Editor.prototype.embedExtFonts=function(b){var d=this.graph.getCustomFonts();if(0<d.length){var c="",f=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var e=mxUtils.bind(this,function(){0==f&&this.embedCssFonts(c,b)}),g=0;g<d.length;g++)mxUtils.bind(this,function(b,d){Graph.isCssFontUrl(d)?null==this.cachedGoogleFonts[d]?
(f++,this.loadUrl(d,mxUtils.bind(this,function(b){this.cachedGoogleFonts[d]=b;c+=b;f--;e()}),mxUtils.bind(this,function(b){f--;c+="@import url("+d+");";e()}))):c+=this.cachedGoogleFonts[d]:c+='@font-face {font-family: "'+b+'";src: url("'+d+'")}'})(d[g].name,d[g].url);e()}else b()};Editor.prototype.addMathCss=function(b){b=b.getElementsByTagName("defs");if(null!=b&&0<b.length)for(var d=document.getElementsByTagName("style"),c=0;c<d.length;c++)0<mxUtils.getTextContent(d[c]).indexOf("MathJax")&&b[0].appendChild(d[c].cloneNode(!0))};
Editor.prototype.addFontCss=function(b,d){d=null!=d?d:this.absoluteCssFonts(this.fontCss);if(null!=d){var c=b.getElementsByTagName("defs"),f=b.ownerDocument;0==c.length?(c=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,"defs"):f.createElement("defs"),null!=b.firstChild?b.insertBefore(c,b.firstChild):b.appendChild(c)):c=c[0];f=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,"style"):f.createElement("style");f.setAttribute("type","text/css");mxUtils.setTextContent(f,d);c.appendChild(f)}};
-Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var f=mxClient.IS_FF?8192:16384;return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,k,m,p,q,n,u,x,v,t,y,D){try{g=null!=g?g:!0;l=null!=l?l:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var F=m?null:n.background;F==mxConstants.NONE&&(F=null);null==F&&(F=f);null==F&&0==m&&(F=t?this.graph.defaultPageBackgroundColor:"#ffffff");
+Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var f=mxClient.IS_FF?8192:16384;return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,k,m,p,q,n,u,x,v,t,y,D){try{g=null!=g?g:!0;l=null!=l?l:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var E=m?null:n.background;E==mxConstants.NONE&&(E=null);null==E&&(E=f);null==E&&0==m&&(E=t?this.graph.defaultPageBackgroundColor:"#ffffff");
this.convertImages(n.getSvg(null,null,u,x,null,l,null,null,null,p,null,t,y,D),mxUtils.bind(this,function(c){try{var f=new Image;f.onload=mxUtils.bind(this,function(){try{var l=function(){mxClient.IS_SF?window.setTimeout(function(){x.drawImage(f,0,0);b(m,c)},0):(x.drawImage(f,0,0),b(m,c))},m=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));k=null!=k?k:1;null!=d&&(k=g?Math.min(1,Math.min(3*d/(4*q),d/p)):d/p);k=this.getMaxCanvasScale(p,q,k);p=
-Math.ceil(k*p);q=Math.ceil(k*q);m.setAttribute("width",p);m.setAttribute("height",q);var x=m.getContext("2d");null!=F&&(x.beginPath(),x.rect(0,0,p,q),x.fillStyle=F,x.fill());1!=k&&x.scale(k,k);if(v){var t=n.view,y=t.scale;t.scale=1;var A=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=y;var A="data:image/svg+xml;base64,"+A,D=n.gridSize*t.gridSteps*k,B=n.getGraphBounds(),J=t.translate.x*y,N=t.translate.y*y,I=J+(B.x-J)/y-u,E=N+(B.y-N)/y-u,C=new Image;C.onload=function(){try{for(var b=
--Math.round(D-mxUtils.mod((J-I)*k,D)),d=-Math.round(D-mxUtils.mod((N-E)*k,D));b<p;b+=D)for(var c=d;c<q;c+=D)x.drawImage(C,b/k,c/k);l()}catch(V){null!=e&&e(V)}};C.onerror=function(b){null!=e&&e(b)};C.src=A}else l()}catch(Ba){null!=e&&e(Ba)}});f.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),f.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(ea){null!=
+Math.ceil(k*p);q=Math.ceil(k*q);m.setAttribute("width",p);m.setAttribute("height",q);var x=m.getContext("2d");null!=E&&(x.beginPath(),x.rect(0,0,p,q),x.fillStyle=E,x.fill());1!=k&&x.scale(k,k);if(v){var t=n.view,y=t.scale;t.scale=1;var A=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=y;var A="data:image/svg+xml;base64,"+A,D=n.gridSize*t.gridSteps*k,B=n.getGraphBounds(),J=t.translate.x*y,N=t.translate.y*y,I=J+(B.x-J)/y-u,F=N+(B.y-N)/y-u,C=new Image;C.onload=function(){try{for(var b=
+-Math.round(D-mxUtils.mod((J-I)*k,D)),d=-Math.round(D-mxUtils.mod((N-F)*k,D));b<p;b+=D)for(var c=d;c<q;c+=D)x.drawImage(C,b/k,c/k);l()}catch(V){null!=e&&e(V)}};C.onerror=function(b){null!=e&&e(b)};C.src=A}else l()}catch(Ba){null!=e&&e(Ba)}});f.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),f.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(ea){null!=
e&&e(ea)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(l)}catch(ha){null!=e&&e(ha)}}))}catch(ea){null!=e&&e(ea)}}),c,q)}catch(ma){null!=e&&e(ma)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var n=g,t=0;8>t;t++)n=1==(n&1)?3988292384^n>>>1:n>>>1,Editor.crcTable[g]=n;Editor.updateCRC=function(b,d,c,f){for(var e=0;e<f;e++)b=Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>
8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,f,e){function g(b,d){var c=m;m+=d;return b.substring(c,m)}function l(b){b=g(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function k(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+1);b=window.atob?atob(b):Base64.decode(b,!0);var m=0;if(g(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,
10))null!=e&&e();else if(g(b,4),"IHDR"!=g(b,4))null!=e&&e();else{g(b,17);e=b.substring(0,m);do{var p=l(b);if("IDAT"==g(b,4)){e=b.substring(0,m-8);"pHYs"==d&&"dpi"==c?(c=Math.round(f/.0254),c=k(c)+k(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+f;f=4294967295;f=Editor.updateCRC(f,d,0,4);f=Editor.updateCRC(f,c,0,c.length);e+=k(c.length)+d+c+k(f^4294967295);e+=b.substring(m-8,b.length);break}e+=b.substring(m-8,m-4+p);g(b,p);g(b,4)}while(p);return"data:image/png;base64,"+
@@ -3246,8 +3247,8 @@ mxEvent.addListener(g,"change",function(){var b=mxUtils.htmlEntities(g.value);f(
(l.min=parseFloat(p.min)),null!=p.max&&(l.max=parseFloat(p.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&g()});l.focus();mxEvent.addListener(l,"blur",function(){g()})})));p.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(b){f(d,"",p,p.index);mxEvent.consume(b)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",y.appendChild(u));t.appendChild(y);return t}var q=this,n=this.editorUi.editor.graph,u=[];b.style.position=
"relative";b.style.padding="0";var x=document.createElement("table");x.className="geProperties";x.style.whiteSpace="nowrap";x.style.width="100%";var v=document.createElement("tr");v.className="gePropHeader";var t=document.createElement("th");t.className="gePropHeaderCell";var y=document.createElement("img");y.src=Sidebar.prototype.expandedImage;y.style.verticalAlign="middle";t.appendChild(y);mxUtils.write(t,mxResources.get("property"));v.style.cursor="pointer";var D=function(){var d=x.querySelectorAll(".gePropNonHeaderRow"),
c;if(q.editorUi.propertiesCollapsed){y.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var e=b.childNodes[f],g=e.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||b.removeChild(e)}catch(qa){}}else y.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<d.length;f++)d[f].style.display=c};mxEvent.addListener(v,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;D()});v.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";
-t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var F=!1,B=!1,v=null;1==c.vertices.length&&0==c.edges.length?v=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(v=c.edges[0].id);null!=v&&x.appendChild(p("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var A in d)if(v=d[A],"function"!=typeof v.isVisible||v.isVisible(c,this)){var N=null!=c.style[A]?mxUtils.htmlEntities(c.style[A]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
-v.type)B=!B;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var J=v.dependentProps,E=[],C=[],t=0;t<J.length;t++){var O=c.style[J[t]];C.push(d[J[t]].subDefVal);E.push(null!=O?O.split(","):[])}v.dependentPropsDefVal=C;v.dependentPropsVals=E}x.appendChild(p(A,N,v,F,B));F=!F}}for(t=0;t<u.length;t++)for(v=u[t],d=v.parentRow,c=0;c<v.values.length;c++)A=p(v.name,v.values[c],{type:v.type,parentRow:v.parentRow,isDeletable:v.isDeletable,
+t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var E=!1,B=!1,v=null;1==c.vertices.length&&0==c.edges.length?v=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(v=c.edges[0].id);null!=v&&x.appendChild(p("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var A in d)if(v=d[A],"function"!=typeof v.isVisible||v.isVisible(c,this)){var N=null!=c.style[A]?mxUtils.htmlEntities(c.style[A]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
+v.type)B=!B;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var J=v.dependentProps,F=[],C=[],t=0;t<J.length;t++){var O=c.style[J[t]];C.push(d[J[t]].subDefVal);F.push(null!=O?O.split(","):[])}v.dependentPropsDefVal=C;v.dependentPropsVals=F}x.appendChild(p(A,N,v,E,B));E=!E}}for(t=0;t<u.length;t++)for(v=u[t],d=v.parentRow,c=0;c<v.values.length;c++)A=p(v.name,v.values[c],{type:v.type,parentRow:v.parentRow,isDeletable:v.isDeletable,
index:c,defVal:v.defVal,countProperty:v.countProperty,size:v.size},0==c%2,v.flipBkg),d.parentNode.insertBefore(A,d.nextSibling),d=A;b.appendChild(x);D();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,f=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight=
"20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var g="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";l.style.width="210px";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(b){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(b)}))})(m);k.push(p);l.appendChild(p)}var q=mxUtils.bind(this,function(b){null!=k[b]&&(null!=this.format.currentScheme&&null!=k[this.format.currentScheme]&&(k[this.format.currentScheme].style.background=
@@ -3284,9 +3285,9 @@ mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var n=m
l.selectionModel.addListener(mxEvent.CHANGE,u);l.model.addListener(mxEvent.CHANGE,u);l.addListener(mxEvent.REFRESH,u);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";l.isEnabled()&&(v.appendChild(q),v.appendChild(n),m.appendChild(v));return{div:m,refresh:u}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,
b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=Graph.getFontUrl(b,d);for(var f=0;f<c.length;f++)c[f].getAttribute("face")==b&&c[f].getAttribute("data-font-src")!=d&&c[f].setAttribute("data-font-src",d)}};var D=Graph.prototype.isFastZoomEnabled;
Graph.prototype.isFastZoomEnabled=function(){return D.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 b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(A){null!=window.console&&console.log("Error in vars URL parameter: "+A)}};Graph.prototype.getExportVariables=
-function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var E=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=E.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};
+function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var F=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=F.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};
var M=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,f,e,g,l,k,m,p,q,n,u,v){var x=null,t=null,y=null;n||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.defaultForegroundColor,y=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.defaultForegroundColor="darkTheme"==this.defaultThemeName?"#000000":"#f0f0f0",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var D=M.apply(this,
-arguments),B=this.getCustomFonts();if(q&&0<B.length){var F=D.ownerDocument,N=null!=F.createElementNS?F.createElementNS(mxConstants.NS_SVG,"style"):F.createElement("style");null!=F.setAttributeNS?N.setAttributeNS("type","text/css"):N.setAttribute("type","text/css");for(var A="",E="",C=0;C<B.length;C++){var J=B[C].name,O=B[C].url;Graph.isCssFontUrl(O)?A+="@import url("+O+");\n":E+='@font-face {\nfont-family: "'+J+'";\nsrc: url("'+O+'");\n}\n'}N.appendChild(F.createTextNode(A+E));D.getElementsByTagName("defs")[0].appendChild(N)}null!=
+arguments),B=this.getCustomFonts();if(q&&0<B.length){var E=D.ownerDocument,N=null!=E.createElementNS?E.createElementNS(mxConstants.NS_SVG,"style"):E.createElement("style");null!=E.setAttributeNS?N.setAttributeNS("type","text/css"):N.setAttribute("type","text/css");for(var A="",F="",C=0;C<B.length;C++){var J=B[C].name,O=B[C].url;Graph.isCssFontUrl(O)?A+="@import url("+O+");\n":F+='@font-face {\nfont-family: "'+J+'";\nsrc: url("'+O+'");\n}\n'}N.appendChild(E.createTextNode(A+F));D.getElementsByTagName("defs")[0].appendChild(N)}null!=
x&&(this.defaultPageBackgroundColor=y,this.defaultForegroundColor=t,this.stylesheet=x,this.refresh());return D};var G=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=G.apply(this,arguments);if(this.mathEnabled){var d=b.drawText;b.drawText=function(b,c){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var f=b.text.getContentNode();if(null!=f){f=f.cloneNode(!0);if(f.getElementsByTagNameNS)for(var e=
f.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=f.innerHTML&&(e=b.text.value,b.text.value=f.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,arguments)}}return b};var K=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){K.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=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"),
@@ -3326,29 +3327,29 @@ mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilR
"/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(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var da=mxMarker.createMarker;mxMarker.createMarker=
function(b,d,c,f,e,g,l,k,m,p){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&mxStencilRegistry.getStencil(q)}return da.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(k,Math.max(parseInt(v.value),parseInt(u.value))));u.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(u.value))))}function f(d){function c(d,c,g){var l=d.useCssTransforms,k=d.currentTranslate,m=d.currentScale,p=d.view.translate,
q=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=1,d.view.translate=new mxPoint(0,0),d.view.scale=1);var n=d.getGraphBounds(),u=0,v=0,x=J.get(),t=1/d.pageScale,B=D.checked;if(B)var t=parseInt(Q.value),N=parseInt(M.value),t=Math.min(x.height*N/(n.height/d.view.scale),x.width*t/(n.width/d.view.scale));else t=parseInt(y.value)/(100*d.pageScale),isNaN(t)&&(f=1/d.pageScale,y.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*
-f);x.height=Math.ceil(x.height*f);t*=f;!B&&d.pageVisible?(n=d.getPageLayout(),u-=n.x*x.width,v-=n.y*x.height):B=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,u,v,B);c.pageSelector=!1;c.mathEnabled=!1;u=b.getCurrentFile();null!=u&&(c.title=u.getTitle());var E=c.writeHead;c.writeHead=function(c){E.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),
+f);x.height=Math.ceil(x.height*f);t*=f;!B&&d.pageVisible?(n=d.getPageLayout(),u-=n.x*x.width,v-=n.y*x.height):B=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,u,v,B);c.pageSelector=!1;c.mathEnabled=!1;u=b.getCurrentFile();null!=u&&(c.title=u.getTitle());var C=c.writeHead;c.writeHead=function(c){C.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),
c.writeln("@media print {"),c.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),c.writeln("}"),c.writeln("</style>"));null!=b.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(b.editor.fontCss),c.writeln("</style>"));for(var f=d.getCustomFonts(),e=0;e<f.length;e++){var g=f[e].name,l=f[e].url;Graph.isCssFontUrl(l)?c.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+
-mxUtils.htmlEntities(g)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};if("undefined"!==typeof MathJax){var C=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=C.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}u=null;v=e.enableFlowAnimation;e.enableFlowAnimation=
+mxUtils.htmlEntities(g)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};if("undefined"!==typeof MathJax){var F=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=F.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}u=null;v=e.enableFlowAnimation;e.enableFlowAnimation=
!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());c.open(null,null,g,!0);e.enableFlowAnimation=v;null!=u&&(e.stylesheet=u,e.refresh())}else{x=d.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=B;c.appendGraph(d,t,u,v,g,!0);g=d.getCustomFonts();if(null!=c.wnd)for(u=0;u<g.length;u++)v=g[u].name,B=g[u].url,Graph.isCssFontUrl(B)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(B)+
'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(B)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=k,d.currentScale=m,d.view.translate=p,d.view.scale=q);return c}var f=parseInt(G.value)/100;isNaN(f)&&(f=1,G.value="100 %");var f=.75*f,g=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(g=e.stylesheet,
e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=u.value,k=v.value,p=!q.checked,n=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,D.checked,Q.value,M.value,parseInt(y.value)/100,parseInt(G.value)/100,J.get());else{p&&(p=l==m&&k==m);if(!p&&null!=b.pages&&b.pages.length){var x=0,p=b.pages.length-1;q.checked||(x=parseInt(l)-1,p=parseInt(k)-1);for(var t=x;t<=p;t++){var B=b.pages[t],l=B==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=
-!1,N=null,E=null;null==B.viewState&&null==B.root&&b.updatePageRoot(B);null!=B.viewState&&(k=B.viewState.pageVisible,x=B.viewState.mathEnabled,N=B.viewState.background,E=B.viewState.backgroundImage,l.extFonts=B.viewState.extFonts);l.background=N;l.backgroundImage=null!=E?new mxImage(E.src,E.width,E.height):null;l.pageVisible=k;l.mathEnabled=x;var C=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?B.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:C.apply(this,
+!1,N=null,C=null;null==B.viewState&&null==B.root&&b.updatePageRoot(B);null!=B.viewState&&(k=B.viewState.pageVisible,x=B.viewState.mathEnabled,N=B.viewState.background,C=B.viewState.backgroundImage,l.extFonts=B.viewState.extFonts);l.background=N;l.backgroundImage=null!=C?new mxImage(C.src,C.width,C.height):null;l.pageVisible=k;l.mathEnabled=x;var F=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?B.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:F.apply(this,
arguments)};document.body.appendChild(l.container);b.updatePageRoot(B);l.model.setRoot(B.root)}n=c(l,n,t!=p);l!=e&&l.container.parentNode.removeChild(l.container)}}else n=c(e);null==n?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(n.mathEnabled&&(p=n.wnd.document,d&&(n.wnd.IMMEDIATE_PRINT=!0),p.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),n.closeDocument(),!n.mathEnabled&&d&&PrintDialog.printPreview(n));null!=g&&(e.stylesheet=
g,e.refresh())}}var e=b.editor.graph,g=document.createElement("div"),l=document.createElement("h3");l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,d||mxResources.get("print"));g.appendChild(l);var k=1,m=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 n=q.cloneNode(!0);q.setAttribute("checked","checked");n.setAttribute("value","range");p.appendChild(n);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");p.appendChild(l);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type",
"number");u.setAttribute("min","1");u.style.width="50px";p.appendChild(u);l=document.createElement("span");mxUtils.write(l,mxResources.get("to"));p.appendChild(l);var v=u.cloneNode(!0);p.appendChild(v);mxEvent.addListener(u,"focus",function(){n.checked=!0});mxEvent.addListener(v,"focus",function(){n.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(k=b.pages.length,null!=b.currentPage))for(l=0;l<b.pages.length;l++)if(b.currentPage==b.pages[l]){m=l+
1;u.value=m;v.value=m;break}u.setAttribute("max",k);v.setAttribute("max",k);b.isPagesEnabled()?1<k&&(g.appendChild(p),n.checked=!0):n.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));x.appendChild(l);var y=document.createElement("input");
y.style.cssText="margin:0 8px 0 8px;";y.setAttribute("value","100 %");y.style.width="50px";x.appendChild(y);mxEvent.addListener(y,"focus",function(){t.checked=!0});g.appendChild(x);var p=p.cloneNode(!1),D=t.cloneNode(!0);D.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(D);p.appendChild(l);x=document.createElement("table");x.style.display="inline-block";
-var B=document.createElement("tbody"),N=document.createElement("tr"),E=N.cloneNode(!0),C=document.createElement("td"),O=C.cloneNode(!0),F=C.cloneNode(!0),H=C.cloneNode(!0),L=C.cloneNode(!0),K=C.cloneNode(!0);C.style.textAlign="right";H.style.textAlign="right";mxUtils.write(C,mxResources.get("fitTo"));var Q=document.createElement("input");Q.style.cssText="margin:0 8px 0 8px;";Q.setAttribute("value","1");Q.setAttribute("min","1");Q.setAttribute("type","number");Q.style.width="40px";O.appendChild(Q);
-l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));F.appendChild(l);mxUtils.write(H,mxResources.get("fitToBy"));var M=Q.cloneNode(!0);L.appendChild(M);mxEvent.addListener(Q,"focus",function(){D.checked=!0});mxEvent.addListener(M,"focus",function(){D.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));K.appendChild(l);N.appendChild(C);N.appendChild(O);N.appendChild(F);E.appendChild(H);E.appendChild(L);E.appendChild(K);
-B.appendChild(N);B.appendChild(E);x.appendChild(B);p.appendChild(x);g.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 J=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(l);l=document.createElement("span");mxUtils.write(l,
+var B=document.createElement("tbody"),N=document.createElement("tr"),F=N.cloneNode(!0),C=document.createElement("td"),O=C.cloneNode(!0),E=C.cloneNode(!0),H=C.cloneNode(!0),L=C.cloneNode(!0),K=C.cloneNode(!0);C.style.textAlign="right";H.style.textAlign="right";mxUtils.write(C,mxResources.get("fitTo"));var Q=document.createElement("input");Q.style.cssText="margin:0 8px 0 8px;";Q.setAttribute("value","1");Q.setAttribute("min","1");Q.setAttribute("type","number");Q.style.width="40px";O.appendChild(Q);
+l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));E.appendChild(l);mxUtils.write(H,mxResources.get("fitToBy"));var M=Q.cloneNode(!0);L.appendChild(M);mxEvent.addListener(Q,"focus",function(){D.checked=!0});mxEvent.addListener(M,"focus",function(){D.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));K.appendChild(l);N.appendChild(C);N.appendChild(O);N.appendChild(E);F.appendChild(H);F.appendChild(L);F.appendChild(K);
+B.appendChild(N);B.appendChild(F);x.appendChild(B);p.appendChild(x);g.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 J=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.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 G=document.createElement("input");G.style.cssText="margin:0 8px 0 8px;";G.setAttribute("value","100 %");G.style.width="60px";p.appendChild(G);g.appendChild(p);l=document.createElement("div");l.style.cssText="text-align:right;margin:48px 0 0 0;";p=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});p.className="geBtn";b.editor.cancelFirst&&l.appendChild(p);b.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),
x.className="geBtn",l.appendChild(x));PrintDialog.previewEnabled&&(x=mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();f(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();f(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(p);g.appendChild(l);this.container=g};var N=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==
this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}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)}}else N.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 Q=document.createElement("canvas"),X=new Image;X.onload=function(){try{Q.getContext("2d").drawImage(X,
-0,0);var b=Q.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=b&&6<b.length}catch(J){}};X.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(F){}})();
+0,0);var b=Q.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=b&&6<b.length}catch(J){}};X.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(E){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};b.afterDecode=function(b,e,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);null!=k.mathEnabled&&(k.mathEnabled=!k.mathEnabled);null!=k.shadowVisible&&(k.shadowVisible=!k.shadowVisible);return k};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.5.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=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.6.0";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&&"1"!=urlParams.extAuth&&"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(b,c,e,g,k,q,n){q=null!=q?q:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":
@@ -3408,7 +3409,7 @@ urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);f.g
function(b){d===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),m()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(l);l=window.setTimeout(k,g)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();k()}));m();k()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){f(b)}),
mxUtils.bind(this,function(b){null!=e&&e(b)})):f("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||g.warningImage,b.tooltip,b.align,b.valign,b.offset);d.addListener(mxEvent.CLICK,function(d,c){e.alert(b.tooltip)});return d}var c=null,e=this;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var g=this.editor.graph,k=g.getModel();k.beginUpdate();var n=null;try{for(b=b.firstChild;null!=b;){if("update"==
b.nodeName){var v=k.getCell(b.getAttribute("id"));if(null!=v){try{var t=b.getAttribute("value");if(null!=t){var x=mxUtils.parseXml(t).documentElement;if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(v,x);else for(var C=x.attributes,H=0;H<C.length;H++)g.setAttributeForCell(v,C[H].nodeName,0<C[H].nodeValue.length?C[H].nodeValue:null)}}catch(O){null!=window.console&&console.log("Error in value for "+v.id+": "+O)}try{var D=b.getAttribute("style");null!=D&&g.model.setStyle(v,D)}catch(O){null!=
-window.console&&console.log("Error in style for "+v.id+": "+O)}try{var E=b.getAttribute("icon");if(null!=E){var M=0<E.length?JSON.parse(E):null;null!=M&&M.append||g.removeCellOverlays(v);null!=M&&g.addCellOverlay(v,d(M))}}catch(O){null!=window.console&&console.log("Error in icon for "+v.id+": "+O)}try{var G=b.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),K=g.getCellGeometry(v);if(null!=K){K=K.clone();for(key in G){var B=parseFloat(G[key]);"dx"==key?K.x+=B:"dy"==key?K.y+=B:"dw"==key?K.width+=
+window.console&&console.log("Error in style for "+v.id+": "+O)}try{var F=b.getAttribute("icon");if(null!=F){var M=0<F.length?JSON.parse(F):null;null!=M&&M.append||g.removeCellOverlays(v);null!=M&&g.addCellOverlay(v,d(M))}}catch(O){null!=window.console&&console.log("Error in icon for "+v.id+": "+O)}try{var G=b.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),K=g.getCellGeometry(v);if(null!=K){K=K.clone();for(key in G){var B=parseFloat(G[key]);"dx"==key?K.x+=B:"dy"==key?K.y+=B:"dw"==key?K.width+=
B:"dh"==key?K.height+=B:K[key]=parseFloat(G[key])}g.model.setGeometry(v,K)}}}catch(O){null!=window.console&&console.log("Error in icon for "+v.id+": "+O)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=L&&(new mxCodec(b.firstChild)).decode(L,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(g.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))g.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||
0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(n=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{k.endUpdate()}null!=n&&this.chromelessResize&&this.chromelessResize(!0,n)}return c};EditorUi.prototype.getCopyFilename=function(b,c){var d=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,f="",e=d.lastIndexOf(".");0<=e&&(f=d.substring(e),d=d.substring(0,e));if(c)var g=new Date,e=g.getFullYear(),k=g.getMonth()+1,n=g.getDate(),
t=g.getHours(),x=g.getMinutes(),g=g.getSeconds(),d=d+(" "+(e+"-"+k+"-"+n+"-"+t+"-"+x+"-"+g));return d=mxResources.get("copyOf",[d])+f};EditorUi.prototype.fileLoaded=function(b,c){var d=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var f=!1;this.hideDialog();null!=d&&(EditorUi.debug("File.closed",[d]),d.removeListener(this.descriptorChangedListener),d.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var e=mxUtils.bind(this,function(){this.setGraphEnabled(!1);
@@ -3427,16 +3428,16 @@ this.libraryLoaded(b,f,d.documentElement.getAttribute("title"),c)}else throw{mes
null,l=mxUtils.bind(this,function(d,c){0==d.length&&b.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),c.appendChild(f)):this.addLibraryEntries(d,c)});null!=this.sidebar&&null!=c&&this.sidebar.addEntries(c);e=null!=e&&0<e.length?e:b.getTitle();var k=this.sidebar.addPalette(b.getHash(),e,null!=g?g:!0,mxUtils.bind(this,function(b){l(c,b)}));this.repositionLibrary(d);var m=k.parentNode.previousSibling;g=m.getAttribute("title");
null!=g&&0<g.length&&".scratchpad"!=b.title&&m.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+g);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";m.style.position="relative";var t=document.createElement("img");t.setAttribute("src",Editor.crossImage);t.setAttribute("title",mxResources.get("close"));t.setAttribute("valign","absmiddle");t.setAttribute("border","0");t.style.position="relative";
t.style.top="2px";t.style.width="14px";t.style.cursor="pointer";t.style.margin="0 3px";Editor.isDarkMode()&&(t.style.filter="invert(100%)");var H=null;if(".scratchpad"!=b.title||this.closableScratchpad)n.appendChild(t),mxEvent.addListener(t,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=H?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));
-if(b.isEditable()){var D=this.editor.graph,E=null,M=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),k,c,b,b.getMode());mxEvent.consume(d)}),G=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=E&&null!=E.parentNode&&E.parentNode.removeChild(E),E=t.cloneNode(!1),E.setAttribute("src",Editor.spinImage),E.setAttribute("title",mxResources.get("saving")),E.style.cursor="default",E.style.marginRight="2px",E.style.marginTop="-2px",n.insertBefore(E,n.firstChild),m.style.paddingRight=
-18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=E&&null!=E.parentNode&&(E.parentNode.removeChild(E),m.style.paddingRight=18*n.childNodes.length+"px")})):null==H&&(H=t.cloneNode(!1),H.setAttribute("src",Editor.saveImage),H.setAttribute("title",mxResources.get("save")),n.insertBefore(H,n.firstChild),mxEvent.addListener(H,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==
+if(b.isEditable()){var D=this.editor.graph,F=null,M=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),k,c,b,b.getMode());mxEvent.consume(d)}),G=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=F&&null!=F.parentNode&&F.parentNode.removeChild(F),F=t.cloneNode(!1),F.setAttribute("src",Editor.spinImage),F.setAttribute("title",mxResources.get("saving")),F.style.cursor="default",F.style.marginRight="2px",F.style.marginTop="-2px",n.insertBefore(F,n.firstChild),m.style.paddingRight=
+18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=F&&null!=F.parentNode&&(F.parentNode.removeChild(F),m.style.paddingRight=18*n.childNodes.length+"px")})):null==H&&(H=t.cloneNode(!1),H.setAttribute("src",Editor.saveImage),H.setAttribute("title",mxResources.get("save")),n.insertBefore(H,n.firstChild),mxEvent.addListener(H,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==
H||b.isModified()||(m.style.paddingRight=18*n.childNodes.length+"px",H.parentNode.removeChild(H),H=null)});mxEvent.consume(d)})),m.style.paddingRight=18*n.childNodes.length+"px")}),K=mxUtils.bind(this,function(b,d,e,g){b=D.cloneCells(mxUtils.sortCells(D.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=D.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,g||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
w:d.width,h:d.height};null!=g&&(b.title=g);c.push(b);G(e);null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)}),B=mxUtils.bind(this,function(b){if(D.isSelectionEmpty())D.getRubberband().isActive()?(D.getRubberband().execute(b),D.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=D.getSelectionCells(),c=D.view.getBounds(d),f=D.view.scale;c.x/=f;c.y/=f;c.width/=f;c.height/=f;c.x-=D.view.translate.x;
c.y-=D.view.translate.y;K(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){D.isMouseDown&&null!=D.panningManager&&null!=D.graphHandler.first&&(D.graphHandler.suspend(),null!=D.graphHandler.hint&&(D.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",D.panningManager.stop(),D.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){D.isMouseDown&&null!=D.panningManager&&null!=D.graphHandler&&
(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,D.panningManager.stop(),D.graphHandler.reset(),D.isMouseDown=!1,D.autoScroll=!0,B(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){D.isMouseDown&&null!=D.graphHandler.first&&(D.graphHandler.resume(),null!=D.graphHandler.hint&&(D.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",D.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,
-"dragover",mxUtils.bind(this,function(b){k.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(b){k.style.cursor="";k.style.backgroundColor="";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,g,m,p,q,n,u,v){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+
-this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,p,q),d)],d[0].vertex=!0,K(d,new mxRectangle(0,0,p,q),b,mxEvent.isAltDown(b)?null:n.substring(0,n.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null);else{var x=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var g=Editor.extractGraphModelFromPdf(d);null!=g&&0<g.length&&(d=g)}if(null!=d)if(g=mxUtils.parseXml(d),"mxlibrary"==g.documentElement.nodeName)try{var m=
-JSON.parse(mxUtils.getTextContent(g.documentElement));l(m,k);c=c.concat(m);G(b);this.spinner.stop();x=!0}catch(Y){}else if("mxfile"==g.documentElement.nodeName)try{for(var p=g.documentElement.getElementsByTagName("diagram"),m=0;m<p.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(p[m])),n=this.editor.graph.getBoundingBoxFromGeometry(q);K(q,new mxRectangle(0,0,n.width,n.height),b)}x=!0}catch(Y){null!=window.console&&console.log("error in drop handler:",Y)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
-null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?this.importVisio(v,function(b){t(b,"text/xml")},null,n):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,n)&&null!=v?this.parseFile(v,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?t(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?
+"dragover",mxUtils.bind(this,function(b){k.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(b){k.style.cursor="";k.style.backgroundColor="";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,g,m,p,q,n,u,x){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+
+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,p,q),d)],d[0].vertex=!0,K(d,new mxRectangle(0,0,p,q),b,mxEvent.isAltDown(b)?null:n.substring(0,n.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null);else{var v=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var g=Editor.extractGraphModelFromPdf(d);null!=g&&0<g.length&&(d=g)}if(null!=d)if(g=mxUtils.parseXml(d),"mxlibrary"==g.documentElement.nodeName)try{var m=
+JSON.parse(mxUtils.getTextContent(g.documentElement));l(m,k);c=c.concat(m);G(b);this.spinner.stop();v=!0}catch(Y){}else if("mxfile"==g.documentElement.nodeName)try{for(var p=g.documentElement.getElementsByTagName("diagram"),m=0;m<p.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(p[m])),n=this.editor.graph.getBoundingBoxFromGeometry(q);K(q,new mxRectangle(0,0,n.width,n.height),b)}v=!0}catch(Y){null!=window.console&&console.log("error in drop handler:",Y)}v||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)});null!=x&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?this.importVisio(x,function(b){t(b,"text/xml")},null,n):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,n)&&null!=x?this.parseFile(x,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?t(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?
"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):t(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"dragleave",function(b){k.style.cursor="";k.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));t=t.cloneNode(!1);t.setAttribute("src",Editor.editImage);t.setAttribute("title",mxResources.get("edit"));n.insertBefore(t,n.firstChild);mxEvent.addListener(t,"click",M);mxEvent.addListener(k,"dblclick",function(b){mxEvent.getSource(b)==
k&&M(b)});g=t.cloneNode(!1);g.setAttribute("src",Editor.plusImage);g.setAttribute("title",mxResources.get("add"));n.insertBefore(g,n.firstChild);mxEvent.addListener(g,"click",B);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(g=document.createElement("span"),g.setAttribute("title",mxResources.get("help")),g.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);
mxEvent.consume(b)})),n.insertBefore(g,n.firstChild))}m.appendChild(n);m.style.paddingRight=18*n.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,c){for(var d=0;d<b.length;d++){var f=b[d],e=f.data;if(null!=e){var e=this.convertDataUri(e),g="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==f.aspect&&(g+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(g+"image="+e,f.w,f.h,"",f.title||"",!1,!1,!0))}else null!=f.xml&&(e=this.stringToCells(Graph.decompress(f.xml)),
@@ -3448,7 +3449,7 @@ c,e,g,k){b=new ImageDialog(this,b,c,e,g,k);this.showDialog(b.container,Graph.fil
b,c,e,g,k);this.showDialog(b.container,640,440,!0,!1,mxUtils.bind(this,function(b){b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));b.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(b){var d=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(b){this.editor.graph.isSelectionEmpty()&&d.refresh()}));return d};EditorUi.prototype.createSidebarFooterContainer=function(){var b=this.createDiv("geSidebarContainer geSidebarFooter");
b.style.position="absolute";b.style.overflow="hidden";var c=document.createElement("a");c.className="geTitle";c.style.color="#DF6C0C";c.style.fontWeight="bold";c.style.height="100%";c.style.paddingTop="9px";c.innerHTML="<span>+</span>";var e=c.getElementsByTagName("span")[0];e.style.fontSize="18px";e.style.marginRight="5px";mxUtils.write(c,mxResources.get("moreShapes")+"...");mxEvent.addListener(c,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(c,
"click",mxUtils.bind(this,function(b){this.actions.get("shapes").funct();mxEvent.consume(b)}));b.appendChild(c);return b};EditorUi.prototype.handleError=function(b,c,e,g,k,q,n){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=b&&null!=b.error?b.error:b;if(null!=b&&null!=b.stack&&null!=b.message)try{n?null!=window.console&&console.error("EditorUi.handleError:",b):EditorUi.logError("Caught: "+(""==b.message&&null!=b.name)?b.name:b.message,b.filename,b.lineNumber,
-b.columnNumber,b,"INFO")}catch(E){}if(null!=f||null!=c){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok"),m=null;c=null!=c?c:mxResources.get("error");if(null!=f){null!=f.retry&&(l=mxResources.get("cancel"),m=function(){d();f.retry()});if(404==f.code||404==f.status||403==f.code){n=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=k?k:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=
+b.columnNumber,b,"INFO")}catch(F){}if(null!=f||null!=c){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok"),m=null;c=null!=c?c:mxResources.get("error");if(null!=f){null!=f.retry&&(l=mxResources.get("cancel"),m=function(){d();f.retry()});if(404==f.code||404==f.status||403==f.code){n=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 p=null!=k?null:null!=q?q:window.location.hash;if(null!=p&&("#G"==p.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==p.substring(0,45))&&(null!=b&&null!=b.error&&(null!=b.error.errors&&0<b.error.errors.length&&"fileAccess"==b.error.errors[0].reason||null!=b.error.data&&0<b.error.data.length&&"fileAccess"==b.error.data[0].reason)||404==f.code||404==f.status)){p="#U"==p.substring(0,
2)?p.substring(45,p.lastIndexOf("%26ex")):p.substring(2);this.showError(c,n,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+p);this.handleError(b,c,e,g,k)}),m,mxResources.get("changeUser"),mxUtils.bind(this,function(){function b(){e.innerHTML="";for(var b=0;b<d.length;b++){var c=document.createElement("option");mxUtils.write(c,d[b].displayName);c.value=b;e.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";
mxUtils.write(c,"<"+d[b].email+">");c.setAttribute("disabled","disabled");e.appendChild(c)}c=document.createElement("option");mxUtils.write(c,mxResources.get("addAccount"));c.value=d.length;e.appendChild(c)}var d=this.drive.getUsersList(),c=document.createElement("div"),f=document.createElement("span");f.style.marginTop="6px";mxUtils.write(f,mxResources.get("changeUser")+": ");c.appendChild(f);var e=document.createElement("select");e.style.width="200px";b();mxEvent.addListener(e,"change",mxUtils.bind(this,
@@ -3468,7 +3469,7 @@ d.textarea.style.height="380px";this.showDialog(d.container,620,460,!0,!0,null,n
q=65==(f?parseInt(f[2],10):!1)?!1:q}if(q||this.isOffline()){d.href=URL.createObjectURL(g?this.base64ToBlob(b,e):new Blob([b],{type:e}));q?d.download=c:d.setAttribute("target","_blank");document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},2E4),d.click(),d.parentNode.removeChild(d)}catch(y){}}else this.createEchoRequest(b,c,e,g,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,e,g,k,q){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,
b+(null!=e?"&mime="+e:"")+(null!=k?"&format="+k:"")+(null!=q?"&base64="+q:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(g?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=c||"";for(var d=atob(b),e=d.length,f=Math.ceil(e/1024),g=Array(f),k=0;k<f;++k){for(var n=1024*k,t=Math.min(n+1024,e),x=Array(t-n),C=0;n<t;++C,++n)x[C]=d[n].charCodeAt(0);g[k]=new Uint8Array(x)}return new Blob(g,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,g,k,q,n,v){q=null!=q?q:!1;n=null!=n?
n:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(q);isLocalStorage&&k++;var d=4>=k?2:6<k?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(d,c){try{if("_blank"==c)if(null!=e&&"image/"==e.substring(0,6))this.openInNewWindow(b,e,g);else if(null!=e&&"text/html"==e.substring(0,9)){var f=new EmbedDialog(this,b);this.showDialog(f.container,450,240,!0,!0);f.init()}else{var l=window.open("about:blank");null==l?mxUtils.popup(b,!0):(l.document.write("<pre>"+mxUtils.htmlEntities(b,
-!1)+"</pre>"),l.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,g,null,v):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(b,d,e,g,c,f)}catch(M){this.handleError(M)}}))}catch(E){this.handleError(E)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,q,n,null,1<k,d,b,e,g);q=this.isServices(k)?k>d?390:270:160;this.showDialog(c.container,420,q,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=
+!1)+"</pre>"),l.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,g,null,v):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(b,d,e,g,c,f)}catch(M){this.handleError(M)}}))}catch(F){this.handleError(F)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,q,n,null,1<k,d,b,e,g);q=this.isServices(k)?k>d?390:270:160;this.showDialog(c.container,420,q,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=
function(b,c,e){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(b,!0):("image/svg+xml"!=c||mxClient.IS_SVG?"image/svg+xml"==c?d.document.write("<html>"+b+"</html>"):(b=e?b:btoa(unescape(encodeURIComponent(b))),d.document.write('<html><img style="max-width:100%;" src="data:'+c+";base64,"+b+'"/></html>')):d.document.write("<html><pre>"+mxUtils.htmlEntities(b,!1)+"</pre></html>"),d.document.close())};var k=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.isChromelessImageExportEnabled=
function(){return"draw.io"!=this.getServiceName()||/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)};EditorUi.prototype.addChromelessToolbarItems=function(b){if(null!=urlParams.tags){this.tagsDialog=this.tagsComponent=null;var d=b(mxUtils.bind(this,function(b){null==this.tagsComponent&&(this.tagsComponent=this.editor.graph.createTagsDialog(mxUtils.bind(this,function(){return null!=this.tagsDialog}),!0),this.tagsComponent.div.getElementsByTagName("div")[0].style.position=
"",mxUtils.setPrefixedStyle(this.tagsComponent.div.style,"borderRadius","5px"),this.tagsComponent.div.className="geScrollable",this.tagsComponent.div.style.maxHeight="160px",this.tagsComponent.div.style.maxWidth="120px",this.tagsComponent.div.style.padding="4px",this.tagsComponent.div.style.overflow="auto",this.tagsComponent.div.style.height="auto",this.tagsComponent.div.style.position="fixed",this.tagsComponent.div.style.fontFamily=Editor.defaultHtmlFont,mxClient.IS_IE||mxClient.IS_IE11?(this.tagsComponent.div.style.backgroundColor=
@@ -3482,10 +3483,10 @@ else{this.exportDialog=document.createElement("div");var e=c.getBoundingClientRe
function(b){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(b,null,"png");b=document.createElement("img");b.style.maxWidth="140px";b.style.maxHeight="140px";b.style.cursor="pointer";b.style.backgroundColor="white";b.setAttribute("title",mxResources.get("openInNewWindow"));b.setAttribute("border","0");b.setAttribute("src",c);this.exportDialog.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,
function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);d.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",d);document.body.appendChild(this.exportDialog)}mxEvent.consume(b)}),Editor.cameraImage,mxResources.get("export"))}};EditorUi.prototype.saveData=function(b,c,e,g,k){this.isLocalFileSave()?
this.saveLocalFile(e,b,g,k,c):this.saveRequest(b,c,mxUtils.bind(this,function(b,d){return this.createEchoRequest(e,b,g,k,c,d)}),e,k,g)};EditorUi.prototype.saveRequest=function(b,c,e,g,k,q,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);isLocalStorage&&d++;var f=4>=d?2:6<d?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,d){if("_blank"==d||null!=b&&0<b.length){var f=e("_blank"==d?null:b,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");
-null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){q=null!=q?q:"pdf"==c?"application/pdf":"image/"+c;if(null!=g)try{this.exportFile(g,b,q,!0,d,e)}catch(E){this.handleError(E)}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(),b,q,!0,d,e)}catch(E){this.handleError(E)}else this.handleError({message:mxResources.get("errorSavingFile")})}),
+null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){q=null!=q?q:"pdf"==c?"application/pdf":"image/"+c;if(null!=g)try{this.exportFile(g,b,q,!0,d,e)}catch(F){this.handleError(F)}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(),b,q,!0,d,e)}catch(F){this.handleError(F)}else this.handleError({message:mxResources.get("errorSavingFile")})}),
function(b){this.spinner.stop();this.handleError(b)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<d,f,g,q,k);d=this.isServices(d)?4<d?390:270:160;this.showDialog(b.container,420,d,!0,!0);b.init()};EditorUi.prototype.isServices=function(b){return 1!=b};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(b,c,e,g,k,q){};EditorUi.prototype.pickFolder=function(b,
-c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,q,n,t,y,x,C,H,D,E){if(this.spinner.spin(document.body,mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=C?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,n,t,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,C,H);g&&this.editor.graph.addSvgShadow(l);var m=
-this.getBaseFilename()+(k?".drawio":"")+".svg";E=null!=E?E:mxUtils.bind(this,function(b){this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});var p=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,y,null,null,null,!1));E(Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+
+c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,q,n,t,y,x,C,H,D,F){if(this.spinner.spin(document.body,mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=C?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,n,t,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,C,H);g&&this.editor.graph.addSvgShadow(l);var m=
+this.getBaseFilename()+(k?".drawio":"")+".svg";F=null!=F?F:mxUtils.bind(this,function(b){this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});var p=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,y,null,null,null,!1));F(Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+
"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(l);var u=mxUtils.bind(this,function(b){q?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,p,this.thumbImageCache)):p(b)});D?this.embedFonts(l,u):(this.editor.addFontCss(l),u(l))}catch(da){this.handleError(da)}};EditorUi.prototype.addRadiobox=function(b,c,e,g,k,q,n){return this.addCheckbox(b,e,g,k,q,n,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,g,k,q,
n,t){q=null!=q?q:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type",n?"radio":"checkbox");n="geCheckbox-"+Editor.guid();d.id=n;null!=t&&d.setAttribute("name",t);e&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);g&&d.setAttribute("disabled","disabled");q&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",n),b.appendChild(e),k||mxUtils.br(b));return d};EditorUi.prototype.addEditButton=
function(b,c){var d=this.addCheckbox(b,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var e=this.getCurrentFile(),f="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var g=document.createElement("select");g.style.width="120px";g.style.marginLeft="8px";g.style.marginRight="10px";g.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));g.appendChild(e);e=document.createElement("option");
@@ -3502,15 +3503,15 @@ c,e,g,k,q,y);b=this.getCurrentFile();c=!0;null!=n?e="#U"+encodeURIComponent(n):(
"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";d.appendChild(f);var l=document.createElement("div");l.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");l.appendChild(f);var m=document.createElement("span");mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));l.appendChild(m);mxUtils.br(l);l.appendChild(k);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));l.appendChild(m);var n=this.getCurrentFile();null==e&&null!=n&&n.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")),l.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(n.getId())})));f.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),H=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var D=document.createElement("input");D.setAttribute("type","text");D.style.marginRight="16px";D.style.width="60px";D.style.marginLeft=
-"4px";D.style.marginRight="12px";D.value="100%";d.appendChild(D);var E=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,M=M=this.addCheckbox(d,mxResources.get("allPages"),l,!l),G=this.addCheckbox(d,mxResources.get("layers"),!0),K=this.addCheckbox(d,mxResources.get("tags"),!0),B=this.addCheckbox(d,mxResources.get("lightbox"),!0),L=this.addEditButton(d,B),O=L.getEditInput();O.style.marginBottom="16px";mxEvent.addListener(B,"change",function(){B.checked?O.removeAttribute("disabled"):
-O.setAttribute("disabled","disabled");O.checked&&B.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,H.checked,D.value,t.getTarget(),t.getColor(),E.checked,M.checked,G.checked,K.checked,B.checked,L.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,g,k,q){var d=document.createElement("div");
+"4px";D.style.marginRight="12px";D.value="100%";d.appendChild(D);var F=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,M=M=this.addCheckbox(d,mxResources.get("allPages"),l,!l),G=this.addCheckbox(d,mxResources.get("layers"),!0),K=this.addCheckbox(d,mxResources.get("tags"),!0),B=this.addCheckbox(d,mxResources.get("lightbox"),!0),L=this.addEditButton(d,B),O=L.getEditInput();O.style.marginBottom="16px";mxEvent.addListener(B,"change",function(){B.checked?O.removeAttribute("disabled"):
+O.setAttribute("disabled","disabled");O.checked&&B.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,H.checked,D.value,t.getTarget(),t.getColor(),F.checked,M.checked,G.checked,K.checked,B.checked,L.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,g,k,q){var d=document.createElement("div");
d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,b||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var l=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";b=0;if(null!=l&&l.constructor==window.DriveFile&&!c){b=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(l.getId())}));p.style.marginTop="12px";p.className="geBtn";m.appendChild(p);d.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(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var n=null,t=null;if(null!=e||null!=g)b+=30,mxUtils.write(d,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%",d.appendChild(n),mxUtils.write(d,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=g+"px",d.appendChild(t),mxUtils.br(d);var E=this.addLinkSection(d,q);e=null!=this.pages&&1<this.pages.length;var M=null;
+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%",d.appendChild(n),mxUtils.write(d,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=g+"px",d.appendChild(t),mxUtils.br(d);var F=this.addLinkSection(d,q);e=null!=this.pages&&1<this.pages.length;var M=null;
if(null==l||l.constructor!=window.DriveFile||c)M=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var G=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!q),K=this.addEditButton(d,G),B=K.getEditInput();q&&(B.style.marginLeft=G.style.marginLeft,G.style.display="none",b-=20);var L=this.addCheckbox(d,mxResources.get("layers"),!0);L.style.marginLeft=B.style.marginLeft;L.style.marginTop="8px";var O=this.addCheckbox(d,mxResources.get("tags"),!0);O.style.marginLeft=B.style.marginLeft;O.style.marginBottom=
-"16px";O.style.marginTop="16px";mxEvent.addListener(G,"change",function(){G.checked?(L.removeAttribute("disabled"),B.removeAttribute("disabled")):(L.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"));B.checked&&G.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){k(E.getTarget(),E.getColor(),null==M?!0:M.checked,G.checked,K.getLink(),L.checked,null!=n?n.value:null,
-null!=t?t.value:null,O.checked)}),null,mxResources.get("create"),f);this.showDialog(c.container,340,300+b,!0,!0);null!=n?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)):E.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,g,k){var d=document.createElement("div");d.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:"+
+"16px";O.style.marginTop="16px";mxEvent.addListener(G,"change",function(){G.checked?(L.removeAttribute("disabled"),B.removeAttribute("disabled")):(L.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"));B.checked&&G.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){k(F.getTarget(),F.getColor(),null==M?!0:M.checked,G.checked,K.getLink(),L.checked,null!=n?n.value:null,
+null!=t?t.value:null,O.checked)}),null,mxResources.get("create"),f);this.showDialog(c.container,340,300+b,!0,!0);null!=n?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)):F.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,g,k){var d=document.createElement("div");d.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";d.appendChild(f);if(k){mxUtils.write(d,mxResources.get("zoom")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";l.style.marginLeft="4px";l.style.marginRight="12px";l.value=this.lastExportZoom||"100%";d.appendChild(l);mxUtils.write(d,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";d.appendChild(m);mxUtils.br(d)}var p=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),n=g?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),f=this.editor.graph,t=g?null:this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=t&&(t.style.marginBottom="16px");b=new CustomDialog(this,d,mxUtils.bind(this,function(){var b=parseInt(l.value)/
100||1,d=parseInt(m.value)||0;e(!p.checked,null!=n?n.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(k?25:0)+(g?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,g,k,q,n,t,y){n=null!=n?n:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,l="jpeg"==t?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
@@ -3519,11 +3520,11 @@ d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var p=document.cre
document.createElement("option");mxUtils.write(L,mxResources.get(b[m]));L.setAttribute("value",b[m]);B.appendChild(L)}y?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(B),mxUtils.br(d),l+=26,mxEvent.addListener(B,"change",function(){"selectionOnly"==B.value&&(u.checked=!0)})):q&&(d.appendChild(K),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(u,"change",function(){u.checked?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?
y&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",l-=30):(B.value="diagram",K.setAttribute("checked","checked"),K.defaultChecked=!0,mxEvent.addListener(u,"change",function(){B.value=u.checked?"selectionOnly":"diagram"}));var O=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),da=null;Editor.isDarkMode()&&(da=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var N=this.addCheckbox(d,mxResources.get("shadow"),
f.shadowVisible),Q=document.createElement("input");Q.style.marginTop="16px";Q.style.marginRight="8px";Q.setAttribute("type","checkbox");var X=document.createElement("input");X.style.marginTop="16px";X.style.marginRight="8px";X.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||Q.setAttribute("disabled","disabled");c&&(d.appendChild(Q),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),d.appendChild(X),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=
-60);var F=null;if("png"==t||"jpeg"==t)F=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var J=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=t);J.style.marginBottom="16px";var A=document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.className="geBtn";c=document.createElement("option");c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));
+60);var E=null;if("png"==t||"jpeg"==t)E=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var J=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=t);J.style.marginBottom="16px";var A=document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.className="geBtn";c=document.createElement("option");c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));
A.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));A.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));A.appendChild(c);"svg"==t&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(A),mxUtils.br(d),mxUtils.br(d),l+=50);e=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=
-p.value;k(p.value,O.checked,!u.checked,N.checked,J.checked,Q.checked,v.value,K.checked,!1,A.value,null!=F?F.checked:null,null!=da?da.checked:null,B.value,X.checked)}),null,e,g);this.showDialog(e.container,340,l,!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(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;
-if(null!=c){var l=document.createElement("h3");mxUtils.write(l,c);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(l)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),p=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&g,!g),n=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),D=this.addEditButton(d,t),E=D.getEditInput(),M=1<f.model.getChildCount(f.model.getRoot()),G=this.addCheckbox(d,mxResources.get("layers"),M,
-!M);G.style.marginLeft=E.style.marginLeft;G.style.marginBottom="12px";G.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(M&&G.removeAttribute("disabled"),E.removeAttribute("disabled")):(G.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"));E.checked&&t.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,p.checked,n.checked,t.checked,
+p.value;k(p.value,O.checked,!u.checked,N.checked,J.checked,Q.checked,v.value,K.checked,!1,A.value,null!=E?E.checked:null,null!=da?da.checked:null,B.value,X.checked)}),null,e,g);this.showDialog(e.container,340,l,!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(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;
+if(null!=c){var l=document.createElement("h3");mxUtils.write(l,c);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(l)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),p=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&g,!g),n=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),D=this.addEditButton(d,t),F=D.getEditInput(),M=1<f.model.getChildCount(f.model.getRoot()),G=this.addCheckbox(d,mxResources.get("layers"),M,
+!M);G.style.marginLeft=F.style.marginLeft;G.style.marginBottom="12px";G.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(M&&G.removeAttribute("disabled"),F.removeAttribute("disabled")):(G.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&t.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,p.checked,n.checked,t.checked,
D.getLink(),G.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,g,k,q,n,t){function d(d){var c=" ",m="";g&&(c=" 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:"")+(k?"&edit=_blank":"")+(q?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");b&&(m+="max-width:100%;");var p="";e&&(p=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+d+'"'+p+(""!=m?' style="'+m+'"':"")+c+"/>")}var f=this.editor.graph.getGraphBounds(),l=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(b){var c=g?this.getFileData(!0):null;b=
this.createImageDataUri(b,c,"png");d(b)}),null,null,null,mxUtils.bind(this,function(b){t({message:mxResources.get("unknownError")})}),null,!0,e?2:1,null,c,null,null,Editor.defaultBorder);else if(c=this.getFileData(!0),f.width*f.height<=MAX_AREA&&c.length<=MAX_REQUEST_SIZE){var m="";e&&(m="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var p=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(g?"1":"0")+m+"&xml="+encodeURIComponent(c));p.send(mxUtils.bind(this,function(){200<=p.getStatus()&&
@@ -3547,8 +3548,8 @@ c[d].root)};EditorUi.prototype.updatePageLinksForCell=function(b,c){var d=docume
e.model.getChildAt(c,n))};EditorUi.prototype.updatePageLink=function(b,c){if(Graph.isPageLink(c)){var d=b[c.substring(c.indexOf(",")+1)];c=null!=d?"data:page/id,"+d:null}else if("data:action/json,"==c.substring(0,17))try{var e=JSON.parse(c.substring(17));if(null!=e.actions){for(var f=0;f<e.actions.length;f++){var g=e.actions[f];if(null!=g.open&&Graph.isPageLink(g.open)){var k=g.open.substring(g.open.indexOf(",")+1),d=b[k];null!=d?g.open="data:page/id,"+d:null==this.getPageById(k)&&delete g.open}}c=
"data:action/json,"+JSON.stringify(e)}}catch(v){}return c};EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,c,e,g,k){g=null!=g?g:b.name;e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var d=this.isRemoteVisioFormat(g);try{var f="UNKNOWN-VISIO",l=g.lastIndexOf(".");if(0<=l&&l<g.length)f=g.substring(l+
1).toUpperCase();else{var m=g.lastIndexOf("/");0<=m&&m<g.length&&(g=g.substring(m+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+g,label:d?"remote":"local"})}catch(H){}if(d)if(null==VSD_CONVERT_URL||this.isOffline())e({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{d=new FormData;d.append("file1",b,g);var p=new XMLHttpRequest;p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(g)?"?stencil=1":""));
-p.responseType="blob";this.addRemoteServiceSecurityCheck(p);null!=k&&p.setRequestHeader("x-convert-custom",k);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var b=p.response;if("text/xml"==b.type){var d=new FileReader;d.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(M){e({message:mxResources.get("errorLoadingFile")})}});d.readAsText(b)}else this.doImportVisio(b,c,e,g)}catch(E){e(E)}else try{""==p.responseType||"text"==p.responseType?
-e({message:p.responseText}):(d=new FileReader,d.onload=function(){e({message:JSON.parse(d.result).Message})},d.readAsText(p.response))}catch(E){e({})}});p.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(H){e(H)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.importGraphML=function(b,c,e){e=null!=
+p.responseType="blob";this.addRemoteServiceSecurityCheck(p);null!=k&&p.setRequestHeader("x-convert-custom",k);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var b=p.response;if("text/xml"==b.type){var d=new FileReader;d.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(M){e({message:mxResources.get("errorLoadingFile")})}});d.readAsText(b)}else this.doImportVisio(b,c,e,g)}catch(F){e(F)}else try{""==p.responseType||"text"==p.responseType?
+e({message:p.responseText}):(d=new FileReader,d.onload=function(){e({message:JSON.parse(d.result).Message})},d.readAsText(p.response))}catch(F){e({})}});p.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(H){e(H)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.importGraphML=function(b,c,e){e=null!=
e?e:mxUtils.bind(this,function(b){this.handleError(b)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(b,c,e)}catch(p){e(p)}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(b){var d=mxUtils.bind(this,function(){this.loadingExtensions=
!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(b)||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)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.convertLucidChart=function(b,c,e){var d=mxUtils.bind(this,
function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+b.length}),EditorUi.debug("convertLucidChart",b)}catch(p){}try{c(LucidImporter.importState(JSON.parse(b)))}catch(p){null!=window.console&&console.error(p),e(p)}}else e({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(d,0):(this.loadingExtensions=
@@ -3598,15 +3599,15 @@ break}}}));var n=c.getBackgroundImageObject;c.getBackgroundImageObject=function(
d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null!=d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=f&&f(b,d)};y.call(this,b,d,e)};g.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?
x.apply(this,arguments):b.menus.addMenuItems(d,"delete - cut copy copyAsImage - duplicate".split(" "),null,e)}}b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var C=c.getExportVariables;c.getExportVariables=function(){var d=C.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=
b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,b.currentPage)+1:1;return d};var H=c.getGlobalVariable;c.getGlobalVariable=function(d){var c=b.getCurrentFile();return"filename"==d&&null!=c?c.getTitle():"page"==d&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==d?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==d?null!=b.pages?b.pages.length:1:H.apply(this,arguments)};var D=c.labelLinkClicked;
-c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))D.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),c.getRubberband().reset();mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var E=this.actions.get("print");E.setEnabled(!mxClient.IS_IOS||
-!navigator.standalone);E.visible=E.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(),
+c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))D.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),c.getRubberband().reset();mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var F=this.actions.get("print");F.setEnabled(!mxClient.IS_IOS||
+!navigator.standalone);F.visible=F.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&&c.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(b){var d=c.cellEditor.text2,e=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=e&&(e.parentNode.removeChild(e),e=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(d));b.stopPropagation();
b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,f,g,l){c.insertImage(b,g,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");
/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var e=Math.max(1,b.width);b=Math.max(1,b.height);var f=this.maxImageSize,f=Math.min(1,Math.min(f/Math.max(1,e)),f/Math.max(1,b));c.insertImage(decodeURIComponent(d),e*f,b*f)})):document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(b.dataTransfer.types,
-"text/plain")&&document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"));b.stopPropagation();b.preventDefault()})))}));this.isSettingsEnabled()&&(E=this.editor.graph.view,E.setUnit(mxSettings.getUnit()),E.addListener("unitChanged",function(b,d){mxSettings.setUnit(d.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,
-E.unit),this.refresh());if("1"==urlParams.styledev){E=document.getElementById("geFooter");null!=E&&(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)})),E.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,d){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 M=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==
-this.styleInput?!0:M.apply(this,arguments)}}E=document.getElementById("geInfo");null!=E&&E.parentNode.removeChild(E);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var G=null;mxEvent.addListener(c.container,"dragleave",function(b){c.isEnabled()&&(null!=G&&(G.parentNode.removeChild(G),G=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==G&&(!mxClient.IS_IE||10<document.documentMode)&&(G=this.highlightElement(c.container));
+"text/plain")&&document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"));b.stopPropagation();b.preventDefault()})))}));this.isSettingsEnabled()&&(F=this.editor.graph.view,F.setUnit(mxSettings.getUnit()),F.addListener("unitChanged",function(b,d){mxSettings.setUnit(d.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,
+F.unit),this.refresh());if("1"==urlParams.styledev){F=document.getElementById("geFooter");null!=F&&(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)})),F.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,d){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 M=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==
+this.styleInput?!0:M.apply(this,arguments)}}F=document.getElementById("geInfo");null!=F&&F.parentNode.removeChild(F);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var G=null;mxEvent.addListener(c.container,"dragleave",function(b){c.isEnabled()&&(null!=G&&(G.parentNode.removeChild(G),G=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==G&&(!mxClient.IS_IE||10<document.documentMode)&&(G=this.highlightElement(c.container));
null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(b){null!=G&&(G.parentNode.removeChild(G),G=null);if(c.isEnabled()){var d=mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=c.view.translate,f=c.view.scale,g=d.x/f-e.x,l=d.y/f-e.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=g=null),this.importFiles(b.dataTransfer.files,
g,l,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=g=0);var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,g,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=
c.sanitizeHtml(m);var p=null,e=d.getElementsByTagName("img");null!=e&&1==e.length?(m=e[0].getAttribute("src"),null==m&&(m=e[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(p=!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var n=!0,q=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,g,l,!0,p,null,n,mxEvent.isControlDown(b)))});p&&null!=
@@ -3671,103 +3672,103 @@ B=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.
function(d,c,e,g){d=d||this.emptyDiagramXml;null!=k.callback?n.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:g,builtIn:!0,message:k}),"*"):(b(d,f,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,u?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,v?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",
[b,null],null,d,function(){d(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){n.postMessage(JSON.stringify({event:"template",docUrl:b,info:d,name:c}),"*")}),null,null,B?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==k.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==k.action){var da=
this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:da,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 N=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,
-N):this.spinner.stop();return}if("exit"==k.action)this.actions.get("exit").funct();else{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 Q=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var X=this.editor.graph,F=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();var d=this.createLoadMessage("export");d.format=
-k.format;d.message=k;d.data=b;d.xml=Q;n.postMessage(JSON.stringify(d),"*")}),J=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(Q)));X!=this.editor.graph&&X.container.parentNode.removeChild(X.container);F(b)}),A=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var aa=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=
-A){var b=X.getGlobalVariable;X=this.createTemporaryGraph(X.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==A){d=this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);X.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(X.container);X.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=X.model,f=e.getChildCells(e.getRoot()),g={},c=0;c<k.layerIds.length;c++)g[k.layerIds[c]]=
-!0;for(c=0;c<f.length;c++)e.setVisible(f[c],g[f[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){J(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){J(null)}),null,null,k.scale,k.transparent,k.shadow,null,X,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(Q),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(aa)},0):aa()):aa()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+
-("xmlpng"==k.format?"1":"0")+(null!=A?"&pageId="+A:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(Q))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?F("data:image/png;base64,"+b.getText()):J(null)}),mxUtils.bind(this,function(){J(null)}))}}else aa=mxUtils.bind(this,function(){var b=this.createLoadMessage("export");b.message=k;if("html2"==
-k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var d=this.getXmlFileData();b.xml=mxUtils.getXml(d);b.data=this.getFileData(null,null,!0,null,null,null,d);b.format=k.format}else if("html"==k.format)d=this.editor.getGraphXml(),b.data=this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;d=null!=k.background?k.background:this.editor.graph.background;d==mxConstants.NONE&&(d=null);b.xml=this.getFileData(!0,
-null,null,null,null,null,null,null,null,!1);b.format="svg";var c=mxUtils.bind(this,function(d){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(d);n.postMessage(JSON.stringify(b),"*")});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(b.xml,this.editor.graph,null,!0,c,null,null,k.embedImages,d,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),d=this.editor.graph.getSvg(d,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(d),this.embedFonts(d,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,mxUtils.bind(this,function(b){c(mxUtils.getXml(b))})):
-c(mxUtils.getXml(b))}));return}n.postMessage(JSON.stringify(b),"*")}),null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(k.xml),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(aa)},0):aa()):aa();return}if("load"==k.action){p=k.toSketch;e=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);if(null!=k.rough){var I=Editor.sketchMode;this.doSetSketchMode(k.rough);I!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(I=Editor.darkMode,this.doSetDarkMode(k.dark),I!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=k.border&&(this.embedExportBorder=k.border);var W=this.embedExportBorder;null!=k.background&&(this.embedExportBackground=k.background);null!=k.rect&&(this.diagramContainer.style.border=
-"2px solid #295fcc",this.diagramContainer.style.top=k.rect.top+"px",this.diagramContainer.style.left=k.rect.left+"px",this.diagramContainer.style.height=k.rect.height+"px",this.diagramContainer.style.width=k.rect.width+"px",this.diagramContainer.style.bottom="",this.diagramContainer.style.right="",l=mxUtils.bind(this,function(){var b=this.editor.graph,d=b.maxFitScale;b.maxFitScale=k.maxFitScale;b.fit(2*W);b.maxFitScale=d;b.container.scrollTop-=2*W;b.container.scrollLeft-=2*W;this.fireEvent(new mxEventObject("editInlineStart",
-"data",[k]))}));null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=t);try{k.libs&&this.sidebar.showEntries(k.libs)}catch(ja){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:
-k.xml}else{if("merge"==k.action){var ba=this.getCurrentFile();null!=ba&&(t=m(k.xml),null!=t&&""!=t&&ba.mergeFile(new LocalFile(this,t),function(){n.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){n.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(n):"remoteInvoke"==k.action?this.handleRemoteInvoke(k,f.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):n.postMessage(JSON.stringify({error:"unknownMessage",
-data:JSON.stringify(k)}),"*");return}}}catch(ja){this.handleError(ja)}}var oa=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,k){c=!0;try{b(f,k,null,p)}catch(ka){this.handleError(ka)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");g=oa();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=oa();if(e!=g&&!c){var f=this.createLoadMessage("autosave");
-f.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}g=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,d),this.editor.graph.addListener("gridSizeChanged",d),this.editor.graph.addListener("shadowVisibleChanged",d),this.addListener("pageFormatChanged",d),this.addListener("pageScaleChanged",d),this.addListener("backgroundColorChanged",d),this.addListener("backgroundImageChanged",d),this.addListener("foldingEnabledChanged",d),this.addListener("mathEnabledChanged",d),this.addListener("gridEnabledChanged",
-d),this.addListener("guidesEnabledChanged",d),this.addListener("pageViewChanged",d));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var m=this.createLoadMessage("load");m.xml=f;n.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){fa(b,f)},mxUtils.bind(this,function(b){this.handleError(b)}),
-m)):null!=k&&"function"===typeof k.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,13)&&fa(b.responseText,f)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){fa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):
-null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),fa(k,f)):this.loadDescriptor(k,mxUtils.bind(this,function(b){fa(oa(),f)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,k="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(k,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){t.apply(this,
-arguments);n.postMessage(JSON.stringify({event:"openLink",href:b,target:d,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop="atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=
-urlParams.saveAndExit){var g="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,g);c.setAttribute("title",g);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),
-"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,
-e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right="atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,
-mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),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(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);
-if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],k={};if(0<d.length){var n={},t=null,x=null,C=null,H=null,D=null,E=null,M="whiteSpace=wrap;html=1;",G=null,K=null,B="",L="auto",O="auto",da=null,N=null,Q=40,X=40,F=100,J=0,A=this.editor.graph;A.getGraphBounds();for(var aa=function(){null!=c?c(qa):(A.setSelectionCells(qa),
-A.scrollCellToVisible(A.getSelectionCell()))},I=A.getFreeInsertPoint(),W=I.x,ba=I.y,I=ba,oa=null,fa="auto",K=null,ja=[],na=null,pa=null,ka=0;ka<d.length&&"#"==d[ka].charAt(0);){b=d[ka];for(ka++;ka<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ka].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ka].substring(1)),ka++;if("#"!=b.charAt(1)){var Y=b.indexOf(":");if(0<Y){var Z=mxUtils.trim(b.substring(1,Y)),R=mxUtils.trim(b.substring(Y+1));"label"==Z?oa=A.sanitizeHtml(R):"labelname"==Z&&0<R.length&&
-"-"!=R?D=R:"labels"==Z&&0<R.length&&"-"!=R?E=JSON.parse(R):"style"==Z?x=R:"parentstyle"==Z?M=R:"stylename"==Z&&0<R.length&&"-"!=R?H=R:"styles"==Z&&0<R.length&&"-"!=R?C=JSON.parse(R):"vars"==Z&&0<R.length&&"-"!=R?t=JSON.parse(R):"identity"==Z&&0<R.length&&"-"!=R?G=R:"parent"==Z&&0<R.length&&"-"!=R?K=R:"namespace"==Z&&0<R.length&&"-"!=R?B=R:"width"==Z?L=R:"height"==Z?O=R:"left"==Z&&0<R.length?da=R:"top"==Z&&0<R.length?N=R:"ignore"==Z?pa=R.split(","):"connect"==Z?ja.push(JSON.parse(R)):"link"==Z?na=
-R:"padding"==Z?J=parseFloat(R):"edgespacing"==Z?Q=parseFloat(R):"nodespacing"==Z?X=parseFloat(R):"levelspacing"==Z?F=parseFloat(R):"layout"==Z&&(fa=R)}}}if(null==d[ka])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ka]),Z=Y=null,R=[],U=0;U<sa.length;U++)G==sa[U]&&(Y=U),K==sa[U]&&(Z=U),R.push(mxUtils.trim(sa[U]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==oa&&(oa="%"+R[0]+"%");if(null!=ja)for(var T=0;T<ja.length;T++)null==n[ja[T].to]&&
-(n[ja[T].to]={});G=[];for(U=ka+1;U<d.length;U++){var ma=this.editor.csvToArray(d[U]);if(null==ma){var va=40<d[U].length?d[U].substring(0,40)+"...":d[U];throw Error(va+" ("+U+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&G.push(ma)}A.model.beginUpdate();try{for(U=0;U<G.length;U++){var ma=G[U],S=null,ea=null!=Y?B+ma[Y]:null;null!=ea&&(S=A.model.getCell(ea));var d=null!=S,ha=new mxCell(oa,new mxGeometry(W,I,0,0),x||"whiteSpace=wrap;html=1;");ha.vertex=!0;ha.id=ea;for(var ia=0;ia<
-ma.length;ia++)A.setAttributeForCell(ha,R[ia],ma[ia]);if(null!=D&&null!=E){var la=E[ha.getAttribute(D)];null!=la&&A.labelChanged(ha,la)}if(null!=H&&null!=C){var ta=C[ha.getAttribute(H)];null!=ta&&(ha.style=ta)}A.setAttributeForCell(ha,"placeholders","1");ha.style=A.replacePlaceholders(ha,ha.style,t);d?(A.model.setValue(S,ha.value),A.model.setStyle(S,ha.style),0>mxUtils.indexOf(g,S)&&g.push(S),A.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):A.fireEvent(new mxEventObject("cellsInserted",
-"cells",[ha]));S=ha;if(!d)for(T=0;T<ja.length;T++)n[ja[T].to][S.getAttribute(ja[T].to)]=S;null!=na&&"link"!=na&&(A.setLinkForCell(S,S.getAttribute(na)),A.setAttributeForCell(S,na,null));var P=this.editor.graph.getPreferredSizeForCell(S),K=null!=Z?A.model.getCell(B+ma[Z]):null;if(S.vertex){va=null!=K?0:W;ka=null!=K?0:ba;null!=da&&null!=S.getAttribute(da)&&(S.geometry.x=va+parseFloat(S.getAttribute(da)));null!=N&&null!=S.getAttribute(N)&&(S.geometry.y=ka+parseFloat(S.getAttribute(N)));var ca="@"==L.charAt(0)?
-S.getAttribute(L.substring(1)):null;S.geometry.width=null!=ca&&"auto"!=ca?parseFloat(S.getAttribute(L.substring(1))):"auto"==L||"auto"==ca?P.width+J:parseFloat(L);var wa="@"==O.charAt(0)?S.getAttribute(O.substring(1)):null;S.geometry.height=null!=wa&&"auto"!=wa?parseFloat(wa):"auto"==O||"auto"==wa?P.height+J:parseFloat(O);I+=S.geometry.height+X}d?(null==k[ea]&&(k[ea]=[]),k[ea].push(S)):(e.push(S),null!=K?(K.style=A.replacePlaceholders(K,M,t),A.addCell(S,K),f.push(K)):g.push(A.addCell(S)))}for(U=0;U<
-f.length;U++)ca="@"==L.charAt(0)?f[U].getAttribute(L.substring(1)):null,wa="@"==O.charAt(0)?f[U].getAttribute(O.substring(1)):null,"auto"!=L&&"auto"!=ca||"auto"!=O&&"auto"!=wa||A.updateGroupBounds([f[U]],J,!0);for(var ya=g.slice(),qa=g.slice(),T=0;T<ja.length;T++)for(var za=ja[T],U=0;U<e.length;U++){var S=e[U],Aa=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=e.split(","),f=0;f<e.length;f++){var g=n[c.to][e[f]];if(null!=g){var k=c.label;null!=c.fromlabel&&
-(k=(d.getAttribute(c.fromlabel)||"")+(k||""));null!=c.sourcelabel&&(k=A.replacePlaceholders(d,c.sourcelabel,t)+(k||""));null!=c.tolabel&&(k=(k||"")+(g.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(g,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?g:b,l=null!=c.style?A.replacePlaceholders(l,c.style,t):A.createCurrentEdgeStyle(),k=A.insertEdge(null,null,k||"",c.invert?g:b,c.invert?b:g,l);if(null!=c.labels)for(l=0;l<c.labels.length;l++){var m=c.labels[l],
-p=new mxCell(m.label||l,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=A.replacePlaceholders("target"==m.placeholders==!c.invert?g:b,p.value,t));if(null!=m.dx||null!=m.dy)p.geometry.offset=new mxPoint(null!=m.dx?m.dx:0,null!=m.dy?m.dy:0);k.insert(p)}qa.push(k);mxUtils.remove(c.invert?b:g,ya)}}});Aa(S,S,za);if(null!=k[S.id])for(ia=0;ia<k[S.id].length;ia++)Aa(S,k[S.id][ia],za)}if(null!=pa)for(U=
-0;U<e.length;U++)for(S=e[U],ia=0;ia<pa.length;ia++)A.setAttributeForCell(S,mxUtils.trim(pa[ia]),null);if(0<g.length){var Da=new mxParallelEdgeLayout(A);Da.spacing=Q;Da.checkOverlap=!0;var Ea=function(){0<Da.spacing&&Da.execute(A.getDefaultParent());for(var b=0;b<g.length;b++){var d=A.getCellGeometry(g[b]);d.x=Math.round(A.snap(d.x));d.y=Math.round(A.snap(d.y));"auto"==L&&(d.width=Math.round(A.snap(d.width)));"auto"==O&&(d.height=Math.round(A.snap(d.height)))}};if("["==fa.charAt(0)){var Ka=aa;A.view.validate();
-this.executeLayoutList(JSON.parse(fa),function(){Ea();Ka()});aa=null}else if("circle"==fa){var Ba=new mxCircleLayout(A);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var Ha=Ba.isVertexIgnored;Ba.isVertexIgnored=function(b){return Ha.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ba.execute(A.getDefaultParent());Ea()},!0,aa);aa=null}else if("horizontaltree"==fa||"verticaltree"==fa||"auto"==fa&&qa.length==2*g.length-1&&1==ya.length){A.view.validate();var Fa=new mxCompactTreeLayout(A,
-"horizontaltree"==fa);Fa.levelDistance=X;Fa.edgeRouting=!1;Fa.resetEdges=!1;this.executeLayout(function(){Fa.execute(A.getDefaultParent(),0<ya.length?ya[0]:null)},!0,aa);aa=null}else if("horizontalflow"==fa||"verticalflow"==fa||"auto"==fa&&1==ya.length){A.view.validate();var V=new mxHierarchicalLayout(A,"horizontalflow"==fa?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);V.intraCellSpacing=X;V.parallelEdgeSpacing=Q;V.interRankCellSpacing=F;V.disableEdgeStyle=!1;this.executeLayout(function(){V.execute(A.getDefaultParent(),
-qa);A.moveCells(qa,W,ba)},!0,aa);aa=null}else if("organic"==fa||"auto"==fa&&qa.length>g.length){A.view.validate();var xa=new mxFastOrganicLayout(A);xa.forceConstant=3*X;xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Oa=xa.isVertexIgnored;xa.isVertexIgnored=function(b){return Oa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){xa.execute(A.getDefaultParent());Ea()},!0,aa);aa=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=aa&&aa()}}catch(La){this.handleError(La)}};
-EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
-e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,g,k){b=new LinkDialog(this,b,c,e,!0,g,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var d=1;null==this.drive&&"function"!==typeof window.DriveClient||d++;null==this.dropbox&&"function"!==typeof window.DropboxClient||d++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||
-d++;null!=this.gitHub&&d++;null!=this.gitLab&&d++;null!=this.notion&&d++;b&&isLocalStorage&&"1"==urlParams.browser&&d++;return d};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);
-this.actions.get("print").setEnabled(!e);this.menus.get("exportAs").setEnabled(!e);this.menus.get("embed").setEnabled(!e);e="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(e);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(e),this.menus.get("newLibrary").setEnabled(e));b="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);
-this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);this.menus.get("arrange").setEnabled(b);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(b),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(b));this.updateUserElement()};
-EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var b=this.getCurrentFile();return null!=b&&b.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var n=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){n.apply(this,arguments);var b=this.editor.graph,
-c=this.getCurrentFile(),e=this.isDiagramActive(),g=b.getEditableCells(b.getSelectionCells());this.actions.get("pageSetup").setEnabled(e);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(e);this.actions.get("editData").setEnabled(0<g.length||b.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(e);this.actions.get("connectionArrows").setEnabled(e);this.actions.get("connectionPoints").setEnabled(e);this.actions.get("copyStyle").setEnabled(e&&
-!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(e&&0<g.length);this.actions.get("editGeometry").setEnabled(0<g.length&&b.getModel().isVertex(g[0]));this.actions.get("createShape").setEnabled(e);this.actions.get("createRevision").setEnabled(e);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(e&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=
-c&&!c.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!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");
-c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(e&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var t=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);t.apply(this,arguments)};null!=window.ExportDialog&&
-(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,e,g,k,n,t,v){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(g,k,n)),"image/svg+xml");else{var f=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),p=Math.floor(l.height*k/d.view.scale);if(f.length<=MAX_REQUEST_SIZE&&
-m*p<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var q={globalVars:d.getExportVariables()};v&&(q.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(q))+(0<t?"&dpi="+t:"")+"&bg="+(null!=g?g:"none")+"&w="+m+"&h="+p+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==
-e?b.exportImage(k,null==g||"none"==g,!0,!1,!1,n,!0,!1,null,v,t):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",v);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=0;e<this.pages.length;e++){var g=b;this.currentPage!=this.pages[e]&&(g=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),g.model.setRoot(this.pages[e].root));c+=
-this.pages[e].getName()+" "+g.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var g=document.createElement("div");g.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";
-g.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]={id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}this.remoteInvoke("getCustomLibraries",null,null,function(b){g.innerHTML="";if(0==b.length)g.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+
-"</div>";else for(var d=0;d<b.length;d++){var e=b[d];k[e.id]&&(c[e.id]=e);var f=this.addCheckbox(g,e.title,k[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,f)}},mxUtils.bind(this,function(b){g.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));g.appendChild(c)}));
-d.appendChild(g);d=new CustomDialog(this,d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,d;for(d in c)null==k[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(E){this.handleError(E,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,
-mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in k)c[d]||this.closeLibrary(new RemoteLibrary(this,null,k[d]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,340,390,!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(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==d)throw Error("No callback for "+
-(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):d.callback&&d.callback.apply(this,b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,e,g,k){var d=!0,f=window.setTimeout(mxUtils.bind(this,function(){d=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),l=mxUtils.bind(this,function(){window.clearTimeout(f);d&&g.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(f);d&&k.apply(this,
-arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:l,error:m});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:e});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=c);this.remoteWin.postMessage(JSON.stringify(e),
-"*")});try{var e=b.funtionName,f=this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var g=!1,k=0;k<f.allowedDomains.length;k++)if(c=="https://"+f.allowedDomains[k]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var n=b.functionArgs;Array.isArray(n)||(n=[]);if(f.isAsync)n.push(function(){d(Array.prototype.slice.apply(arguments))}),n.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,n);else{var t=this[e].apply(this,n);
-d([t])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(x){d(null,"Invalid Call: An error occurred, "+x.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",
-{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=c&&c(u)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display=
-"none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,f,g=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,
-function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(B){console.log(B)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],l,l,["filesInfo","files"])}catch(B){console.log(B)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g=
-{};try{g=JSON.parse(b.data)}catch(L){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,m()):k():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):l())}}catch(L){console.log(L)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=
-function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(p){null!=c&&c(p)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,e,g,k){this.openDatabase(mxUtils.bind(this,function(d){try{k=k||"objects";Array.isArray(k)||(k=[k],b=[b],c=[c]);var f=d.transaction(k,"readwrite");f.oncomplete=e;f.onerror=g;for(d=0;d<k.length;d++)f.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(v){null!=g&&g(v)}}),g)};EditorUi.prototype.removeDatabaseItem=
-function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){g=g||"objects";Array.isArray(g)||(g=[g],b=[b]);d=d.transaction(g,"readwrite");d.oncomplete=c;d.onerror=e;for(var f=0;f<g.length;f++)d.objectStore(g[f])["delete"](b[f])}),e)};EditorUi.prototype.getDatabaseItem=function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){try{g=g||"objects";var f=d.transaction([g],"readonly").objectStore(g).get(b);f.onsuccess=function(){c(f.result)};f.onerror=e}catch(u){null!=e&&e(u)}}),e)};EditorUi.prototype.getDatabaseItems=
-function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),c.target.result["continue"]())};f.onerror=c}catch(u){null!=c&&c(u)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).getAllKeys();
-f.onsuccess=function(){b(f.result)};f.onerror=c}catch(q){null!=c&&c(q)}}),c)};EditorUi.prototype.commentsSupported=function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();
-null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,e){var d=this.getCurrentFile();null!=d?d.addComment(b,c,e):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,
-b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=
-function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,g,k,n,t,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,e,g,k,n,t,v)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");
-return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,g,k,n,t,v,y,x,C,H,D,E,M,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,n,t,v,
-y,x,C,H,D,E,M,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,e,g)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};
-EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,g)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,g,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,
-c,e,g,k)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var e=localStorage.key(c),g=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<g.length){var k="<mxfile "===g.substring(0,8)||"<?xml"===g.substring(0,5)||"\x3c!--[if IE]>"===g.substring(0,12),g="<mxlibrary>"===g.substring(0,11);(k||g)&&b.push(e)}}return b};EditorUi.prototype.getLocalStorageFile=
-function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
+N):this.spinner.stop();return}if("exit"==k.action){this.actions.get("exit").funct();return}if("viewport"==k.action){null!=k.viewport&&(this.embedViewport=k.viewport);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 Q=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var X=this.editor.graph,E=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);
+this.spinner.stop();var d=this.createLoadMessage("export");d.format=k.format;d.message=k;d.data=b;d.xml=Q;n.postMessage(JSON.stringify(d),"*")}),J=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(Q)));X!=this.editor.graph&&X.container.parentNode.removeChild(X.container);E(b)}),A=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var aa=
+mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=A){var b=X.getGlobalVariable;X=this.createTemporaryGraph(X.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==A){d=this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);X.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(X.container);X.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=X.model,f=e.getChildCells(e.getRoot()),
+g={},c=0;c<k.layerIds.length;c++)g[k.layerIds[c]]=!0;for(c=0;c<f.length;c++)e.setVisible(f[c],g[f[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){J(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){J(null)}),null,null,k.scale,k.transparent,k.shadow,null,X,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(Q),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(aa)},0):aa()):
+aa()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=A?"&pageId="+A:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(Q))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?E("data:image/png;base64,"+b.getText()):J(null)}),mxUtils.bind(this,function(){J(null)}))}}else aa=mxUtils.bind(this,function(){var b=
+this.createLoadMessage("export");b.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var d=this.getXmlFileData();b.xml=mxUtils.getXml(d);b.data=this.getFileData(null,null,!0,null,null,null,d);b.format=k.format}else if("html"==k.format)d=this.editor.getGraphXml(),b.data=this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;d=null!=k.background?k.background:this.editor.graph.background;
+d==mxConstants.NONE&&(d=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var c=mxUtils.bind(this,function(d){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(d);n.postMessage(JSON.stringify(b),"*")});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(b.xml,this.editor.graph,null,!0,c,null,null,k.embedImages,d,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),d=this.editor.graph.getSvg(d,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(d),this.embedFonts(d,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,
+mxUtils.bind(this,function(b){c(mxUtils.getXml(b))})):c(mxUtils.getXml(b))}));return}n.postMessage(JSON.stringify(b),"*")}),null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(k.xml),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(aa)},0):aa()):aa();return}if("load"==k.action){p=k.toSketch;e=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);if(null!=k.rough){var I=Editor.sketchMode;this.doSetSketchMode(k.rough);I!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(I=Editor.darkMode,this.doSetDarkMode(k.dark),I!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=k.border&&(this.embedExportBorder=k.border);null!=k.background&&(this.embedExportBackground=k.background);null!=k.viewport&&
+(this.embedViewport=k.viewport);if(null!=k.rect){var W=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=k.rect.top+"px";this.diagramContainer.style.left=k.rect.left+"px";this.diagramContainer.style.height=k.rect.height+"px";this.diagramContainer.style.width=k.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";l=mxUtils.bind(this,function(){var b=this.editor.graph,d=b.maxFitScale;b.maxFitScale=k.maxFitScale;
+b.fit(2*W);b.maxFitScale=d;b.container.scrollTop-=2*W;b.container.scrollLeft-=2*W;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=t);try{k.libs&&
+this.sidebar.showEntries(k.libs)}catch(ja){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var ba=this.getCurrentFile();null!=ba&&(t=m(k.xml),null!=t&&""!=t&&ba.mergeFile(new LocalFile(this,t),function(){n.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){n.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(n):"remoteInvoke"==
+k.action?this.handleRemoteInvoke(k,f.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):n.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(ja){this.handleError(ja)}}var oa=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,k){c=!0;try{b(f,k,null,p)}catch(ka){this.handleError(ka)}c=!1;null!=
+urlParams.modified&&this.editor.setStatus("");g=oa();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=oa();if(e!=g&&!c){var f=this.createLoadMessage("autosave");f.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}g=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,d),this.editor.graph.addListener("gridSizeChanged",d),this.editor.graph.addListener("shadowVisibleChanged",d),this.addListener("pageFormatChanged",d),this.addListener("pageScaleChanged",d),this.addListener("backgroundColorChanged",
+d),this.addListener("backgroundImageChanged",d),this.addListener("foldingEnabledChanged",d),this.addListener("mathEnabledChanged",d),this.addListener("gridEnabledChanged",d),this.addListener("guidesEnabledChanged",d),this.addListener("pageViewChanged",d));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var m=this.createLoadMessage("load");m.xml=f;n.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,
+34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){fa(b,f)},mxUtils.bind(this,function(b){this.handleError(b)}),m)):null!=k&&"function"===typeof k.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,
+13)&&fa(b.responseText,f)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){fa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),fa(k,f)):this.loadDescriptor(k,mxUtils.bind(this,function(b){fa(oa(),f)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,k="json"==
+urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(k,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){t.apply(this,arguments);n.postMessage(JSON.stringify({event:"openLink",href:b,target:d,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop=
+"atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var g="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,g);c.setAttribute("title",g);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,
+mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
+b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right=
+"atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),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(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],k={};if(0<d.length){var n={},t=null,x=null,C=null,H=null,D=null,F=null,M="whiteSpace=wrap;html=1;",
+G=null,K=null,B="",L="auto",O="auto",da=null,N=null,Q=40,X=40,E=100,J=0,A=this.editor.graph;A.getGraphBounds();for(var aa=function(){null!=c?c(qa):(A.setSelectionCells(qa),A.scrollCellToVisible(A.getSelectionCell()))},I=A.getFreeInsertPoint(),W=I.x,ba=I.y,I=ba,oa=null,fa="auto",K=null,ja=[],na=null,pa=null,ka=0;ka<d.length&&"#"==d[ka].charAt(0);){b=d[ka];for(ka++;ka<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ka].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ka].substring(1)),ka++;if("#"!=
+b.charAt(1)){var Y=b.indexOf(":");if(0<Y){var Z=mxUtils.trim(b.substring(1,Y)),R=mxUtils.trim(b.substring(Y+1));"label"==Z?oa=A.sanitizeHtml(R):"labelname"==Z&&0<R.length&&"-"!=R?D=R:"labels"==Z&&0<R.length&&"-"!=R?F=JSON.parse(R):"style"==Z?x=R:"parentstyle"==Z?M=R:"stylename"==Z&&0<R.length&&"-"!=R?H=R:"styles"==Z&&0<R.length&&"-"!=R?C=JSON.parse(R):"vars"==Z&&0<R.length&&"-"!=R?t=JSON.parse(R):"identity"==Z&&0<R.length&&"-"!=R?G=R:"parent"==Z&&0<R.length&&"-"!=R?K=R:"namespace"==Z&&0<R.length&&
+"-"!=R?B=R:"width"==Z?L=R:"height"==Z?O=R:"left"==Z&&0<R.length?da=R:"top"==Z&&0<R.length?N=R:"ignore"==Z?pa=R.split(","):"connect"==Z?ja.push(JSON.parse(R)):"link"==Z?na=R:"padding"==Z?J=parseFloat(R):"edgespacing"==Z?Q=parseFloat(R):"nodespacing"==Z?X=parseFloat(R):"levelspacing"==Z?E=parseFloat(R):"layout"==Z&&(fa=R)}}}if(null==d[ka])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ka]),Z=Y=null,R=[],U=0;U<sa.length;U++)G==sa[U]&&(Y=U),K==sa[U]&&(Z=U),R.push(mxUtils.trim(sa[U]).replace(/[^a-z0-9]+/ig,
+"_").replace(/^\d+/,"").replace(/_+$/,""));null==oa&&(oa="%"+R[0]+"%");if(null!=ja)for(var T=0;T<ja.length;T++)null==n[ja[T].to]&&(n[ja[T].to]={});G=[];for(U=ka+1;U<d.length;U++){var ma=this.editor.csvToArray(d[U]);if(null==ma){var va=40<d[U].length?d[U].substring(0,40)+"...":d[U];throw Error(va+" ("+U+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&G.push(ma)}A.model.beginUpdate();try{for(U=0;U<G.length;U++){var ma=G[U],S=null,ea=null!=Y?B+ma[Y]:null;null!=ea&&(S=A.model.getCell(ea));
+var d=null!=S,ha=new mxCell(oa,new mxGeometry(W,I,0,0),x||"whiteSpace=wrap;html=1;");ha.vertex=!0;ha.id=ea;for(var ia=0;ia<ma.length;ia++)A.setAttributeForCell(ha,R[ia],ma[ia]);if(null!=D&&null!=F){var la=F[ha.getAttribute(D)];null!=la&&A.labelChanged(ha,la)}if(null!=H&&null!=C){var ta=C[ha.getAttribute(H)];null!=ta&&(ha.style=ta)}A.setAttributeForCell(ha,"placeholders","1");ha.style=A.replacePlaceholders(ha,ha.style,t);d?(A.model.setValue(S,ha.value),A.model.setStyle(S,ha.style),0>mxUtils.indexOf(g,
+S)&&g.push(S),A.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):A.fireEvent(new mxEventObject("cellsInserted","cells",[ha]));S=ha;if(!d)for(T=0;T<ja.length;T++)n[ja[T].to][S.getAttribute(ja[T].to)]=S;null!=na&&"link"!=na&&(A.setLinkForCell(S,S.getAttribute(na)),A.setAttributeForCell(S,na,null));var P=this.editor.graph.getPreferredSizeForCell(S),K=null!=Z?A.model.getCell(B+ma[Z]):null;if(S.vertex){va=null!=K?0:W;ka=null!=K?0:ba;null!=da&&null!=S.getAttribute(da)&&(S.geometry.x=va+parseFloat(S.getAttribute(da)));
+null!=N&&null!=S.getAttribute(N)&&(S.geometry.y=ka+parseFloat(S.getAttribute(N)));var ca="@"==L.charAt(0)?S.getAttribute(L.substring(1)):null;S.geometry.width=null!=ca&&"auto"!=ca?parseFloat(S.getAttribute(L.substring(1))):"auto"==L||"auto"==ca?P.width+J:parseFloat(L);var wa="@"==O.charAt(0)?S.getAttribute(O.substring(1)):null;S.geometry.height=null!=wa&&"auto"!=wa?parseFloat(wa):"auto"==O||"auto"==wa?P.height+J:parseFloat(O);I+=S.geometry.height+X}d?(null==k[ea]&&(k[ea]=[]),k[ea].push(S)):(e.push(S),
+null!=K?(K.style=A.replacePlaceholders(K,M,t),A.addCell(S,K),f.push(K)):g.push(A.addCell(S)))}for(U=0;U<f.length;U++)ca="@"==L.charAt(0)?f[U].getAttribute(L.substring(1)):null,wa="@"==O.charAt(0)?f[U].getAttribute(O.substring(1)):null,"auto"!=L&&"auto"!=ca||"auto"!=O&&"auto"!=wa||A.updateGroupBounds([f[U]],J,!0);for(var ya=g.slice(),qa=g.slice(),T=0;T<ja.length;T++)for(var za=ja[T],U=0;U<e.length;U++){var S=e[U],Aa=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=
+e.split(","),f=0;f<e.length;f++){var g=n[c.to][e[f]];if(null!=g){var k=c.label;null!=c.fromlabel&&(k=(d.getAttribute(c.fromlabel)||"")+(k||""));null!=c.sourcelabel&&(k=A.replacePlaceholders(d,c.sourcelabel,t)+(k||""));null!=c.tolabel&&(k=(k||"")+(g.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(g,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?g:b,l=null!=c.style?A.replacePlaceholders(l,c.style,t):A.createCurrentEdgeStyle(),k=A.insertEdge(null,null,
+k||"",c.invert?g:b,c.invert?b:g,l);if(null!=c.labels)for(l=0;l<c.labels.length;l++){var m=c.labels[l],p=new mxCell(m.label||l,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=A.replacePlaceholders("target"==m.placeholders==!c.invert?g:b,p.value,t));if(null!=m.dx||null!=m.dy)p.geometry.offset=new mxPoint(null!=m.dx?m.dx:0,null!=m.dy?m.dy:0);k.insert(p)}qa.push(k);mxUtils.remove(c.invert?b:g,
+ya)}}});Aa(S,S,za);if(null!=k[S.id])for(ia=0;ia<k[S.id].length;ia++)Aa(S,k[S.id][ia],za)}if(null!=pa)for(U=0;U<e.length;U++)for(S=e[U],ia=0;ia<pa.length;ia++)A.setAttributeForCell(S,mxUtils.trim(pa[ia]),null);if(0<g.length){var Da=new mxParallelEdgeLayout(A);Da.spacing=Q;Da.checkOverlap=!0;var Ea=function(){0<Da.spacing&&Da.execute(A.getDefaultParent());for(var b=0;b<g.length;b++){var d=A.getCellGeometry(g[b]);d.x=Math.round(A.snap(d.x));d.y=Math.round(A.snap(d.y));"auto"==L&&(d.width=Math.round(A.snap(d.width)));
+"auto"==O&&(d.height=Math.round(A.snap(d.height)))}};if("["==fa.charAt(0)){var Ka=aa;A.view.validate();this.executeLayoutList(JSON.parse(fa),function(){Ea();Ka()});aa=null}else if("circle"==fa){var Ba=new mxCircleLayout(A);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var Ha=Ba.isVertexIgnored;Ba.isVertexIgnored=function(b){return Ha.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ba.execute(A.getDefaultParent());Ea()},!0,aa);aa=null}else if("horizontaltree"==fa||"verticaltree"==
+fa||"auto"==fa&&qa.length==2*g.length-1&&1==ya.length){A.view.validate();var Fa=new mxCompactTreeLayout(A,"horizontaltree"==fa);Fa.levelDistance=X;Fa.edgeRouting=!1;Fa.resetEdges=!1;this.executeLayout(function(){Fa.execute(A.getDefaultParent(),0<ya.length?ya[0]:null)},!0,aa);aa=null}else if("horizontalflow"==fa||"verticalflow"==fa||"auto"==fa&&1==ya.length){A.view.validate();var V=new mxHierarchicalLayout(A,"horizontalflow"==fa?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);V.intraCellSpacing=
+X;V.parallelEdgeSpacing=Q;V.interRankCellSpacing=E;V.disableEdgeStyle=!1;this.executeLayout(function(){V.execute(A.getDefaultParent(),qa);A.moveCells(qa,W,ba)},!0,aa);aa=null}else if("organic"==fa||"auto"==fa&&qa.length>g.length){A.view.validate();var xa=new mxFastOrganicLayout(A);xa.forceConstant=3*X;xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Oa=xa.isVertexIgnored;xa.isVertexIgnored=function(b){return Oa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){xa.execute(A.getDefaultParent());
+Ea()},!0,aa);aa=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=aa&&aa()}}catch(La){this.handleError(La)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?
+1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,g,k){b=new LinkDialog(this,b,c,e,!0,g,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var d=1;null==this.drive&&
+"function"!==typeof window.DriveClient||d++;null==this.dropbox&&"function"!==typeof window.DropboxClient||d++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||d++;null!=this.gitHub&&d++;null!=this.gitLab&&d++;null!=this.notion&&d++;b&&isLocalStorage&&"1"==urlParams.browser&&d++;return d};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);
+this.menus.get("viewZoom").setEnabled(c);var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);this.actions.get("print").setEnabled(!e);this.menus.get("exportAs").setEnabled(!e);this.menus.get("embed").setEnabled(!e);e="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(e);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(e),this.menus.get("newLibrary").setEnabled(e));
+b="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);this.menus.get("arrange").setEnabled(b);
+null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(b),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(b));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var b=this.getCurrentFile();return null!=b&&b.isEditable()||
+"1"==urlParams.embed&&this.editor.graph.isEnabled()};var n=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){n.apply(this,arguments);var b=this.editor.graph,c=this.getCurrentFile(),e=this.isDiagramActive(),g=b.getEditableCells(b.getSelectionCells());this.actions.get("pageSetup").setEnabled(e);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(e);this.actions.get("editData").setEnabled(0<
+g.length||b.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(e);this.actions.get("connectionArrows").setEnabled(e);this.actions.get("connectionPoints").setEnabled(e);this.actions.get("copyStyle").setEnabled(e&&!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(e&&0<g.length);this.actions.get("editGeometry").setEnabled(0<g.length&&b.getModel().isVertex(g[0]));this.actions.get("createShape").setEnabled(e);this.actions.get("createRevision").setEnabled(e);this.actions.get("moveToFolder").setEnabled(null!=
+c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(e&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.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!=
+c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(e&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var t=EditorUi.prototype.destroy;
+EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);t.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,e,g,k,n,t,v){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(g,
+k,n)),"image/svg+xml");else{var f=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),p=Math.floor(l.height*k/d.view.scale);if(f.length<=MAX_REQUEST_SIZE&&m*p<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var q={globalVars:d.getExportVariables()};v&&(q.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+
+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(q))+(0<t?"&dpi="+t:"")+"&bg="+(null!=g?g:"none")+"&w="+m+"&h="+p+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==e?b.exportImage(k,null==g||"none"==g,!0,!1,!1,n,!0,!1,null,v,t):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",v);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=
+this.pages)for(var e=0;e<this.pages.length;e++){var g=b;this.currentPage!=this.pages[e]&&(g=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),g.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+g.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,
+mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var g=document.createElement("div");g.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";g.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]=
+{id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}this.remoteInvoke("getCustomLibraries",null,null,function(b){g.innerHTML="";if(0==b.length)g.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<b.length;d++){var e=b[d];k[e.id]&&(c[e.id]=e);var f=this.addCheckbox(g,e.title,k[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,f)}},mxUtils.bind(this,
+function(b){g.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));g.appendChild(c)}));d.appendChild(g);d=new CustomDialog(this,d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,d;for(d in c)null==k[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],
+null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(F){this.handleError(F,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in k)c[d]||this.closeLibrary(new RemoteLibrary(this,null,k[d]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,
+340,390,!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(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],
+"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==d)throw Error("No callback for "+(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):d.callback&&d.callback.apply(this,b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,e,g,k){var d=!0,f=window.setTimeout(mxUtils.bind(this,function(){d=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
+this.timeout),l=mxUtils.bind(this,function(){window.clearTimeout(f);d&&g.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(f);d&&k.apply(this,arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:l,error:m});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:e});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,
+c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=c);this.remoteWin.postMessage(JSON.stringify(e),"*")});try{var e=b.funtionName,f=this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var g=!1,k=0;k<f.allowedDomains.length;k++)if(c=="https://"+f.allowedDomains[k]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var n=b.functionArgs;Array.isArray(n)||
+(n=[]);if(f.isAsync)n.push(function(){d(Array.prototype.slice.apply(arguments))}),n.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,n);else{var t=this[e].apply(this,n);d([t])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(x){d(null,"Invalid Call: An error occurred, "+x.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=
+function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=c&&c(u)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
+(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,f,g=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
+funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(B){console.log(B)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,
+size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],l,l,["filesInfo","files"])}catch(B){console.log(B)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g={};try{g=JSON.parse(b.data)}catch(L){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||
+(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,m()):k():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):l())}}catch(L){console.log(L)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(p){null!=c&&c(p)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,e,g,k){this.openDatabase(mxUtils.bind(this,function(d){try{k=k||"objects";Array.isArray(k)||(k=
+[k],b=[b],c=[c]);var f=d.transaction(k,"readwrite");f.oncomplete=e;f.onerror=g;for(d=0;d<k.length;d++)f.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(v){null!=g&&g(v)}}),g)};EditorUi.prototype.removeDatabaseItem=function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){g=g||"objects";Array.isArray(g)||(g=[g],b=[b]);d=d.transaction(g,"readwrite");d.oncomplete=c;d.onerror=e;for(var f=0;f<g.length;f++)d.objectStore(g[f])["delete"](b[f])}),e)};EditorUi.prototype.getDatabaseItem=
+function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){try{g=g||"objects";var f=d.transaction([g],"readonly").objectStore(g).get(b);f.onsuccess=function(){c(f.result)};f.onerror=e}catch(u){null!=e&&e(u)}}),e)};EditorUi.prototype.getDatabaseItems=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),
+c.target.result["continue"]())};f.onerror=c}catch(u){null!=c&&c(u)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).getAllKeys();f.onsuccess=function(){b(f.result)};f.onerror=c}catch(q){null!=c&&c(q)}}),c)};EditorUi.prototype.commentsSupported=function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=
+this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,e){var d=this.getCurrentFile();null!=d?d.addComment(b,c,e):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?
+b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=
+d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,g,k,n,t,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
+return this.editor.loadUrl(b,c,e,g,k,n,t,v)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
+return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,g,k,n,t,v,y,x,C,H,D,F,M,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,n,t,v,y,x,C,H,D,F,M,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
+return this.editor.convertImages(b,c,e,g)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,g)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");
+return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,g,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,e,g,k)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var e=localStorage.key(c),g=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<g.length){var k=
+"<mxfile "===g.substring(0,8)||"<?xml"===g.substring(0,5)||"\x3c!--[if IE]>"===g.substring(0,12),g="<mxlibrary>"===g.substring(0,11);(k||g)&&b.push(e)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
var CommentsWindow=function(b,c,e,k,g,n){function t(){for(var b=H.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==H&&c++;D.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}y={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):f();y=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);y=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(p.click(),mxEvent.consume(b)):27==b.keyCode&&(n.click(),mxEvent.consume(b)))}));p.focus();p.className="geCommentEditBtn gePrimaryBtn";m.appendChild(p);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function f(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function l(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function m(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function p(b){b.style.border="";b.removeChild(b.busyImg)}function q(c,e,g,k,n){function B(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});X.appendChild(f);e&&(f.style.display="none")}function x(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=Q;b(c);return{pdiv:e,replies:d}}function N(e,f,g,n,t){function v(){l(D);c.addReply(N,function(b){N.id=b;c.replies.push(N);p(D);g&&g()},function(c){u();m(D);b.handleError(c,null,
null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,t)}function u(){d(N,D,function(b){v()},!0)}var B=x().pdiv,N=b.newComment(e,b.getCurrentUser());N.pCommentId=c.id;null==c.replies&&(c.replies=[]);var D=q(N,c.replies,B,k+1);f?u():v()}if(n||!c.isResolved){D.style.display="none";var Q=document.createElement("div");Q.className="geCommentContainer";Q.setAttribute("data-commentId",c.id);Q.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(Q.style.backgroundColor="ghostWhite");
-var E=document.createElement("div");E.className="geCommentHeader";var C=document.createElement("img");C.className="geCommentUserImg";C.src=c.user.pictureUrl||Editor.userImage;E.appendChild(C);C=document.createElement("div");C.className="geCommentHeaderTxt";E.appendChild(C);var L=document.createElement("div");L.className="geCommentUsername";mxUtils.write(L,c.user.displayName||"");C.appendChild(L);L=document.createElement("div");L.className="geCommentDate";L.setAttribute("data-commentId",c.id);f(c,
-L);C.appendChild(L);Q.appendChild(E);E=document.createElement("div");E.className="geCommentTxt";mxUtils.write(E,c.content||"");Q.appendChild(E);c.isLocked&&(Q.style.opacity="0.5");E=document.createElement("div");E.className="geCommentActions";var X=document.createElement("ul");X.className="geCommentActionsList";E.appendChild(X);u||c.isLocked||0!=k&&!v||B(mxResources.get("reply"),function(){N("",!0)},c.isResolved);C=b.getCurrentUser();null==C||C.id!=c.user.id||u||c.isLocked||(B(mxResources.get("edit"),
+var F=document.createElement("div");F.className="geCommentHeader";var C=document.createElement("img");C.className="geCommentUserImg";C.src=c.user.pictureUrl||Editor.userImage;F.appendChild(C);C=document.createElement("div");C.className="geCommentHeaderTxt";F.appendChild(C);var L=document.createElement("div");L.className="geCommentUsername";mxUtils.write(L,c.user.displayName||"");C.appendChild(L);L=document.createElement("div");L.className="geCommentDate";L.setAttribute("data-commentId",c.id);f(c,
+L);C.appendChild(L);Q.appendChild(F);F=document.createElement("div");F.className="geCommentTxt";mxUtils.write(F,c.content||"");Q.appendChild(F);c.isLocked&&(Q.style.opacity="0.5");F=document.createElement("div");F.className="geCommentActions";var X=document.createElement("ul");X.className="geCommentActionsList";F.appendChild(X);u||c.isLocked||0!=k&&!v||B(mxResources.get("reply"),function(){N("",!0)},c.isResolved);C=b.getCurrentUser();null==C||C.id!=c.user.id||u||c.isLocked||(B(mxResources.get("edit"),
function(){function e(){d(c,Q,function(){l(Q);c.editComment(c.content,function(){p(Q)},function(c){m(Q);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),B(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(Q);c.deleteComment(function(b){if(!0===b){b=Q.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=Q.querySelectorAll(".geCommentAction");for(b=
0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);p(Q);Q.style.opacity="0.5"}else{d=x(c).replies;for(b=0;b<d.length;b++)H.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}D.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){m(Q);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||B(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=x(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);G||(f[k].style.display="none")}t()}c.isResolved?N(mxResources.get("reOpened")+": ",!0,
-d,!1,!0):N(mxResources.get("markedAsResolved"),!1,d,!0)});Q.appendChild(E);null!=g?H.insertBefore(Q,g.nextSibling):H.appendChild(Q);for(g=0;null!=c.replies&&g<c.replies.length;g++)E=c.replies[g],E.isResolved=c.isResolved,q(E,c.replies,null,k+1,n);null!=y&&(y.comment.id==c.id?(n=c.content,c.content=y.comment.content,d(c,Q,y.saveCallback,y.deleteOnCancel),c.content=n):null==y.comment.id&&y.comment.pCommentId==c.id&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return Q}}
+d,!1,!0):N(mxResources.get("markedAsResolved"),!1,d,!0)});Q.appendChild(F);null!=g?H.insertBefore(Q,g.nextSibling):H.appendChild(Q);for(g=0;null!=c.replies&&g<c.replies.length;g++)F=c.replies[g],F.isResolved=c.isResolved,q(F,c.replies,null,k+1,n);null!=y&&(y.comment.id==c.id?(n=c.content,c.content=y.comment.content,d(c,Q,y.saveCallback,y.deleteOnCancel),c.content=n):null==y.comment.id&&y.comment.pCommentId==c.id&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return Q}}
var u=!b.canComment(),v=b.canReplyToReplies(),y=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var C=EditorUi.compactUi?"26px":"30px",H=document.createElement("div");H.className="geCommentsList";H.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";H.style.bottom=parseInt(C)+7+"px";x.appendChild(H);var D=document.createElement("span");D.style.cssText="display:none;padding-top:10px;text-align:center;";
-mxUtils.write(D,mxResources.get("noCommentsFound"));var E=document.createElement("div");E.className="geToolbarContainer geCommentsToolbar";E.style.height=C;E.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";E.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";C=document.createElement("a");C.className="geButton";if(!u){var M=C.cloneNode();M.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';M.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(M,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;K.push(c);p(g)},function(c){m(g);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),g=q(f,K,null,0);e();c.preventDefault();mxEvent.consume(c)});E.appendChild(M)}M=C.cloneNode();M.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';M.setAttribute("title",mxResources.get("showResolved"));
-var G=!1;Editor.isDarkMode()&&(M.style.filter="invert(100%)");mxEvent.addListener(M,"click",function(b){this.className=(G=!G)?"geButton geCheckedBtn":"geButton";B();b.preventDefault();mxEvent.consume(b)});E.appendChild(M);b.commentsRefreshNeeded()&&(M=C.cloneNode(),M.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',M.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(M.style.filter="invert(100%)"),mxEvent.addListener(M,"click",function(b){B();
-b.preventDefault();mxEvent.consume(b)}),E.appendChild(M));b.commentsSaveNeeded()&&(C=C.cloneNode(),C.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',C.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(C.style.filter="invert(100%)"),mxEvent.addListener(C,"click",function(b){n();b.preventDefault();mxEvent.consume(b)}),E.appendChild(C));x.appendChild(E);var K=[],B=mxUtils.bind(this,function(){this.hasError=!1;if(null!=y)try{y.div=y.div.cloneNode(!0);
+mxUtils.write(D,mxResources.get("noCommentsFound"));var F=document.createElement("div");F.className="geToolbarContainer geCommentsToolbar";F.style.height=C;F.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";F.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";C=document.createElement("a");C.className="geButton";if(!u){var M=C.cloneNode();M.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';M.setAttribute("title",mxResources.get("create")+
+"...");mxEvent.addListener(M,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;K.push(c);p(g)},function(c){m(g);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),g=q(f,K,null,0);e();c.preventDefault();mxEvent.consume(c)});F.appendChild(M)}M=C.cloneNode();M.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';M.setAttribute("title",mxResources.get("showResolved"));
+var G=!1;Editor.isDarkMode()&&(M.style.filter="invert(100%)");mxEvent.addListener(M,"click",function(b){this.className=(G=!G)?"geButton geCheckedBtn":"geButton";B();b.preventDefault();mxEvent.consume(b)});F.appendChild(M);b.commentsRefreshNeeded()&&(M=C.cloneNode(),M.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',M.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(M.style.filter="invert(100%)"),mxEvent.addListener(M,"click",function(b){B();
+b.preventDefault();mxEvent.consume(b)}),F.appendChild(M));b.commentsSaveNeeded()&&(C=C.cloneNode(),C.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',C.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(C.style.filter="invert(100%)"),mxEvent.addListener(C,"click",function(b){n();b.preventDefault();mxEvent.consume(b)}),F.appendChild(C));x.appendChild(F);var K=[],B=mxUtils.bind(this,function(){this.hasError=!1;if(null!=y)try{y.div=y.div.cloneNode(!0);
var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(N){b.handleError(N)}H.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});H.innerHTML="";H.appendChild(D);D.style.display="block";K=b;for(b=0;b<K.length;b++)c(K[b].replies),q(K[b],K,null,0,G);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel))},mxUtils.bind(this,function(b){H.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
-": "+b.message:""));this.hasError=!0})):H.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});B();this.refreshComments=B;E=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=H.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(E,6E4);this.refreshCommentsTime=E;this.window=
+": "+b.message:""));this.hasError=!0})):H.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});B();this.refreshComments=B;F=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=H.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(F,6E4);this.refreshCommentsTime=F;this.window=
new mxWindow(mxResources.get("comments"),x,c,e,k,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(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var L=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",L);this.destroy=function(){mxEvent.removeListener(window,"resize",L);this.window.destroy()}},ConfirmDialog=function(b,c,e,
k,g,n,t,d,f,l,m){var p=document.createElement("div");p.style.textAlign="center";m=null!=m?m:44;var q=document.createElement("div");q.style.padding="6px";q.style.overflow="auto";q.style.maxHeight=m+"px";q.style.lineHeight="1.2em";mxUtils.write(q,c);p.appendChild(q);null!=l&&(q=document.createElement("div"),q.style.padding="6px 0 6px 0",c=document.createElement("img"),c.setAttribute("src",l),q.appendChild(c),p.appendChild(q));l=document.createElement("div");l.style.textAlign="center";l.style.whiteSpace=
@@ -3863,11 +3864,11 @@ var C=v.removeCells;v.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.
f;return C.apply(this,arguments)};u.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var H=v.duplicateCells;v.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=v.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=v.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=H.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
v.getIncomingTreeEdges(l[f]),k=v.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,v.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var D=v.moveCells;v.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var n=g,p=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<c.length;q++)if(b(c[q])||v.model.isEdge(c[q])&&null==v.model.getTerminal(c[q],
!0)){g=v.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=v.getIncomingTreeEdges(c[0]);if(0<t.length){var u=v.view.getState(v.model.getTerminal(t[0],!0));if(null!=u){var B=v.view.getState(n);null!=B&&(d=(B.getCenterX()-u.getCenterX())/v.view.scale,e=(B.getCenterY()-u.getCenterY())/v.view.scale)}}}}m=D.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
-!0))&&this.model.setTerminal(m[q],n,!0);else if(b(c[q])&&(t=v.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==v.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==v.model.getParent(c[q]))p=v.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,v.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=u.sidebar){var E=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
-function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=E.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var M={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},G=u.onKeyDown;u.onKeyDown=function(c){try{if(v.isEnabled()&&
+!0))&&this.model.setTerminal(m[q],n,!0);else if(b(c[q])&&(t=v.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==v.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==v.model.getParent(c[q]))p=v.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,v.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=u.sidebar){var F=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
+function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=F.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var M={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},G=u.onKeyDown;u.onKeyDown=function(c){try{if(v.isEnabled()&&
!v.isEditing()&&b(v.getSelectionCell())&&1==v.getSelectionCount()){var d=null;0<v.getIncomingTreeEdges(v.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?l(v.getSelectionCell()):m(v.getSelectionCell()):13==c.which&&(d=f(v.getSelectionCell(),!mxEvent.isShiftDown(c))));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!=u.hoverIcons&&u.hoverIcons.update(v.view.getState(v.getSelectionCell())),
v.startEditingAtCell(v.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=M[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(q(v.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(q(v.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(q(v.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(q(v.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(c))}}catch(F){u.handleError(F)}mxEvent.isConsumed(c)||G.apply(this,arguments)};var K=v.connectVertex;v.connectVertex=function(c,e,g,k,n,p,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),B=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,x=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?m(c,e):B==x?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};v.getSubtree=function(d){var e=
+mxEvent.consume(c))}}catch(E){u.handleError(E)}mxEvent.isConsumed(c)||G.apply(this,arguments)};var K=v.connectVertex;v.connectVertex=function(c,e,g,k,n,p,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),B=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,x=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?m(c,e):B==x?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};v.getSubtree=function(d){var e=
[d];!c(d)&&!b(d)||t(d)||v.traverse(d,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var B=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){B.apply(this,arguments);(c(this.state.cell)||b(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",
"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(b){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(b);
this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(b)})))};var L=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){L.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 O=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){O.apply(this,
@@ -3958,26 +3959,27 @@ g([c,f(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.
mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&m.appIconClicked(b)}),null,null));c=m.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==qa&&(c=t.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.className="geToolbarButton",c.style.backgroundImage="url("+Editor.globeImage+")",c.style.backgroundPosition="center center",c.style.backgroundRepeat="no-repeat",c.style.backgroundSize=
"24px 24px",c.style.position="absolute",c.style.height="24px",c.style.width="24px",c.style.zIndex="1",c.style.right="8px",c.style.cursor="pointer",c.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(c),qa=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=qa&&(qa.parentNode.removeChild(qa),qa=null))}H.apply(this,arguments);"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:
null!=mxSettings.settings.darkMode?mxSettings.settings.darkMode:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";l.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(l);"1"==urlParams.sketch&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||
-null!=urlParams["search-shapes"])c(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);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));
-m.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,
-arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);
-m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";
-var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var y=m.menus.get("viewZoom"),A="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,C="1"==urlParams.sketch?document.createElement("div"):null,I="1"==urlParams.sketch?document.createElement("div"):null,W="1"==urlParams.sketch?document.createElement("div"):null,ba=mxUtils.bind(this,
-function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.graph.defaultForegroundColor=n.defaultForegroundColor,this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",ba);m.addListener("sketchModeChanged",ba);var oa=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)W.style.left=
-"10px",W.style.top="10px",I.style.left="10px",I.style.top="60px",C.style.top="10px",C.style.right="12px",C.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height=
-"";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",
-rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}W.style.left=m.diagramContainer.offsetLeft+"px";W.style.top=m.diagramContainer.offsetTop-W.offsetHeight-4+"px";I.style.display="";I.style.left=m.diagramContainer.offsetLeft-I.offsetWidth-4+"px";I.style.top=m.diagramContainer.offsetTop+"px";C.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-C.offsetWidth+"px";C.style.top=W.style.top;C.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-
-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=
-m.bottomResizer.style.visibility;p.style.display="none";W.style.visibility="";C.style.visibility=""}),fa=mxUtils.bind(this,function(){ia.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";oa()}),ba=mxUtils.bind(this,function(){fa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+
-c.width+4,c.y)});m.addListener("inlineFullscreenChanged",fa);m.addListener("editInlineStart",ba);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",ba);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";W.style.visibility="hidden";C.style.visibility="hidden";I.style.display="none"}));Graph.touchStyle&&
-(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ja=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ja.apply(this,arguments)}}if(null!=n.freehand){var na=n.freehand.createStyle;n.freehand.createStyle=function(b){return na.apply(this,arguments)+"sketch=0;"}}if("1"==
-urlParams.sketch){I.className="geToolbarContainer";C.className="geToolbarContainer";W.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=I;var pa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){pa||(m.statusContainer.style.display="none")});var ka=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});
-"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):
-m.editor.getStatus();ka(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",pa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",pa=!1)}else m.statusContainer.style.display="inline-block",ka(null),pa=!0;p.style.visibility=12<p.clientWidth?"":
-"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow="none";P.style.padding="6px";P.style.margin="0px";W.appendChild(P);mxEvent.disableContextMenu(P);mxEvent.addGestureListeners(P,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);
-m.statusContainer.style.position="";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(e-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var Y=document.createElement("a");Y.style.padding="0px";Y.style.boxShadow=
-"none";Y.className="geMenuItem";Y.style.display="inline-block";Y.style.width="40px";Y.style.height="12px";Y.style.marginBottom="-2px";Y.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";Y.style.backgroundPosition="top center";Y.style.backgroundRepeat="no-repeat";Y.setAttribute("title","Minimize");var Z=!1,R=mxUtils.bind(this,function(){I.innerHTML="";if(!Z){var b=function(b,d,e){b=f("",b.funct,null,d,b,e);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=function(b,
-c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";I.appendChild(b);mxUtils.br(I);return b};c(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!0,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");c(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
+null!=urlParams["search-shapes"])c(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));var m=this;mxWindow.prototype.fit=function(){if(Editor.inlineFullscreen||null==m.embedViewport)mxUtils.fit(this.div);else{var b=parseInt(this.div.offsetLeft),c=parseInt(this.div.offsetWidth);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-
+c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=
+mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};
+var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText=
+"position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText=
+"position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var y=m.menus.get("viewZoom"),A="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,C="1"==urlParams.sketch?document.createElement("div"):null,I="1"==urlParams.sketch?document.createElement("div"):null,W="1"==urlParams.sketch?document.createElement("div"):null,ba=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),
+this.sidebar.graph.defaultForegroundColor=n.defaultForegroundColor,this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",ba);m.addListener("sketchModeChanged",ba);var oa=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)W.style.left="10px",W.style.top="10px",I.style.left="10px",I.style.top="60px",C.style.top="10px",C.style.right=
+"12px",C.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background=
+"transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}W.style.left=m.diagramContainer.offsetLeft+
+"px";W.style.top=m.diagramContainer.offsetTop-W.offsetHeight-4+"px";I.style.display="";I.style.left=m.diagramContainer.offsetLeft-I.offsetWidth-4+"px";I.style.top=m.diagramContainer.offsetTop+"px";C.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-C.offsetWidth+"px";C.style.top=W.style.top;C.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+
+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=m.bottomResizer.style.visibility;p.style.display="none";W.style.visibility="";C.style.visibility=
+""}),fa=mxUtils.bind(this,function(){ia.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";oa()}),ba=mxUtils.bind(this,function(){fa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",fa);m.addListener("editInlineStart",
+ba);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",ba);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";W.style.visibility="hidden";C.style.visibility="hidden";I.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==
+b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ja=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ja.apply(this,arguments)}}if(null!=n.freehand){var na=n.freehand.createStyle;n.freehand.createStyle=function(b){return na.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){I.className="geToolbarContainer";C.className="geToolbarContainer";
+W.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=I;var pa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){pa||(m.statusContainer.style.display="none")});var ka=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":
+"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();ka(b);var c=m.getCurrentFile(),
+c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",pa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",pa=!1)}else m.statusContainer.style.display="inline-block",ka(null),pa=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",
+mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow="none";P.style.padding="6px";P.style.margin="0px";W.appendChild(P);mxEvent.disableContextMenu(P);mxEvent.addGestureListeners(P,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);m.statusContainer.style.position="";m.statusContainer.style.display=
+"none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(e-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var Y=document.createElement("a");Y.style.padding="0px";Y.style.boxShadow="none";Y.className="geMenuItem";Y.style.display="inline-block";
+Y.style.width="40px";Y.style.height="12px";Y.style.marginBottom="-2px";Y.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";Y.style.backgroundPosition="top center";Y.style.backgroundRepeat="no-repeat";Y.setAttribute("title","Minimize");var Z=!1,R=mxUtils.bind(this,function(){I.innerHTML="";if(!Z){var b=function(b,d,e){b=f("",b.funct,null,d,b,e);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=
+null!=d?d:"default";b.style.margin="2px 0px";I.appendChild(b);mxUtils.br(I);return b};c(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!0,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");c(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
140,160,"",mxResources.get("note"),!0,!0,null,!0),mxResources.get("note"));c(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");c(m.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;orthogonalLoop=1;jettySize=auto;html=1;");
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;c(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));b=b.clone();b.style="edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;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=c(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(m.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);var e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+
@@ -3999,7 +4001,7 @@ null!=m.actions.layersWindow&&m.actions.layersWindow.window.fit();null!=m.menus.
l.style.position="absolute";l.style.width="10px";l.style.height="10px";l.style.borderRadius="5px";l.style.border="1px solid gray";l.style.background="#ffffff";l.style.cursor="row-resize";m.diagramContainer.parentNode.appendChild(l);m.bottomResizer=l;var za=null,Aa=null,Da=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);Aa=mxEvent.getClientY(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});l=l.cloneNode(!1);l.style.cursor="col-resize";m.diagramContainer.parentNode.appendChild(l);
m.rightResizer=l;mxEvent.addGestureListeners(l,function(b){Da=parseInt(m.diagramContainer.style.width);za=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=za&&(m.diagramContainer.style.width=Math.max(20,Da+mxEvent.getClientX(b)-za)+"px",c=!0);null!=Aa&&(m.diagramContainer.style.height=Math.max(20,Ea+mxEvent.getClientY(b)-Aa)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",
fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),m.fireEvent(new mxEventObject("editInlineStart")),m.refresh())},function(b){null==za&&null==Aa||mxEvent.consume(b);Aa=za=null});n.defaultPageBackgroundColor="transparent";this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";W.style.visibility="hidden";C.style.visibility="hidden";I.style.display=
-"none"}"1"==urlParams.prefetchFonts&&m.editor.loadFonts()}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();DrawioComment=function(b,c,e,k,g,n,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=g;this.isResolved=n;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,g){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,g){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=g};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\nbringForward=Bring Forward\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.\ncontainer=Container\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\nembedFonts=Embed Fonts\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\nradial=Radial\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\nsendBackward=Send Backward\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 occurred 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\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\nconfDraftPermissionErr=Draft cannot be written. Do you have attachment write/read permission on this page?\nconfDraftTooBigErr=Draft size is too large. Pease check "Attachment Maximum Size" of "Attachment Settings" in Confluence Configuration?\nowner=Owner\nrepository=Repository\nbranch=Branch\nmeters=Meters\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;
+"none"}"1"==urlParams.prefetchFonts&&m.editor.loadFonts()}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();DrawioComment=function(b,c,e,k,g,n,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=g;this.isResolved=n;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,g){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,g){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=g};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\nbringForward=Bring Forward\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.\ncontainer=Container\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\nembedFonts=Embed Fonts\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\nradial=Radial\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\nsendBackward=Send Backward\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 occurred 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\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\nconfDraftPermissionErr=Draft cannot be written. Do you have attachment write/read permission on this page?\nconfDraftTooBigErr=Draft size is too large. Pease check "Attachment Maximum Size" of "Attachment Settings" in Confluence Configuration?\nowner=Owner\nrepository=Repository\nbranch=Branch\nmeters=Meters\nteamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)\ncontactOwner=Contact Owner\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="default"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="default"/><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="default"/><add as="fontColor" value="default"/></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="default"/><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="default"/><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(b,c,e){this.init(b,c,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://app.diagrams.net/";GraphViewer.prototype.imageBaseUrl="https://viewer.diagrams.net/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?24:26;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!1;GraphViewer.prototype.autoCrop=!1;
GraphViewer.prototype.autoOrigin=!0;GraphViewer.prototype.center=!1;GraphViewer.prototype.forceCenter=!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(b,c,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.autoOrigin=null!=this.graphConfig["auto-origin"]?this.graphConfig["auto-origin"]:this.autoOrigin;this.allowZoomOut=null!=this.graphConfig["allow-zoom-out"]?this.graphConfig["allow-zoom-out"]:this.allowZoomOut;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?
@@ -4042,10 +4044,10 @@ function(){mxUtils.setOpacity(e,0);k=null;g=window.setTimeout(mxUtils.bind(this,
this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<f&&Math.abs(this.scrollTop-d.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?n():t(30))}})}for(var l=this.toolbarItems,m=0,p=null,q=null,u=null,v=null,y=0;y<l.length;y++){var x=l[y];if("pages"==x){v=c.ownerDocument.createElement("div");
v.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(v,70);var C=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");C.style.borderRightStyle="none";C.style.paddingLeft="0px";C.style.paddingRight="0px";e.appendChild(v);var H=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");H.style.paddingLeft="0px";H.style.paddingRight="0px";x=mxUtils.bind(this,function(){v.innerHTML="";mxUtils.write(v,this.currentPage+1+" / "+this.diagrams.length);v.style.display=1<this.diagrams.length?"inline-block":"none";C.style.display=v.style.display;H.style.display=v.style.display});this.addListener("graphChanged",x);x()}else if("zoom"==x)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
-mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(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"==x){if(this.layersEnabled){var D=this.graph.getModel(),E=b(mxUtils.bind(this,function(b){if(null!=p)p.parentNode.removeChild(p),
+mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(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"==x){if(this.layersEnabled){var D=this.graph.getModel(),F=b(mxUtils.bind(this,function(b){if(null!=p)p.parentNode.removeChild(p),
p=null;else{p=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this.autoCrop)this.crop();else if(this.autoOrigin){var b=this.graph.getGraphBounds(),c=this.graph.view;0>b.x||0>b.y?(this.crop(),this.graph.originalViewState=this.graph.initialViewState,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale}):null!=this.graph.originalViewState&&0<b.x/c.scale+this.graph.originalViewState.translate.x-c.translate.x&&0<b.y/c.scale+this.graph.originalViewState.translate.y-c.translate.y&&
-(c.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale})}}));mxEvent.addListener(p,"mouseleave",function(){p.parentNode.removeChild(p);p=null});b=E.getBoundingClientRect();p.style.width="140px";p.style.padding="2px 0px 2px 0px";p.style.border="1px solid #d0d0d0";p.style.backgroundColor="#eee";p.style.fontFamily=Editor.defaultHtmlFont;p.style.fontSize=
-"11px";p.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(p,80);var c=mxUtils.getDocumentScrollOrigin(document);p.style.left=c.x+b.left-1+"px";p.style.top=c.y+b.bottom-2+"px";document.body.appendChild(p)}}),Editor.layersImage,mxResources.get("layers")||"Layers");D.addListener(mxEvent.CHANGE,function(){E.style.display=1<D.getChildCount(D.root)?"inline-block":"none"});E.style.display=1<D.getChildCount(D.root)?"inline-block":"none"}}else if("tags"==x){if(this.tagsEnabled){var M=b(mxUtils.bind(this,
+(c.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale})}}));mxEvent.addListener(p,"mouseleave",function(){p.parentNode.removeChild(p);p=null});b=F.getBoundingClientRect();p.style.width="140px";p.style.padding="2px 0px 2px 0px";p.style.border="1px solid #d0d0d0";p.style.backgroundColor="#eee";p.style.fontFamily=Editor.defaultHtmlFont;p.style.fontSize=
+"11px";p.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(p,80);var c=mxUtils.getDocumentScrollOrigin(document);p.style.left=c.x+b.left-1+"px";p.style.top=c.y+b.bottom-2+"px";document.body.appendChild(p)}}),Editor.layersImage,mxResources.get("layers")||"Layers");D.addListener(mxEvent.CHANGE,function(){F.style.display=1<D.getChildCount(D.root)?"inline-block":"none"});F.style.display=1<D.getChildCount(D.root)?"inline-block":"none"}}else if("tags"==x){if(this.tagsEnabled){var M=b(mxUtils.bind(this,
function(b){null==q&&(q=this.graph.createTagsDialog(mxUtils.bind(this,function(){return!0})),q.div.getElementsByTagName("div")[0].style.position="",q.div.style.maxHeight="160px",q.div.style.maxWidth="120px",q.div.style.padding="2px",q.div.style.overflow="auto",q.div.style.height="auto",q.div.style.position="fixed",q.div.style.fontFamily=Editor.defaultHtmlFont,q.div.style.fontSize="11px",q.div.style.backgroundColor="#eee",q.div.style.color="#000",q.div.style.border="1px solid #d0d0d0",q.div.style.zIndex=
this.toolbarZIndex+1,mxUtils.setOpacity(q.div,80));if(null!=u)u.parentNode.removeChild(u),u=null;else{u=q.div;mxEvent.addListener(u,"mouseleave",function(){u.parentNode.removeChild(u);u=null});b=M.getBoundingClientRect();var c=mxUtils.getDocumentScrollOrigin(document);u.style.left=c.x+b.left-1+"px";u.style.top=c.y+b.bottom-2+"px";document.body.appendChild(u);q.refresh()}}),Editor.tagsImage,mxResources.get("tags")||"Tags");D.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){M.style.display=0<
this.graph.getAllTags().length?"inline-block":"none"}));M.style.display=0<this.graph.getAllTags().length?"inline-block":"none"}}else"lightbox"==x?this.lightboxEnabled&&b(mxUtils.bind(this,function(){this.showLightbox()}),Editor.fullscreenImage,mxResources.get("fullscreen")||"Fullscreen"):null!=this.graphConfig["toolbar-buttons"]&&(x=this.graphConfig["toolbar-buttons"][x],null!=x&&(x.elem=b(null==x.enabled||x.enabled?x.handler:function(){},x.image,x.title,x.enabled)))}null!=this.graph.minimumContainerSize&&
diff --git a/src/main/webapp/mxgraph/mxClient.js b/src/main/webapp/mxgraph/mxClient.js
index 4ca7f59b..c345773d 100644
--- a/src/main/webapp/mxgraph/mxClient.js
+++ b/src/main/webapp/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"15.5.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:"15.6.0",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_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),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/"),
diff --git a/src/main/webapp/resources/dia.txt b/src/main/webapp/resources/dia.txt
index 4ee9cf68..ed2716a2 100644
--- a/src/main/webapp/resources/dia.txt
+++ b/src/main/webapp/resources/dia.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_am.txt b/src/main/webapp/resources/dia_am.txt
index 11332c2e..ef3d6520 100644
--- a/src/main/webapp/resources/dia_am.txt
+++ b/src/main/webapp/resources/dia_am.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_ar.txt b/src/main/webapp/resources/dia_ar.txt
index 7d0aef88..890f9959 100644
--- a/src/main/webapp/resources/dia_ar.txt
+++ b/src/main/webapp/resources/dia_ar.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_bg.txt b/src/main/webapp/resources/dia_bg.txt
index bb389e34..cbb7983c 100644
--- a/src/main/webapp/resources/dia_bg.txt
+++ b/src/main/webapp/resources/dia_bg.txt
@@ -1162,3 +1162,5 @@ owner=Собственик
repository=Хранилище
branch=Клон
meters=Метри
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_bn.txt b/src/main/webapp/resources/dia_bn.txt
index e90510d2..8a4cd28e 100644
--- a/src/main/webapp/resources/dia_bn.txt
+++ b/src/main/webapp/resources/dia_bn.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_bs.txt b/src/main/webapp/resources/dia_bs.txt
index 5079116a..96c1c13b 100644
--- a/src/main/webapp/resources/dia_bs.txt
+++ b/src/main/webapp/resources/dia_bs.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_ca.txt b/src/main/webapp/resources/dia_ca.txt
index fe06cb31..dee1df61 100644
--- a/src/main/webapp/resources/dia_ca.txt
+++ b/src/main/webapp/resources/dia_ca.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_cs.txt b/src/main/webapp/resources/dia_cs.txt
index 78210408..c625ea1b 100644
--- a/src/main/webapp/resources/dia_cs.txt
+++ b/src/main/webapp/resources/dia_cs.txt
@@ -1162,3 +1162,5 @@ owner=Vlastník
repository=Repozitář
branch=Větev
meters=Metrů
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_da.txt b/src/main/webapp/resources/dia_da.txt
index 950bf5b2..10267ed2 100644
--- a/src/main/webapp/resources/dia_da.txt
+++ b/src/main/webapp/resources/dia_da.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_de.txt b/src/main/webapp/resources/dia_de.txt
index 539aacbb..5d596a38 100644
--- a/src/main/webapp/resources/dia_de.txt
+++ b/src/main/webapp/resources/dia_de.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meter
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_el.txt b/src/main/webapp/resources/dia_el.txt
index e823d376..50757955 100644
--- a/src/main/webapp/resources/dia_el.txt
+++ b/src/main/webapp/resources/dia_el.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_eo.txt b/src/main/webapp/resources/dia_eo.txt
index 027b53f6..8de7d1e8 100644
--- a/src/main/webapp/resources/dia_eo.txt
+++ b/src/main/webapp/resources/dia_eo.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_es.txt b/src/main/webapp/resources/dia_es.txt
index 830c43e8..844fa5ee 100644
--- a/src/main/webapp/resources/dia_es.txt
+++ b/src/main/webapp/resources/dia_es.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_et.txt b/src/main/webapp/resources/dia_et.txt
index ab8ccb4c..13d0649c 100644
--- a/src/main/webapp/resources/dia_et.txt
+++ b/src/main/webapp/resources/dia_et.txt
@@ -74,7 +74,7 @@ bottomAlign=Alaääre joondamine
bottomLeft=All vasakul
bottomRight=All paremal
bpmn=BPMN
-bringForward=Bring Forward
+bringForward=Too ette
browser=Brauser
bulletedList=Punktloetelu
business=Äri
@@ -97,18 +97,18 @@ chatWindowTitle=Chat
chooseAnOption=Tee valik
chromeApp=Chrome App
collaborativeEditingNotice=Oluline teadaanne grupitöö muutmise jaoks
-compare=Compare
+compare=Võrdle
compressed=Pakitud
commitMessage=Kinnita sõnum
configLinkWarn=See link seadistab draw.io. Vali OK vaid juhul kui usaldad isikut, kes sulle selle saatis !!
configLinkConfirm=Vali OK et draw.io seadistada ja uuesti laadida.
-container=Container
+container=Konteiner
csv=CSV
dark=Tume
-diagramXmlDesc=XML File
-diagramHtmlDesc=HTML File
-diagramPngDesc=Editable Bitmap Image
-diagramSvgDesc=Editable Vector Image
+diagramXmlDesc=XML fail
+diagramHtmlDesc=HTML fail
+diagramPngDesc=Muudetav bitmap pilt
+diagramSvgDesc=Muudetav vektorpilt
didYouMeanToExportToPdf=Kas soovisid PDFi eksportida?
draftFound=Mustand {1} jaoks on leitud. Lae see töötluskeskkonda või tühista jätkamiseks.
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.
@@ -135,7 +135,7 @@ comic=Vabakäejoonis
comment=Kommentaar
commentsNotes=Märkused
compress=Paki kokku
-configuration=Configuration
+configuration=Seaded
connect=Ühenda
connecting=Ühendamas
connectWithDrive=Ühenda Google Drive'iga
@@ -193,7 +193,7 @@ discardChanges=Tühista muudatused
disconnected=Ühendus katkestatud
distribute=Jaota
done=Tehtud
-doNotShowAgain=Do not show again
+doNotShowAgain=Ära kuva enam
dotted=Täpiline
doubleClickOrientation=Topeltklõps suuna muutmiseks
doubleClickTooltip=Topeltklõps teksti sisestamiseks
@@ -236,7 +236,7 @@ googleImages=Google Pildid
imageSearch=Pildiotsing
eip=EIP
embed=Lisa
-embedFonts=Embed Fonts
+embedFonts=Lisa kirjastiile
embedImages=Lisa kujutisi
mainEmbedNotice=Kleebi sellele lehele
electrical=Elektriline
@@ -247,7 +247,7 @@ enterName=Sisesta nimi
enterPropertyName=Sisesta valduse nimi
enterValue=Sisesta väärtus
entityRelation=Olemite seos
-entityRelationshipDiagram=Entity Relationship Diagram
+entityRelationshipDiagram=Olemidiagramm
error=Viga
errorDeletingFile=Viga faili kustutamisel
errorLoadingFile=Viga faili laadimisel
@@ -414,7 +414,7 @@ insertRowBefore=Sisesta rida ülespoole
insertRowAfter=Sisesta rida allapoole
insertText=Sisesta tekst
inserting=Sisestamine
-installApp=Install App
+installApp=Paigalda Äpp
invalidFilename=Diagrammi nimed ei tohi sisaldada järgnevaid tähemärke: \ / | : ; { } < > & + ? = "
invalidLicenseSeeThisPage=Sinu litsents on kehtetu, palun vaata seda <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">lehte</a>.
invalidInput=Viga sisestamisel
@@ -434,7 +434,7 @@ lastChange=Viimane muudatus {1} tagasi
lessThanAMinute=vähem kui minut
licensingError=Litsentsiviga
licenseHasExpired=Litsents {1} jaoks aegub {2}. Vajuta siia.
-licenseRequired=This feature requires draw.io to be licensed.
+licenseRequired=Selle funktsionaalsuse jaoks on vaja draw.io litsentsi.
licenseWillExpire=Litsents {1} jaoks aegub {2}. Vajuta siia.
lineJumps=Joone punktid
linkAccountRequired=Kui diagramm pole avalik, siis läheb lingi vaatamiseks Google'i kasutajakontot vaja.
@@ -567,7 +567,7 @@ paperSize=Paberi suurus
pattern=Muster
parallels=Parallels
paste=Kleebi
-pasteData=Paste Data
+pasteData=Kleebi andmed
pasteHere=Kleebi siia
pasteSize=Kleebi mõõdud
pasteStyle=Kleebi stiil
@@ -673,7 +673,7 @@ selectFont=Vali font
selectNone=Ära vali midagi
selectTemplate=Vali mall
selectVertices=Vali punktid
-sendBackward=Send Backward
+sendBackward=Saada taha
sendMessage=Saada
sendYourFeedback=Saada oma tagasiside
serviceUnavailableOrBlocked=Teenus pole saadaval või on blokeeritud
@@ -696,7 +696,7 @@ simple=Lihtne
simpleArrow=Lihtne nool
simpleViewer=Lihtne vaade
size=Suurus
-sketch=Sketch
+sketch=Sketš
solid=Katkematu
sourceSpacing=Allika vahekaugus
south=Lõuna
@@ -734,7 +734,7 @@ title=Pealkiri
to=kuni
toBack=Taha
toFront=Ette
-tooLargeUseDownload=Too large, use download instead.
+tooLargeUseDownload=Liiga suur, lae alla.
toolbar=Tööriistariba
tooltips=Kohtspikker
top=Üles
@@ -845,8 +845,8 @@ shared=Jagatud
sharepoint=Sharepoint
officeManualUpdateInst=Juhised: Kopeeri draw.io diagramm dokumendis. Seejärel vali paremklikiga alltoodud kastis ja vali "Kleebi" kontekstimenüüs.
officeClickToEdit=Muutmiseks kliki ikoonil:
-pasteDiagram=Paste draw.io diagram here
-connectOD=Connect to OneDrive
+pasteDiagram=Kleebi draw.io diagramm siia
+connectOD=Ühenda OneDrive
selectChildren=Select Children
selectSiblings=Select Siblings
selectParent=Select Parent
@@ -874,9 +874,9 @@ confContactAdmin=Palun võta ühendust enda Confluence administraatoriga.
readErr=Viga lugemisel
editingErr=Viga muutmisel.
confExtEditNotPossible=Seda diagrammi ei saa väliselt muuta. Palun proovi seda lehel muuta.
-confEditedExt=Diagram/Page edited externally
+confEditedExt=Diagrammi / Lehte muudeti mujalt
diagNotFound=Diagrammi ei leitud
-confEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.
+confEditedExtRefresh=Diagrammi / Lehte muudetakse mujalt. Palun värskenda lehte.
confCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.
retBack=Mine tagasi
confDiagNotPublished=The diagram does not belong to a published page
@@ -916,7 +916,7 @@ configJSONInst=Write draw.io JSON configuration in the editor below then click s
thisPage=this page
curCustLib=Current Custom Libraries
libName=Library Name
-action=Action
+action=Tegevus
drawConfID=draw.io Config ID
addLibInst=Click the "Add Library" button to upload a new library.
addLib=Add Library
@@ -969,7 +969,7 @@ confAConfSpaceDesc=This space is used to store draw.io configuration files and c
confANoCustLib=No Custom Libraries
delFailed=Kustutamine ei õnnestunud!
showID=Näita ID
-confAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.
+confAIncorrectLibFileType=Vale failitüüp. Teegid peavad olema XML failidena.
uploading=Üleslaadimine
confALibExist=This library already exists
confAUploadSucc=Üleslaadimine õnnestus
@@ -1103,10 +1103,10 @@ plsSelectFile=Please select a file
mustBgtZ={1} must be greater than zero
cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
-noPrevAvail=No preview is available.
+noPrevAvail=Eelvaade pole saadaval.
personalAccNotSup=Personal accounts are not supported.
errSavingTryLater=Error occurred during saving, please try again later.
-plsEnterFld=Please enter {1}
+plsEnterFld=Sisesta {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
unsupportedImg=Unsupported image file
@@ -1158,7 +1158,9 @@ noDBs=No Databases
diagramEdited={1} diagram "{2}" edited
confDraftPermissionErr=Draft cannot be written. Do you have attachment write/read permission on this page?
confDraftTooBigErr=Draft size is too large. Pease check "Attachment Maximum Size" of "Attachment Settings" in Confluence Configuration?
-owner=Owner
+owner=Omanik
repository=Repository
-branch=Branch
+branch=Haru
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_eu.txt b/src/main/webapp/resources/dia_eu.txt
index 8b4546fd..b7145846 100644
--- a/src/main/webapp/resources/dia_eu.txt
+++ b/src/main/webapp/resources/dia_eu.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_fa.txt b/src/main/webapp/resources/dia_fa.txt
index 27dd2096..164cb899 100644
--- a/src/main/webapp/resources/dia_fa.txt
+++ b/src/main/webapp/resources/dia_fa.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_fi.txt b/src/main/webapp/resources/dia_fi.txt
index cf4e7832..f0209bf0 100644
--- a/src/main/webapp/resources/dia_fi.txt
+++ b/src/main/webapp/resources/dia_fi.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_fil.txt b/src/main/webapp/resources/dia_fil.txt
index e361d861..326053be 100644
--- a/src/main/webapp/resources/dia_fil.txt
+++ b/src/main/webapp/resources/dia_fil.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_fr.txt b/src/main/webapp/resources/dia_fr.txt
index 621c2542..b36fb73e 100644
--- a/src/main/webapp/resources/dia_fr.txt
+++ b/src/main/webapp/resources/dia_fr.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_gl.txt b/src/main/webapp/resources/dia_gl.txt
index 98da51fd..a99eb17b 100644
--- a/src/main/webapp/resources/dia_gl.txt
+++ b/src/main/webapp/resources/dia_gl.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_gu.txt b/src/main/webapp/resources/dia_gu.txt
index cfdb5e6f..7b17bdf3 100644
--- a/src/main/webapp/resources/dia_gu.txt
+++ b/src/main/webapp/resources/dia_gu.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_he.txt b/src/main/webapp/resources/dia_he.txt
index 4a60977f..0e5b5e83 100644
--- a/src/main/webapp/resources/dia_he.txt
+++ b/src/main/webapp/resources/dia_he.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_hi.txt b/src/main/webapp/resources/dia_hi.txt
index 1a450887..668945e1 100644
--- a/src/main/webapp/resources/dia_hi.txt
+++ b/src/main/webapp/resources/dia_hi.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_hr.txt b/src/main/webapp/resources/dia_hr.txt
index ed0e4d79..f561fed7 100644
--- a/src/main/webapp/resources/dia_hr.txt
+++ b/src/main/webapp/resources/dia_hr.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_hu.txt b/src/main/webapp/resources/dia_hu.txt
index 92b5b8a4..60beaab0 100644
--- a/src/main/webapp/resources/dia_hu.txt
+++ b/src/main/webapp/resources/dia_hu.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_i18n.txt b/src/main/webapp/resources/dia_i18n.txt
index aac8e84c..4c9ed033 100644
--- a/src/main/webapp/resources/dia_i18n.txt
+++ b/src/main/webapp/resources/dia_i18n.txt
@@ -1162,3 +1162,5 @@ owner=owner
repository=repository
branch=branch
meters=meters
+teamsNoEditingMsg=teamsNoEditingMsg
+contactOwner=contactOwner
diff --git a/src/main/webapp/resources/dia_id.txt b/src/main/webapp/resources/dia_id.txt
index 11f0a157..d8ede39a 100644
--- a/src/main/webapp/resources/dia_id.txt
+++ b/src/main/webapp/resources/dia_id.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_it.txt b/src/main/webapp/resources/dia_it.txt
index df3f90d1..94a918b0 100644
--- a/src/main/webapp/resources/dia_it.txt
+++ b/src/main/webapp/resources/dia_it.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_ja.txt b/src/main/webapp/resources/dia_ja.txt
index 2691d54e..b9c3fb6e 100644
--- a/src/main/webapp/resources/dia_ja.txt
+++ b/src/main/webapp/resources/dia_ja.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_kn.txt b/src/main/webapp/resources/dia_kn.txt
index 994aa6b5..58b4118e 100644
--- a/src/main/webapp/resources/dia_kn.txt
+++ b/src/main/webapp/resources/dia_kn.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_ko.txt b/src/main/webapp/resources/dia_ko.txt
index 95dc691c..22afc54f 100644
--- a/src/main/webapp/resources/dia_ko.txt
+++ b/src/main/webapp/resources/dia_ko.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_lt.txt b/src/main/webapp/resources/dia_lt.txt
index 124c5b65..b4a74b06 100644
--- a/src/main/webapp/resources/dia_lt.txt
+++ b/src/main/webapp/resources/dia_lt.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_lv.txt b/src/main/webapp/resources/dia_lv.txt
index 09cfc3cf..8d2d7f0c 100644
--- a/src/main/webapp/resources/dia_lv.txt
+++ b/src/main/webapp/resources/dia_lv.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_ml.txt b/src/main/webapp/resources/dia_ml.txt
index 7eae553c..0bd933aa 100644
--- a/src/main/webapp/resources/dia_ml.txt
+++ b/src/main/webapp/resources/dia_ml.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_mr.txt b/src/main/webapp/resources/dia_mr.txt
index 08275eab..19c2b993 100644
--- a/src/main/webapp/resources/dia_mr.txt
+++ b/src/main/webapp/resources/dia_mr.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_ms.txt b/src/main/webapp/resources/dia_ms.txt
index 0e765869..d78da1c0 100644
--- a/src/main/webapp/resources/dia_ms.txt
+++ b/src/main/webapp/resources/dia_ms.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_my.txt b/src/main/webapp/resources/dia_my.txt
index 4ee9cf68..ed2716a2 100644
--- a/src/main/webapp/resources/dia_my.txt
+++ b/src/main/webapp/resources/dia_my.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_nl.txt b/src/main/webapp/resources/dia_nl.txt
index be56baa2..0f3fe42a 100644
--- a/src/main/webapp/resources/dia_nl.txt
+++ b/src/main/webapp/resources/dia_nl.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_no.txt b/src/main/webapp/resources/dia_no.txt
index 8a12f3a7..534d835f 100644
--- a/src/main/webapp/resources/dia_no.txt
+++ b/src/main/webapp/resources/dia_no.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_pl.txt b/src/main/webapp/resources/dia_pl.txt
index 86e36255..dfe4ae3c 100644
--- a/src/main/webapp/resources/dia_pl.txt
+++ b/src/main/webapp/resources/dia_pl.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_pt-br.txt b/src/main/webapp/resources/dia_pt-br.txt
index a40ebb4f..5367e640 100644
--- a/src/main/webapp/resources/dia_pt-br.txt
+++ b/src/main/webapp/resources/dia_pt-br.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repositório
branch=Branch
meters=Metros
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_pt.txt b/src/main/webapp/resources/dia_pt.txt
index 8193e6ab..494ba47d 100644
--- a/src/main/webapp/resources/dia_pt.txt
+++ b/src/main/webapp/resources/dia_pt.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_ro.txt b/src/main/webapp/resources/dia_ro.txt
index acaa1cc4..7d58e047 100644
--- a/src/main/webapp/resources/dia_ro.txt
+++ b/src/main/webapp/resources/dia_ro.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_ru.txt b/src/main/webapp/resources/dia_ru.txt
index 47a80deb..4886a6b4 100644
--- a/src/main/webapp/resources/dia_ru.txt
+++ b/src/main/webapp/resources/dia_ru.txt
@@ -1162,3 +1162,5 @@ owner=Владелец
repository=Репозиторий
branch=Ветвь
meters=Метры
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_si.txt b/src/main/webapp/resources/dia_si.txt
index 4ee9cf68..ed2716a2 100644
--- a/src/main/webapp/resources/dia_si.txt
+++ b/src/main/webapp/resources/dia_si.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_sk.txt b/src/main/webapp/resources/dia_sk.txt
index 1fd5b8cd..1dcdbe1a 100644
--- a/src/main/webapp/resources/dia_sk.txt
+++ b/src/main/webapp/resources/dia_sk.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_sl.txt b/src/main/webapp/resources/dia_sl.txt
index 10c721d4..901df4d4 100644
--- a/src/main/webapp/resources/dia_sl.txt
+++ b/src/main/webapp/resources/dia_sl.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_sr.txt b/src/main/webapp/resources/dia_sr.txt
index 773f965d..36640d2d 100644
--- a/src/main/webapp/resources/dia_sr.txt
+++ b/src/main/webapp/resources/dia_sr.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_sv.txt b/src/main/webapp/resources/dia_sv.txt
index b421593e..fd4ee6fd 100644
--- a/src/main/webapp/resources/dia_sv.txt
+++ b/src/main/webapp/resources/dia_sv.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_sw.txt b/src/main/webapp/resources/dia_sw.txt
index c82ffb10..d1231d72 100644
--- a/src/main/webapp/resources/dia_sw.txt
+++ b/src/main/webapp/resources/dia_sw.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_ta.txt b/src/main/webapp/resources/dia_ta.txt
index a95c4aac..ff71be96 100644
--- a/src/main/webapp/resources/dia_ta.txt
+++ b/src/main/webapp/resources/dia_ta.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_te.txt b/src/main/webapp/resources/dia_te.txt
index cfcf222e..ab4c28de 100644
--- a/src/main/webapp/resources/dia_te.txt
+++ b/src/main/webapp/resources/dia_te.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_th.txt b/src/main/webapp/resources/dia_th.txt
index 4792da03..030abe49 100644
--- a/src/main/webapp/resources/dia_th.txt
+++ b/src/main/webapp/resources/dia_th.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_tr.txt b/src/main/webapp/resources/dia_tr.txt
index 4e4d53b4..f415a0b4 100644
--- a/src/main/webapp/resources/dia_tr.txt
+++ b/src/main/webapp/resources/dia_tr.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_uk.txt b/src/main/webapp/resources/dia_uk.txt
index 3f2af3d1..2996e3eb 100644
--- a/src/main/webapp/resources/dia_uk.txt
+++ b/src/main/webapp/resources/dia_uk.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_vi.txt b/src/main/webapp/resources/dia_vi.txt
index c6e395a8..5628cfc4 100644
--- a/src/main/webapp/resources/dia_vi.txt
+++ b/src/main/webapp/resources/dia_vi.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_zh-tw.txt b/src/main/webapp/resources/dia_zh-tw.txt
index ea0bdeb7..a01812e6 100644
--- a/src/main/webapp/resources/dia_zh-tw.txt
+++ b/src/main/webapp/resources/dia_zh-tw.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/resources/dia_zh.txt b/src/main/webapp/resources/dia_zh.txt
index 3439c681..74a01a61 100644
--- a/src/main/webapp/resources/dia_zh.txt
+++ b/src/main/webapp/resources/dia_zh.txt
@@ -1162,3 +1162,5 @@ owner=Owner
repository=Repository
branch=Branch
meters=Meters
+teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
+contactOwner=Contact Owner
diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js
index 09d7da07..96251694 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:"08c66aa5ac5e72061f1a2f6fea4eaa56"},{url:"js/extensions.min.js",revision:"8f6625690fa713232aedd263ba09d115"},{url:"js/stencils.min.js",revision:"8ada746d21157d3d47e6ad3abbbcc3ab"},{url:"js/shapes-14-6-5.min.js",revision:"966d6d7fd2b6a3ddf7098a12982e31f7"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"28ab148081b0ccd22ad2db634d538b6b"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"00339c600732790e04874fb33825899c"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"3179f617dd02efd2cefeb8c06f965880"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"d61121373d37251911199c6fb5e32db9"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"2ce6e99d95113e9ca6b24343cea202e0"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"6e9412c359a21b86dc7c5128bf6208d4"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"01caa325f3ad3f6565e0b4228907fb63"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{url:"connect/jira/fullscreen-viewer.js",revision:"4e0775a6c156a803e777870623ac7c3e"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"ff6d6e41b861a30d0b39ac80bd34afa7"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"c0c8dc057fd346abf2993d2c7b09adf5"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"887d3ac605a7bb297067537e7c1f5686"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"8679465f38382a2d3811ba5b6fbb0d5d"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c7b38b3af4eb7a58ab6dc4791216530e"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"8b670f4b6ccde55358851da705ae884f"},{url:"connect/confluence/includeDiagram.html",revision:"c03c89622d22227313645900af4e3c3d"},{url:"connect/confluence/macro-editor.js",revision:"e273a48b8e81faac4530bf1a68d75aa0"},{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:"b383eb72a1a9237af76c73742c175d7b"},{url:"resources/dia_am.txt",revision:"e55067ae4d55857d3070f396ede3763a"},{url:"resources/dia_ar.txt",revision:"dc10e48a9af84289ca4f184d44ad5bca"},{url:"resources/dia_bg.txt",revision:"fc89630a0eb923047517cd94f7a214ba"},{url:"resources/dia_bn.txt",revision:"66f3d38b47e70fde02749a6e14916b0b"},{url:"resources/dia_bs.txt",revision:"f540f69f3cc75675b5045d34bae33991"},{url:"resources/dia_ca.txt",revision:"d78617c2e9e999eb75ff70c155dfc15a"},{url:"resources/dia_cs.txt",revision:"9922d6c8edb082b57b54361de5ef367a"},{url:"resources/dia_da.txt",revision:"d0cf005e4b117c4bb8736b34257fa53f"},{url:"resources/dia_de.txt",revision:"c9db127ff9921fd13bfaf3a1c4481a19"},{url:"resources/dia_el.txt",revision:"bde5f6b632a7fb3a5cdc8bcc3c8a21de"},{url:"resources/dia_eo.txt",revision:"4e4ea2bb8617e6844cb6c381edc07136"},{url:"resources/dia_es.txt",revision:"7b377b96724bb48fd88087ee78fab6dd"},{url:"resources/dia_et.txt",revision:"f761f425860c66c0b95e9dee38af544b"},{url:"resources/dia_eu.txt",revision:"877f76f596cefd9a2579be44ff123e46"},{url:"resources/dia_fa.txt",revision:"f527c1d3f3053544ce9ce7e8a4bdb25f"},{url:"resources/dia_fi.txt",revision:"f12cff9b660dc51b44e7844c1fb9ff8f"},{url:"resources/dia_fil.txt",revision:"2356557138b9aa9c58b17c3f2c3713ba"},{url:"resources/dia_fr.txt",revision:"3de1d090961ce832eef5ca054b18a9bf"},{url:"resources/dia_gl.txt",revision:"6f89c6614d0e52e34d13c2bbb570a71d"},{url:"resources/dia_gu.txt",revision:"f325d0bc7ce01bfe2d1a5342848a6463"},{url:"resources/dia_he.txt",revision:"55a669d7455bb036de5814ea1ac56737"},{url:"resources/dia_hi.txt",revision:"437d7b2e7b6dea531305d6694242f3a4"},{url:"resources/dia_hr.txt",revision:"b7ce2dfccd64f4ef1bbf08146d6c7e54"},{url:"resources/dia_hu.txt",revision:"5358c536ef8667aca0526dc6e1ae2903"},{url:"resources/dia_id.txt",revision:"1ec7bae1342609fa287b4d8999f7fa8d"},{url:"resources/dia_it.txt",revision:"ce1daa6eb8a2252f5f28306e2c4c7a58"},{url:"resources/dia_ja.txt",revision:"141b274dd11e7780d4045c1fa1cad8fa"},{url:"resources/dia_kn.txt",revision:"21633a3d2a7126cd54176cb217c626ea"},{url:"resources/dia_ko.txt",revision:"1045fd33a5abb795e9bd69e47d5030ca"},{url:"resources/dia_lt.txt",revision:"bac0df086b9f5b81014325c8b90b17aa"},{url:"resources/dia_lv.txt",revision:"979679783b20b8320dcb27f226713e64"},{url:"resources/dia_ml.txt",revision:"58db4d45d0229ed787828efd2b421f73"},{url:"resources/dia_mr.txt",revision:"230aaef82f89671e5e2a38dda30e3dd6"},{url:"resources/dia_ms.txt",revision:"c48e8fe6d32bedf9983da01aabeb6adf"},{url:"resources/dia_my.txt",revision:"b383eb72a1a9237af76c73742c175d7b"},{url:"resources/dia_nl.txt",revision:"139a8d6c5a09df090746dd3c7feac125"},{url:"resources/dia_no.txt",revision:"a7c2f933cfcd3d920a577c94c5d78630"},{url:"resources/dia_pl.txt",revision:"b82d913f6fcbb933c012448230a13de1"},{url:"resources/dia_pt-br.txt",revision:"f349ee2484358fda66d76246ceee3171"},{url:"resources/dia_pt.txt",revision:"29fd615b2c5e638911ffee5c6157074b"},{url:"resources/dia_ro.txt",revision:"280076b30ec48f27f529c747040e9042"},{url:"resources/dia_ru.txt",revision:"3953375ca885848789c46c352d450746"},{url:"resources/dia_si.txt",revision:"b383eb72a1a9237af76c73742c175d7b"},{url:"resources/dia_sk.txt",revision:"251cdfff7b7e0643f310c2675cd6a590"},{url:"resources/dia_sl.txt",revision:"2f37c20dc4ab20a4534b809ece82a42d"},{url:"resources/dia_sr.txt",revision:"0bff657d99483eb38765b1055d42adb1"},{url:"resources/dia_sv.txt",revision:"6620ba44472e9aebcf8d1fb41e820d76"},{url:"resources/dia_sw.txt",revision:"749592107e620923cb2307b2b80fcbb1"},{url:"resources/dia_ta.txt",revision:"44175b7066417421d6db7fed1bbc5fe0"},{url:"resources/dia_te.txt",revision:"e4bf4fb58853a29110a9579eddfe5881"},{url:"resources/dia_th.txt",revision:"687cfcd42587633e303b2e1f5eb1d2c4"},{url:"resources/dia_tr.txt",revision:"415f3ff69ed302728f47625c749fdf67"},{url:"resources/dia_uk.txt",revision:"9ff1fd58a63812a716a8f677002e9f59"},{url:"resources/dia_vi.txt",revision:"04e395181dbfa61f20805b25514765fd"},{url:"resources/dia_zh-tw.txt",revision:"29e9bd7cec3f06c6df629406a2327005"},{url:"resources/dia_zh.txt",revision:"7cb113801ebccb23ae4736b9cb27e289"},{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/default-user.jpg",revision:"2c399696a87c8921f12d2f9e1990cc6e"},{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:"f8c045b2d7b1c719fda64edab04c415c"},{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:"b4904bc5178c10f3106747d6081b485d"},{url:"js/extensions.min.js",revision:"8f6625690fa713232aedd263ba09d115"},{url:"js/stencils.min.js",revision:"8ada746d21157d3d47e6ad3abbbcc3ab"},{url:"js/shapes-14-6-5.min.js",revision:"966d6d7fd2b6a3ddf7098a12982e31f7"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"28ab148081b0ccd22ad2db634d538b6b"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"00339c600732790e04874fb33825899c"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"3179f617dd02efd2cefeb8c06f965880"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"696f1c80bdb48cc084bb22e1c5a81160"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"2ce6e99d95113e9ca6b24343cea202e0"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"6e9412c359a21b86dc7c5128bf6208d4"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"01caa325f3ad3f6565e0b4228907fb63"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{url:"connect/jira/fullscreen-viewer.js",revision:"4e0775a6c156a803e777870623ac7c3e"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"ff6d6e41b861a30d0b39ac80bd34afa7"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"c0c8dc057fd346abf2993d2c7b09adf5"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"887d3ac605a7bb297067537e7c1f5686"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"ebc84426a9980f16d2206e9e8a45cdd9"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c7b38b3af4eb7a58ab6dc4791216530e"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"8b670f4b6ccde55358851da705ae884f"},{url:"connect/confluence/includeDiagram.html",revision:"c03c89622d22227313645900af4e3c3d"},{url:"connect/confluence/macro-editor.js",revision:"e273a48b8e81faac4530bf1a68d75aa0"},{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:"ff83fca1aa90cbcd86e8544936b48e96"},{url:"resources/dia_am.txt",revision:"24cd769bb141597bfa68abdc5a9366a3"},{url:"resources/dia_ar.txt",revision:"231acb7e52ddb45418e16ce655c37048"},{url:"resources/dia_bg.txt",revision:"73288c325bb27c8e91714b7b57f258a0"},{url:"resources/dia_bn.txt",revision:"ecc1c6031c10da1db596db459cdc502d"},{url:"resources/dia_bs.txt",revision:"a7cebafe1e526ff085b768d4d097be2a"},{url:"resources/dia_ca.txt",revision:"ed2bfa1a43b6a4fc78706eeba092d929"},{url:"resources/dia_cs.txt",revision:"2435ce3c60106d20b850ee8a7c79ea62"},{url:"resources/dia_da.txt",revision:"0e8395f8638797000e38ebe7c592e5d0"},{url:"resources/dia_de.txt",revision:"603fe493c912a3da15f736b5571a3ba7"},{url:"resources/dia_el.txt",revision:"9044d9496aa0f948da7240c92890faad"},{url:"resources/dia_eo.txt",revision:"898c8739325bbb7c99f2c6884929eb9b"},{url:"resources/dia_es.txt",revision:"e66dc83bab3b5d0d88c40cbe0fbee87f"},{url:"resources/dia_et.txt",revision:"7d2ae4c63984e15db7561579db88b695"},{url:"resources/dia_eu.txt",revision:"0d752e85724ae2bdbf1f41b0d7ee51f0"},{url:"resources/dia_fa.txt",revision:"17760003ea1a2738c8aa01afcaa7ceef"},{url:"resources/dia_fi.txt",revision:"4e3c02221e758553aa8cdbd9a16517d5"},{url:"resources/dia_fil.txt",revision:"a54ec3b42a859cd51343cdd066a519de"},{url:"resources/dia_fr.txt",revision:"8ecf1221c64462b7e891efa6078ddb00"},{url:"resources/dia_gl.txt",revision:"e10e6ba5bf2a114db2aa4c887e93884c"},{url:"resources/dia_gu.txt",revision:"46fea63caf7e16041d165c50f2531bbc"},{url:"resources/dia_he.txt",revision:"cf281bf6cb491c7892cafd9ea6eb84ef"},{url:"resources/dia_hi.txt",revision:"c0ea2bc6641415cf8152353366fbb752"},{url:"resources/dia_hr.txt",revision:"55766cd030d5f23a72ed92104b5391ab"},{url:"resources/dia_hu.txt",revision:"c71afd461efe87b2980f5b50b4b76864"},{url:"resources/dia_id.txt",revision:"77a22b3dc4670b8fe9a270f2d5370127"},{url:"resources/dia_it.txt",revision:"0def42c56a72520d29a23b91445e4eb5"},{url:"resources/dia_ja.txt",revision:"4d8ffedbee3ffda36458d86ecbd30273"},{url:"resources/dia_kn.txt",revision:"12456d57ba319350f43bf561a229cfa3"},{url:"resources/dia_ko.txt",revision:"10892b82babfae917fcba32445ec792f"},{url:"resources/dia_lt.txt",revision:"e2118573d7ad053d63f8679825f5a5bd"},{url:"resources/dia_lv.txt",revision:"bf288e244627f0a2528213032a0468fa"},{url:"resources/dia_ml.txt",revision:"8708a936b5b8eec6ea97ace11fb9d36e"},{url:"resources/dia_mr.txt",revision:"c8bb277897db6ba7ec879a1af2cfef51"},{url:"resources/dia_ms.txt",revision:"01208ab6f2c12236ba50ff0b376e1a19"},{url:"resources/dia_my.txt",revision:"ff83fca1aa90cbcd86e8544936b48e96"},{url:"resources/dia_nl.txt",revision:"47d494ac943f682b07b19f22a5ba165d"},{url:"resources/dia_no.txt",revision:"d2fef71c62497662a3052906e6d09aba"},{url:"resources/dia_pl.txt",revision:"5f9e5ec038c5cc98764ec3321d4783f7"},{url:"resources/dia_pt-br.txt",revision:"ecad97c12934b9c8e6eecf28840bbacc"},{url:"resources/dia_pt.txt",revision:"84597a107f976e0477f0631fa83f5666"},{url:"resources/dia_ro.txt",revision:"0c21c49a58f3e5142937e0607929ce55"},{url:"resources/dia_ru.txt",revision:"968be5e8d4b7b6824bffa8c5a67b645b"},{url:"resources/dia_si.txt",revision:"ff83fca1aa90cbcd86e8544936b48e96"},{url:"resources/dia_sk.txt",revision:"2375e77b539bc921a0a69a5b38259006"},{url:"resources/dia_sl.txt",revision:"c864c691d353f504e708367e276059c9"},{url:"resources/dia_sr.txt",revision:"17ca74a211ef6ffd71e2ce8ce311ec7a"},{url:"resources/dia_sv.txt",revision:"2ef9be94b6261808c604579a98d04c2b"},{url:"resources/dia_sw.txt",revision:"126c0efd5a746c7110260a5fd6de24dd"},{url:"resources/dia_ta.txt",revision:"84bc7629acef64013a017aae209510ef"},{url:"resources/dia_te.txt",revision:"f0753059f035114e45d996d0a74b8c10"},{url:"resources/dia_th.txt",revision:"9629eaa7955e8f120c53e4d96156f0f2"},{url:"resources/dia_tr.txt",revision:"e2570c3f082331afd3a78de6bf1eb643"},{url:"resources/dia_uk.txt",revision:"f73eb7d031c51bdae3003d0a79911f4c"},{url:"resources/dia_vi.txt",revision:"f469b3203716eb67c08861ca3401c6be"},{url:"resources/dia_zh-tw.txt",revision:"9bb5681d90e71d95007fc16f2570f118"},{url:"resources/dia_zh.txt",revision:"7bb20aaa598f95668561a38173364328"},{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/default-user.jpg",revision:"2c399696a87c8921f12d2f9e1990cc6e"},{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:"f8c045b2d7b1c719fda64edab04c415c"},{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 4da3b187..2795cb9b 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/f4f3a2f2f5868773aad3af4b74009d0b/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\": \"08c66aa5ac5e72061f1a2f6fea4eaa56\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"8f6625690fa713232aedd263ba09d115\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"8ada746d21157d3d47e6ad3abbbcc3ab\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"966d6d7fd2b6a3ddf7098a12982e31f7\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"28ab148081b0ccd22ad2db634d538b6b\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"00339c600732790e04874fb33825899c\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"3179f617dd02efd2cefeb8c06f965880\"\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\": \"505e8280346666f7ee801bc59521fa67\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"d61121373d37251911199c6fb5e32db9\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"a2b0e7267a08a838f3cc404eba831ec0\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"2ce6e99d95113e9ca6b24343cea202e0\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"6e9412c359a21b86dc7c5128bf6208d4\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"01caa325f3ad3f6565e0b4228907fb63\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"4e0775a6c156a803e777870623ac7c3e\"\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\": \"ff6d6e41b861a30d0b39ac80bd34afa7\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"c0c8dc057fd346abf2993d2c7b09adf5\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"3d8c436c566db645fb1e6e6ba9f69bbc\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"38f1df3ecc4d78290493f47e62202138\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"887d3ac605a7bb297067537e7c1f5686\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"8679465f38382a2d3811ba5b6fbb0d5d\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c7b38b3af4eb7a58ab6dc4791216530e\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"8cd74a2fb60bf2e3e86026d66107cf11\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"8b670f4b6ccde55358851da705ae884f\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"c03c89622d22227313645900af4e3c3d\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"e273a48b8e81faac4530bf1a68d75aa0\"\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\": \"b383eb72a1a9237af76c73742c175d7b\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"e55067ae4d55857d3070f396ede3763a\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"dc10e48a9af84289ca4f184d44ad5bca\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"fc89630a0eb923047517cd94f7a214ba\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"66f3d38b47e70fde02749a6e14916b0b\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"f540f69f3cc75675b5045d34bae33991\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"d78617c2e9e999eb75ff70c155dfc15a\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"9922d6c8edb082b57b54361de5ef367a\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"d0cf005e4b117c4bb8736b34257fa53f\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"c9db127ff9921fd13bfaf3a1c4481a19\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"bde5f6b632a7fb3a5cdc8bcc3c8a21de\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"4e4ea2bb8617e6844cb6c381edc07136\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"7b377b96724bb48fd88087ee78fab6dd\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"f761f425860c66c0b95e9dee38af544b\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"877f76f596cefd9a2579be44ff123e46\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"f527c1d3f3053544ce9ce7e8a4bdb25f\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"f12cff9b660dc51b44e7844c1fb9ff8f\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"2356557138b9aa9c58b17c3f2c3713ba\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"3de1d090961ce832eef5ca054b18a9bf\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"6f89c6614d0e52e34d13c2bbb570a71d\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"f325d0bc7ce01bfe2d1a5342848a6463\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"55a669d7455bb036de5814ea1ac56737\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"437d7b2e7b6dea531305d6694242f3a4\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"b7ce2dfccd64f4ef1bbf08146d6c7e54\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"5358c536ef8667aca0526dc6e1ae2903\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"1ec7bae1342609fa287b4d8999f7fa8d\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"ce1daa6eb8a2252f5f28306e2c4c7a58\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"141b274dd11e7780d4045c1fa1cad8fa\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"21633a3d2a7126cd54176cb217c626ea\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"1045fd33a5abb795e9bd69e47d5030ca\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"bac0df086b9f5b81014325c8b90b17aa\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"979679783b20b8320dcb27f226713e64\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"58db4d45d0229ed787828efd2b421f73\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"230aaef82f89671e5e2a38dda30e3dd6\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"c48e8fe6d32bedf9983da01aabeb6adf\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"b383eb72a1a9237af76c73742c175d7b\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"139a8d6c5a09df090746dd3c7feac125\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"a7c2f933cfcd3d920a577c94c5d78630\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"b82d913f6fcbb933c012448230a13de1\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"f349ee2484358fda66d76246ceee3171\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"29fd615b2c5e638911ffee5c6157074b\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"280076b30ec48f27f529c747040e9042\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"3953375ca885848789c46c352d450746\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"b383eb72a1a9237af76c73742c175d7b\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"251cdfff7b7e0643f310c2675cd6a590\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"2f37c20dc4ab20a4534b809ece82a42d\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"0bff657d99483eb38765b1055d42adb1\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"6620ba44472e9aebcf8d1fb41e820d76\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"749592107e620923cb2307b2b80fcbb1\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"44175b7066417421d6db7fed1bbc5fe0\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"e4bf4fb58853a29110a9579eddfe5881\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"687cfcd42587633e303b2e1f5eb1d2c4\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"415f3ff69ed302728f47625c749fdf67\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"9ff1fd58a63812a716a8f677002e9f59\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"04e395181dbfa61f20805b25514765fd\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"29e9bd7cec3f06c6df629406a2327005\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"7cb113801ebccb23ae4736b9cb27e289\"\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/default-user.jpg\",\n \"revision\": \"2c399696a87c8921f12d2f9e1990cc6e\"\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\": \"f8c045b2d7b1c719fda64edab04c415c\"\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,mCACK,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/b3ec8d33df1c692cc0d7d325e1563164/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\": \"b4904bc5178c10f3106747d6081b485d\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"8f6625690fa713232aedd263ba09d115\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"8ada746d21157d3d47e6ad3abbbcc3ab\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"966d6d7fd2b6a3ddf7098a12982e31f7\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"28ab148081b0ccd22ad2db634d538b6b\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"00339c600732790e04874fb33825899c\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"3179f617dd02efd2cefeb8c06f965880\"\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\": \"505e8280346666f7ee801bc59521fa67\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"696f1c80bdb48cc084bb22e1c5a81160\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"a2b0e7267a08a838f3cc404eba831ec0\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"2ce6e99d95113e9ca6b24343cea202e0\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"6e9412c359a21b86dc7c5128bf6208d4\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"01caa325f3ad3f6565e0b4228907fb63\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"4e0775a6c156a803e777870623ac7c3e\"\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\": \"ff6d6e41b861a30d0b39ac80bd34afa7\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"c0c8dc057fd346abf2993d2c7b09adf5\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"3d8c436c566db645fb1e6e6ba9f69bbc\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"38f1df3ecc4d78290493f47e62202138\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"887d3ac605a7bb297067537e7c1f5686\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"ebc84426a9980f16d2206e9e8a45cdd9\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c7b38b3af4eb7a58ab6dc4791216530e\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"8cd74a2fb60bf2e3e86026d66107cf11\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"8b670f4b6ccde55358851da705ae884f\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"c03c89622d22227313645900af4e3c3d\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"e273a48b8e81faac4530bf1a68d75aa0\"\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\": \"ff83fca1aa90cbcd86e8544936b48e96\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"24cd769bb141597bfa68abdc5a9366a3\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"231acb7e52ddb45418e16ce655c37048\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"73288c325bb27c8e91714b7b57f258a0\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"ecc1c6031c10da1db596db459cdc502d\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"a7cebafe1e526ff085b768d4d097be2a\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"ed2bfa1a43b6a4fc78706eeba092d929\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"2435ce3c60106d20b850ee8a7c79ea62\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"0e8395f8638797000e38ebe7c592e5d0\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"603fe493c912a3da15f736b5571a3ba7\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"9044d9496aa0f948da7240c92890faad\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"898c8739325bbb7c99f2c6884929eb9b\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"e66dc83bab3b5d0d88c40cbe0fbee87f\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"7d2ae4c63984e15db7561579db88b695\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"0d752e85724ae2bdbf1f41b0d7ee51f0\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"17760003ea1a2738c8aa01afcaa7ceef\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"4e3c02221e758553aa8cdbd9a16517d5\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"a54ec3b42a859cd51343cdd066a519de\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"8ecf1221c64462b7e891efa6078ddb00\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"e10e6ba5bf2a114db2aa4c887e93884c\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"46fea63caf7e16041d165c50f2531bbc\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"cf281bf6cb491c7892cafd9ea6eb84ef\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"c0ea2bc6641415cf8152353366fbb752\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"55766cd030d5f23a72ed92104b5391ab\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"c71afd461efe87b2980f5b50b4b76864\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"77a22b3dc4670b8fe9a270f2d5370127\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"0def42c56a72520d29a23b91445e4eb5\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"4d8ffedbee3ffda36458d86ecbd30273\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"12456d57ba319350f43bf561a229cfa3\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"10892b82babfae917fcba32445ec792f\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"e2118573d7ad053d63f8679825f5a5bd\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"bf288e244627f0a2528213032a0468fa\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"8708a936b5b8eec6ea97ace11fb9d36e\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"c8bb277897db6ba7ec879a1af2cfef51\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"01208ab6f2c12236ba50ff0b376e1a19\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"ff83fca1aa90cbcd86e8544936b48e96\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"47d494ac943f682b07b19f22a5ba165d\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"d2fef71c62497662a3052906e6d09aba\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"5f9e5ec038c5cc98764ec3321d4783f7\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"ecad97c12934b9c8e6eecf28840bbacc\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"84597a107f976e0477f0631fa83f5666\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"0c21c49a58f3e5142937e0607929ce55\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"968be5e8d4b7b6824bffa8c5a67b645b\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"ff83fca1aa90cbcd86e8544936b48e96\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"2375e77b539bc921a0a69a5b38259006\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"c864c691d353f504e708367e276059c9\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"17ca74a211ef6ffd71e2ce8ce311ec7a\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"2ef9be94b6261808c604579a98d04c2b\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"126c0efd5a746c7110260a5fd6de24dd\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"84bc7629acef64013a017aae209510ef\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"f0753059f035114e45d996d0a74b8c10\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"9629eaa7955e8f120c53e4d96156f0f2\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"e2570c3f082331afd3a78de6bf1eb643\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"f73eb7d031c51bdae3003d0a79911f4c\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"f469b3203716eb67c08861ca3401c6be\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"9bb5681d90e71d95007fc16f2570f118\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"7bb20aaa598f95668561a38173364328\"\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/default-user.jpg\",\n \"revision\": \"2c399696a87c8921f12d2f9e1990cc6e\"\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\": \"f8c045b2d7b1c719fda64edab04c415c\"\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,mCACK,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