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:
authorGaudenz Alder <gaudenz@jgraph.com>2017-01-26 12:33:25 +0300
committerGaudenz Alder <gaudenz@jgraph.com>2017-01-26 12:33:25 +0300
commitc83a127a606df093ee2120a6c75bd2f9750f9f4c (patch)
tree866b99e9d909d624db6a1170ec28c25e6ec93e48
parent8a88bd116dc2ff28ef605f4b1437ef280316818c (diff)
6.0.2.13 releasev6.0.2.13
Former-commit-id: 3b85e4bc6fc7ab646f0be36fa14672c70a85ebce
-rw-r--r--ChangeLog6
-rw-r--r--VERSION2
-rw-r--r--etc/mxgraph/mxClient.js46
-rw-r--r--src/com/mxgraph/online/SaveServlet.java42
-rw-r--r--war/WEB-INF/appengine-generated/datastore-indexes-auto.xml4
-rw-r--r--war/WEB-INF/appengine-generated/local_db.binbin732 -> 0 bytes
-rw-r--r--war/cache.manifest2
-rw-r--r--war/js/app.min.js295
-rw-r--r--war/js/atlas-viewer.min.js343
-rw-r--r--war/js/atlas.min.js295
-rw-r--r--war/js/diagramly/EditorUi.js86
-rw-r--r--war/js/embed-static.min.js51
-rw-r--r--war/js/mxgraph/Dialogs.js2
-rw-r--r--war/js/mxgraph/Format.js5
-rw-r--r--war/js/mxgraph/Graph.js2
-rw-r--r--war/js/reader.min.js51
-rw-r--r--war/js/viewer.min.js343
-rw-r--r--war/resources/dia.txt27
-rw-r--r--war/resources/dia_am.txt27
-rw-r--r--war/resources/dia_ar.txt27
-rw-r--r--war/resources/dia_bg.txt27
-rw-r--r--war/resources/dia_bn.txt27
-rw-r--r--war/resources/dia_bs.txt25
-rw-r--r--war/resources/dia_ca.txt27
-rw-r--r--war/resources/dia_cs.txt27
-rw-r--r--war/resources/dia_da.txt27
-rw-r--r--war/resources/dia_de.txt27
-rw-r--r--war/resources/dia_el.txt27
-rw-r--r--war/resources/dia_es.txt53
-rw-r--r--war/resources/dia_et.txt27
-rw-r--r--war/resources/dia_fa.txt27
-rw-r--r--war/resources/dia_fi.txt25
-rw-r--r--war/resources/dia_fil.txt27
-rw-r--r--war/resources/dia_fr.txt25
-rw-r--r--war/resources/dia_gu.txt27
-rw-r--r--war/resources/dia_he.txt27
-rw-r--r--war/resources/dia_hi.txt27
-rw-r--r--war/resources/dia_hr.txt27
-rw-r--r--war/resources/dia_hu.txt27
-rw-r--r--war/resources/dia_i18n.txt25
-rw-r--r--war/resources/dia_id.txt27
-rw-r--r--war/resources/dia_it.txt27
-rw-r--r--war/resources/dia_ja.txt27
-rw-r--r--war/resources/dia_kn.txt27
-rw-r--r--war/resources/dia_ko.txt27
-rw-r--r--war/resources/dia_lt.txt27
-rw-r--r--war/resources/dia_lv.txt27
-rw-r--r--war/resources/dia_ml.txt27
-rw-r--r--war/resources/dia_mr.txt27
-rw-r--r--war/resources/dia_ms.txt27
-rw-r--r--war/resources/dia_nl.txt27
-rw-r--r--war/resources/dia_no.txt27
-rw-r--r--war/resources/dia_pl.txt27
-rw-r--r--war/resources/dia_pt-br.txt27
-rw-r--r--war/resources/dia_pt.txt27
-rw-r--r--war/resources/dia_ro.txt27
-rw-r--r--war/resources/dia_ru.txt25
-rw-r--r--war/resources/dia_sk.txt27
-rw-r--r--war/resources/dia_sl.txt27
-rw-r--r--war/resources/dia_sr.txt25
-rw-r--r--war/resources/dia_sv.txt27
-rw-r--r--war/resources/dia_sw.txt27
-rw-r--r--war/resources/dia_ta.txt27
-rw-r--r--war/resources/dia_te.txt27
-rw-r--r--war/resources/dia_th.txt27
-rw-r--r--war/resources/dia_tr.txt27
-rw-r--r--war/resources/dia_uk.txt27
-rw-r--r--war/resources/dia_vi.txt27
-rw-r--r--war/resources/dia_zh-tw.txt27
-rw-r--r--war/resources/dia_zh.txt27
-rw-r--r--war/templates/softwaredesign/database.xml2
71 files changed, 2195 insertions, 827 deletions
diff --git a/ChangeLog b/ChangeLog
index 5fdb7320..f5dfb89b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+26-JAN-2017: 6.0.2.13
+
+- Updates Arrange tab after remove from group
+- Faster image and SVG export
+- Uses mxGraph 3.7.0.1 beta 1
+
18-JAN-2017: 6.0.2.12
- Adds width, height in advanced export dialog
diff --git a/VERSION b/VERSION
index 0d90ccc0..d3a07c60 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-6.0.2.12 \ No newline at end of file
+6.0.2.13 \ No newline at end of file
diff --git a/etc/mxgraph/mxClient.js b/etc/mxgraph/mxClient.js
index edbab18c..635e435a 100644
--- a/etc/mxgraph/mxClient.js
+++ b/etc/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"3.7.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+var mxClient={VERSION:"3.7.0.1",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@@ -41,25 +41,25 @@ null;if("object"==typeof b)for(var d=mxUtils.indexOf(b,a);0<=d;)b.splice(d,1),c=
b&&c.push(d),d=d.nextSibling;return c},importNode:function(a,b,c){if(mxClient.IS_IE&&(null==document.documentMode||10>document.documentMode))switch(b.nodeType){case 1:var d=a.createElement(b.nodeName);if(b.attributes&&0<b.attributes.length){for(var e=0;e<b.attributes.length;e++)d.setAttribute(b.attributes[e].nodeName,b.getAttribute(b.attributes[e].nodeName));if(c&&b.childNodes&&0<b.childNodes.length)for(e=0;e<b.childNodes.length;e++)d.appendChild(mxUtils.importNode(a,b.childNodes[e],c))}return d;
case 3:case 4:case 8:return a.createTextNode(b.value)}else return a.importNode(b,c)},createXmlDocument:function(){var a=null;document.implementation&&document.implementation.createDocument?a=document.implementation.createDocument("","",null):window.ActiveXObject&&(a=new ActiveXObject("Microsoft.XMLDOM"));return a},parseXml:function(){return window.DOMParser?function(a){return(new DOMParser).parseFromString(a,"text/xml")}:function(a){var b=mxUtils.createXmlDocument();b.async=!1;b.validateOnParse=!1;
b.resolveExternals=!1;b.loadXML(a);return b}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:function(){}}(),getPrettyXml:function(a,b,c){var d=[];if(null!=a)if(b=b||" ",c=c||"",a.nodeType==mxConstants.NODETYPE_TEXT)d.push(a.value);else{d.push(c+"\x3c"+a.nodeName);var e=a.attributes;if(null!=e)for(var f=0;f<e.length;f++){var g=mxUtils.htmlEntities(e[f].value);d.push(" "+e[f].nodeName+
-'\x3d"'+g+'"')}e=a.firstChild;if(null!=e){for(d.push("\x3e\n");null!=e;)d.push(mxUtils.getPrettyXml(e,b,c+b)),e=e.nextSibling;d.push(c+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=(a||"").replace(/&/g,
-"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==b||b)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return c=c.replace(/\n/g,b||"\x26#xa;")},extractTextWithWhitespace:function(a){for(var b=
-!1,c=[],d=0;a[d];d++){var e=a[d];if(3===e.nodeType||4===e.nodeType){if(11==document.documentMode&&d==a.length-1&&0==e.nodeValue.length)break;c.push(e.nodeValue+(null==e.nextSibling||3!=e.nextSibling.nodeType?"\n":""));b=!0}else 8!==e.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==e.nodeName&&0==e.innerHTML.length||!b&&"BR"==e.nodeName||"DIV"==e.nodeName&&"\x3cbr\x3e"==e.innerHTML?c.push("\n"):c.push(mxUtils.extractTextWithWhitespace(e.childNodes)),b=!1)}return c.join("")},replaceTrailingNewlines:function(a,
-b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),
-getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("\x3c"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('\x3d"'),b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/\x3e"):(b.push("\x3e"),b.push(a.innerHTML),b.push("\x3c/"+a.nodeName+"\x3e"));return b.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):
-""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});
-return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=
-document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},fit:function(a){var b=parseInt(a.offsetLeft),c=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),e=d.x,d=d.y,f=document.body,g=document.documentElement,k=e+(f.clientWidth||g.clientWidth);b+c>k&&(a.style.left=Math.max(e,k-c)+"px");b=parseInt(a.offsetTop);
-c=parseInt(a.offsetHeight);f=d+Math.max(f.clientHeight||0,g.clientHeight);b+c>f&&(a.style.top=Math.max(d,f-c)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&
-b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==
-a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)if(e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e)))d[e]=!c&&"object"==typeof a[e]?mxUtils.clone(a[e]):a[e]}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(a[c]==b[c]||null!=a[c]&&!a[c].equals(b[c]))return!1;
-return!0},equalEntries:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){var c=0,d;for(d in b)c++;for(d in a)if(c--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(b[d]))&&a[d]!=b[d])return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=
-b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" \x3d [null]\n";else if("function"==typeof a[c])b+=c+" \x3d\x3e [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" \x3d\x3e ["+d+"]\n");else b+=c+" \x3d "+a[c]+"\n"}catch(e){b+=c+"\x3d"+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,
-k,l){k-=a;l-=b;if(0===c||0===d)return q;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(e*Math.PI/180),q=Math.sin(e*Math.PI/180);e=p*m+q*n;var m=-1*q*m+p*n,n=e*e,s=m*m,r=c*c,t=d*d,y=n/r+s/t;1<y?(c*=Math.sqrt(y),d*=Math.sqrt(y),f=0):(y=1,f===g&&(y=-1),f=y*Math.sqrt((r*t-r*s-t*n)/(r*s+t*n)));n=f*c*m/d;s=-1*f*d*e/c;k=p*n-q*s+k/2;l=q*n+p*s+l/2;r=Math.atan2((m-s)/d,(e-n)/c)-Math.atan2(0,1);f=0<=r?r:2*Math.PI+r;r=Math.atan2((-m-s)/d,(-e-n)/c)-Math.atan2((m-s)/d,(e-n)/c);e=0<=r?r:2*Math.PI+r;0==
-g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);n=p*c;p*=d;c*=q;d*=q;for(var x=Math.cos(f),z=Math.sin(f),s=-m*(n*z+d*x),r=-m*(c*z-p*x),y=t=0,q=[],v=0;v<g;++v){f+=e;var x=Math.cos(f),z=Math.sin(f),t=n*x-d*z+k,y=c*x+p*z+l,u=-m*(n*z+d*x),x=-m*(c*z-p*x),z=6*v;q[z]=Number(s+a);q[z+1]=Number(r+b);q[z+2]=Number(t-u+a);q[z+3]=Number(y-x+b);q[z+4]=Number(t+a);q[z+5]=Number(y+b);s=t+u;r=y+x}return q},getBoundingBox:function(a,
-b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,
-g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<
-c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=
-mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},
+'\x3d"'+g+'"')}e=a.firstChild;if(null!=e){for(d.push("\x3e\n");null!=e;)d.push(mxUtils.getPrettyXml(e,b,c+b)),e=e.nextSibling;d.push(c+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=String(a||"");
+a=a.replace(/&/g,"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==b||b)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return c=c.replace(/\n/g,b||
+"\x26#xa;")},extractTextWithWhitespace:function(a){for(var b=!1,c=[],d=0;a[d];d++){var e=a[d];if(3===e.nodeType||4===e.nodeType){if(11==document.documentMode&&d==a.length-1&&0==e.nodeValue.length)break;c.push(e.nodeValue+(null==e.nextSibling||3!=e.nextSibling.nodeType?"\n":""));b=!0}else 8!==e.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==e.nodeName&&0==e.innerHTML.length||!b&&"BR"==e.nodeName||"DIV"==e.nodeName&&"\x3cbr\x3e"==e.innerHTML?c.push("\n"):c.push(mxUtils.extractTextWithWhitespace(e.childNodes)),
+b=!1)}return c.join("")},replaceTrailingNewlines:function(a,b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=
+a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("\x3c"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('\x3d"'),b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/\x3e"):(b.push("\x3e"),b.push(a.innerHTML),b.push("\x3c/"+a.nodeName+"\x3e"));return b.join("")}return""}:
+function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");
+mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,
+b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},fit:function(a){var b=parseInt(a.offsetLeft),c=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),e=d.x,d=d.y,f=document.body,g=document.documentElement,k=e+(f.clientWidth||g.clientWidth);
+b+c>k&&(a.style.left=Math.max(e,k-c)+"px");b=parseInt(a.offsetTop);c=parseInt(a.offsetHeight);f=d+Math.max(f.clientHeight||0,g.clientHeight);b+c>f&&(a.style.top=Math.max(d,f-c)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,
+function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||
+0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)if(e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e)))d[e]=!c&&"object"==typeof a[e]?mxUtils.clone(a[e]):a[e]}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=
+a&&null!=b)for(var c=0;c<a.length;c++)if(a[c]==b[c]||null!=a[c]&&!a[c].equals(b[c]))return!1;return!0},equalEntries:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){var c=0,d;for(d in b)c++;for(d in a)if(c--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(b[d]))&&a[d]!=b[d])return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==
+typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" \x3d [null]\n";else if("function"==typeof a[c])b+=c+" \x3d\x3e [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" \x3d\x3e ["+d+"]\n");else b+=c+" \x3d "+a[c]+"\n"}catch(e){b+=c+"\x3d"+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*
+a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,k,l){k-=a;l-=b;if(0===c||0===d)return q;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(e*Math.PI/180),q=Math.sin(e*Math.PI/180);e=p*m+q*n;var m=-1*q*m+p*n,n=e*e,s=m*m,r=c*c,t=d*d,y=n/r+s/t;1<y?(c*=Math.sqrt(y),d*=Math.sqrt(y),f=0):(y=1,f===g&&(y=-1),f=y*Math.sqrt((r*t-r*s-t*n)/(r*s+t*n)));n=f*c*m/d;s=-1*f*d*e/c;k=p*n-q*s+k/2;l=q*n+p*s+l/2;r=Math.atan2((m-s)/d,(e-n)/c)-Math.atan2(0,1);f=0<=r?r:2*Math.PI+r;r=Math.atan2((-m-s)/d,(-e-n)/c)-Math.atan2((m-
+s)/d,(e-n)/c);e=0<=r?r:2*Math.PI+r;0==g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);n=p*c;p*=d;c*=q;d*=q;for(var x=Math.cos(f),z=Math.sin(f),s=-m*(n*z+d*x),r=-m*(c*z-p*x),y=t=0,q=[],v=0;v<g;++v){f+=e;var x=Math.cos(f),z=Math.sin(f),t=n*x-d*z+k,y=c*x+p*z+l,u=-m*(n*z+d*x),x=-m*(c*z-p*x),z=6*v;q[z]=Number(s+a);q[z+1]=Number(r+b);q[z+2]=Number(t-u+a);q[z+3]=Number(y-x+b);q[z+4]=Number(t+a);q[z+5]=Number(y+b);s=
+t+u;r=y+x}return q},getBoundingBox:function(a,b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,
+b.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,
+0));a=0;45<c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;
+case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},
reversePortConstraints:function(a){var b=0,b=(a&mxConstants.DIRECTION_MASK_WEST)<<3,b=b|(a&mxConstants.DIRECTION_MASK_NORTH)<<1,b=b|(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|=(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,k.x,k.y,b,c);if(null==f||e<f)f=e,d=g-1;e=k}return d},rectangleIntersectsSegment:function(a,
b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,k=a.y,l=b.x,m=b.y,e=e+l,f=f+m,c=c+
g,d=d+k;return(e<l||e>g)&&(f<m||f>k)&&(c<g||c>l)&&(d<k||d>m)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,m=a.height,n=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<n&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+n/2,m=n):(g=a.x+n/2,l=n));l=Math.max(e,l*d);m=Math.max(e,m*d);0<f&&(l=Math.min(l,f),m=Math.min(m,f));d=new mxRectangle(g-l/2,k-m/2,l,m);g=mxUtils.toRadians(mxUtils.getValue(a.style,
@@ -1452,8 +1452,8 @@ g=this.getAlignmentTolerance();if(0<g){var k=this.graph.view.getState(b);if(null
mxConnectionHandler.prototype.createEdge=function(a,b,c,d){var e=null;null!=this.factoryMethod&&(e=this.factoryMethod(b,c,d));null==e&&(e=new mxCell(a||""),e.setEdge(!0),e.setStyle(d),a=new mxGeometry,a.relative=!0,e.setGeometry(a));return e};
mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.marker&&(this.marker.destroy(),this.marker=null);null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null);null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),
this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null)};
-function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,c){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)&&this.reset()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);mxConstraintHandler.prototype.graph=null;
-mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
+function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,c){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)?this.reset():this.redraw()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);
+mxConstraintHandler.prototype.graph=null;mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null);this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null};mxConstraintHandler.prototype.getTolerance=function(a){return this.graph.getTolerance()};
mxConstraintHandler.prototype.getImageForConstraint=function(a,b,c){return this.pointImage};mxConstraintHandler.prototype.isEventIgnored=function(a,b){return!1};mxConstraintHandler.prototype.isStateIgnored=function(a,b){return!1};mxConstraintHandler.prototype.destroyIcons=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusPoints=this.focusIcons=null}};
mxConstraintHandler.prototype.destroyFocusHighlight=function(){null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)};mxConstraintHandler.prototype.isKeepFocusEvent=function(a){return mxEvent.isShiftDown(a.getEvent())};
@@ -1462,6 +1462,8 @@ mxConstraintHandler.prototype.update=function(a,b,c,d){if(this.isEnabled()&&!thi
d));if(!this.isKeepFocusEvent(a)&&(null==this.currentFocusArea||null==this.currentFocus||null!=k||!this.graph.getModel().isVertex(this.currentFocus.cell)||!mxUtils.intersects(this.currentFocusArea,e))&&k!=this.currentFocus)this.currentFocus=this.currentFocusArea=null,this.setFocus(a,k,b);a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==k||this.currentFocus==k))for(var g=e.getCenterX(),l=e.getCenterY(),m=0;m<this.focusIcons.length;m++){var n=
g-this.focusIcons[m].bounds.getCenterX(),p=l-this.focusIcons[m].bounds.getCenterY(),n=n*n+p*p;if((this.intersects(this.focusIcons[m],e,b,c)||null!=d&&this.intersects(this.focusIcons[m],f,b,c))&&(null==a||n<a)){this.currentConstraint=this.constraints[m];this.currentPoint=this.focusPoints[m];a=n;n=this.focusIcons[m].bounds.clone();n.grow(mxConstants.HIGHLIGHT_SIZE);mxClient.IS_IE&&(n.grow(1),n.width-=1,n.height-=1);if(null==this.focusHighlight){p=this.createHighlightShape();p.dialect=this.graph.dialect==
mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;p.pointerEvents=!1;p.init(this.graph.getView().getOverlayPane());this.focusHighlight=p;var q=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:k});mxEvent.redirectMouseEvents(p.node,this.graph,q)}this.focusHighlight.bounds=n;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
+mxConstraintHandler.prototype.redraw=function(){if(null!=this.currentFocus&&null!=this.constraints&&null!=this.focusIcons){var a=this.graph.view.getState(this.currentFocus.cell);this.currentFocus=a;this.currentFocusArea=new mxRectangle(a.x,a.y,a.width,a.height);for(var b=0;b<this.constraints.length;b++){var c=this.graph.getConnectionPoint(a,this.constraints[b]),d=this.getImageForConstraint(a,this.constraints[b],c),d=new mxRectangle(Math.round(c.x-d.width/2),Math.round(c.y-d.height/2),d.width,d.height);
+this.focusIcons[b].bounds=d;this.focusIcons[b].redraw();this.currentFocusArea.add(this.focusIcons[b].bounds);this.focusPoints[b]=c}}};
mxConstraintHandler.prototype.setFocus=function(a,b,c){this.constraints=null!=b&&!this.isStateIgnored(b,c)&&this.graph.isCellConnectable(b.cell)?this.isEnabled()?this.graph.getAllConnectionConstraints(b,c)||[]:[]:null;if(null!=this.constraints){this.currentFocus=b;this.currentFocusArea=new mxRectangle(b.x,b.y,b.width,b.height);if(null!=this.focusIcons){for(c=0;c<this.focusIcons.length;c++)this.focusIcons[c].destroy();this.focusPoints=this.focusIcons=null}this.focusPoints=[];this.focusIcons=[];for(c=
0;c<this.constraints.length;c++){var d=this.graph.getConnectionPoint(b,this.constraints[c]),e=this.getImageForConstraint(b,this.constraints[c],d),f=e.src,e=new mxRectangle(Math.round(d.x-e.width/2),Math.round(d.y-e.height/2),e.width,e.height),f=new mxImageShape(e,f);f.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG;f.preserveImageAspect=!1;f.init(this.graph.getView().getDecoratorPane());(mxClient.IS_QUIRKS||8==document.documentMode)&&mxEvent.addListener(f.node,
"dragstart",function(a){mxEvent.consume(a);return!1});null!=f.node.previousSibling&&f.node.parentNode.insertBefore(f.node,f.node.parentNode.firstChild);e=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:b});f.redraw();mxEvent.redirectMouseEvents(f.node,this.graph,e);this.currentFocusArea.add(f.bounds);this.focusIcons.push(f);this.focusPoints.push(d)}this.currentFocusArea.grow(this.getTolerance(a))}else this.destroyIcons(),this.destroyFocusHighlight()};
diff --git a/src/com/mxgraph/online/SaveServlet.java b/src/com/mxgraph/online/SaveServlet.java
index 51fd4b89..a38de3df 100644
--- a/src/com/mxgraph/online/SaveServlet.java
+++ b/src/com/mxgraph/online/SaveServlet.java
@@ -30,8 +30,8 @@ public class SaveServlet extends HttpServlet
/**
*
*/
- private static final Logger log = Logger.getLogger(SaveServlet.class
- .getName());
+ private static final Logger log = Logger
+ .getLogger(SaveServlet.class.getName());
/**
* @see HttpServlet#HttpServlet()
@@ -70,8 +70,9 @@ public class SaveServlet extends HttpServlet
if (enc != null && enc.length() > 0)
{
// NOTE: Simulate is used on client-side so the value is double-encoded
- xml = Utils.inflate(mxBase64.decode(URLDecoder.decode(enc,
- Utils.CHARSET_FOR_URL_ENCODING).getBytes()));
+ xml = Utils.inflate(mxBase64.decode(URLDecoder
+ .decode(enc, Utils.CHARSET_FOR_URL_ENCODING)
+ .getBytes()));
}
else
{
@@ -81,28 +82,32 @@ public class SaveServlet extends HttpServlet
// Decoding is optional (no plain text values allowed here so %3C means encoded)
if (xml != null && xml.startsWith("%3C"))
{
- xml = URLDecoder
- .decode(xml, Utils.CHARSET_FOR_URL_ENCODING);
+ xml = URLDecoder.decode(xml,
+ Utils.CHARSET_FOR_URL_ENCODING);
}
String binary = request.getParameter("binary");
-
- if (binary != null && binary.equals("1") && xml != null && mime != null)
+
+ if (binary != null && binary.equals("1") && xml != null
+ && mime != null)
{
response.setStatus(HttpServletResponse.SC_OK);
-
+
if (filename != null)
{
response.setContentType("application/x-unknown");
- response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"; filename*=UTF-8''" + filename);
+ response.setHeader("Content-Disposition",
+ "attachment; filename=\"" + filename
+ + "\"; filename*=UTF-8''" + filename);
}
else if (mime != null)
{
response.setContentType(mime);
}
- response.getOutputStream().write(mxBase64.decodeFast(URLDecoder
- .decode(xml, Utils.CHARSET_FOR_URL_ENCODING)));
+ response.getOutputStream()
+ .write(mxBase64.decodeFast(URLDecoder.decode(xml,
+ Utils.CHARSET_FOR_URL_ENCODING)));
}
else if (mime != null && xml != null)
{
@@ -110,7 +115,7 @@ public class SaveServlet extends HttpServlet
{
data = xml.getBytes(Utils.CHARSET_FOR_URL_ENCODING);
}
-
+
String format = request.getParameter("format");
if (format == null)
@@ -134,18 +139,17 @@ public class SaveServlet extends HttpServlet
}
}
- if (filename != null
- && filename.length() > 0
- && !(format.equals("xml")
- && filename.toLowerCase().endsWith(".html") && filename
- .toLowerCase().endsWith(".svg"))
+ if (filename != null && filename.length() > 0
+ && !filename.toLowerCase().endsWith(".svg")
+ && !filename.toLowerCase().endsWith(".html")
+ && !filename.toLowerCase().endsWith(".png")
&& !filename.toLowerCase().endsWith("." + format))
{
filename += "." + format;
}
response.setStatus(HttpServletResponse.SC_OK);
-
+
if (filename != null)
{
response.setContentType(mime);
diff --git a/war/WEB-INF/appengine-generated/datastore-indexes-auto.xml b/war/WEB-INF/appengine-generated/datastore-indexes-auto.xml
deleted file mode 100644
index bf2da20e..00000000
--- a/war/WEB-INF/appengine-generated/datastore-indexes-auto.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<!-- Indices written at Tue, 20 Dec 2016 20:18:20 CET -->
-
-<datastore-indexes/>
-
diff --git a/war/WEB-INF/appengine-generated/local_db.bin b/war/WEB-INF/appengine-generated/local_db.bin
deleted file mode 100644
index 33d117c4..00000000
--- a/war/WEB-INF/appengine-generated/local_db.bin
+++ /dev/null
Binary files differ
diff --git a/war/cache.manifest b/war/cache.manifest
index 8baea8ed..b01f1708 100644
--- a/war/cache.manifest
+++ b/war/cache.manifest
@@ -1,7 +1,7 @@
CACHE MANIFEST
# THIS FILE WAS GENERATED. DO NOT MODIFY!
-# 01/18/2017 04:49 PM
+# 01/26/2017 10:26 AM
/app.html
/index.html?offline=1
diff --git a/war/js/app.min.js b/war/js/app.min.js
index b8dd4075..039f1f12 100644
--- a/war/js/app.min.js
+++ b/war/js/app.min.js
@@ -193,7 +193,7 @@ ru:"\u0420\u0443\u0441\u0441\u043a\u0438\u0439",sr:"\u0421\u0440\u043f\u0441\u04
if(null==window.mxLanguages){window.mxLanguages=[];for(var lang in mxLanguageMap)"en"!=lang&&window.mxLanguages.push(lang)}window.uiTheme=window.uiTheme||function(){var a=urlParams.ui;if(null==a&&"undefined"!==typeof JSON&&isLocalStorage)try{var c=localStorage.getItem(".drawio-config");null!=c&&(a=JSON.parse(c).ui||null)}catch(f){isLocalStorage=!1}return a}();function setCurrentXml(a,c){null!=window.parent&&null!=window.parent.openFile&&window.parent.openFile.setData(a,c)}
(function(){if("undefined"!==typeof JSON&&isLocalStorage)try{var a=localStorage.getItem(".drawio-config"),c=!0;null!=a&&(c=JSON.parse(a).showStartScreen);!1==c&&(urlParams.splash="0")}catch(f){}})();var ex=urlParams["export"];null!=ex&&("http://"!=ex.substring(0,7)&&"https://"!=ex.substring(0,8)&&(ex="http://"+ex),EXPORT_URL=ex);
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local)urlParams.analytics="0",urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0";if("1"==urlParams.offline||"1"==urlParams.local)urlParams.math="0";var host=window.location.host,searchString="draw.io",position=host.length-searchString.length,lastIndex=host.lastIndexOf(searchString,position);-1!==lastIndex&&(lastIndex===position&&"test.draw.io"!=host)&&(window.DRAWIO_LOG_URL="https://log.draw.io");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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"3.7.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"3.7.0.1",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@@ -236,25 +236,25 @@ null;if("object"==typeof c)for(var d=mxUtils.indexOf(c,a);0<=d;)c.splice(d,1),f=
c&&f.push(d),d=d.nextSibling;return f},importNode:function(a,c,f){if(mxClient.IS_IE&&(null==document.documentMode||10>document.documentMode))switch(c.nodeType){case 1:var d=a.createElement(c.nodeName);if(c.attributes&&0<c.attributes.length){for(var b=0;b<c.attributes.length;b++)d.setAttribute(c.attributes[b].nodeName,c.getAttribute(c.attributes[b].nodeName));if(f&&c.childNodes&&0<c.childNodes.length)for(b=0;b<c.childNodes.length;b++)d.appendChild(mxUtils.importNode(a,c.childNodes[b],f))}return d;
case 3:case 4:case 8:return a.createTextNode(c.value)}else return a.importNode(c,f)},createXmlDocument:function(){var a=null;document.implementation&&document.implementation.createDocument?a=document.implementation.createDocument("","",null):window.ActiveXObject&&(a=new ActiveXObject("Microsoft.XMLDOM"));return a},parseXml:function(){return window.DOMParser?function(a){return(new DOMParser).parseFromString(a,"text/xml")}:function(a){var c=mxUtils.createXmlDocument();c.async=!1;c.validateOnParse=!1;
c.resolveExternals=!1;c.loadXML(a);return c}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:function(){}}(),getPrettyXml:function(a,c,f){var d=[];if(null!=a)if(c=c||" ",f=f||"",a.nodeType==mxConstants.NODETYPE_TEXT)d.push(a.value);else{d.push(f+"\x3c"+a.nodeName);var b=a.attributes;if(null!=b)for(var e=0;e<b.length;e++){var g=mxUtils.htmlEntities(b[e].value);d.push(" "+b[e].nodeName+
-'\x3d"'+g+'"')}b=a.firstChild;if(null!=b){for(d.push("\x3e\n");null!=b;)d.push(mxUtils.getPrettyXml(b,c,f+c)),b=b.nextSibling;d.push(f+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,c){for(var f=c?a.previousSibling:a.nextSibling;null!=f&&f.nodeType==mxConstants.NODETYPE_TEXT;){var d=c?f.previousSibling:f.nextSibling,b=mxUtils.getTextContent(f);0==mxUtils.trim(b).length&&f.parentNode.removeChild(f);f=d}},htmlEntities:function(a,c){a=(a||"").replace(/&/g,
-"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==c||c)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,c){var f="";null!=window.XMLSerializer?f=(new XMLSerializer).serializeToString(a):null!=a.xml&&(f=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return f.replace(/\n/g,c||"\x26#xa;")},extractTextWithWhitespace:function(a){for(var c=
-!1,f=[],d=0;a[d];d++){var b=a[d];if(3===b.nodeType||4===b.nodeType){if(11==document.documentMode&&d==a.length-1&&0==b.nodeValue.length)break;f.push(b.nodeValue+(null==b.nextSibling||3!=b.nextSibling.nodeType?"\n":""));c=!0}else 8!==b.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==b.nodeName&&0==b.innerHTML.length||!c&&"BR"==b.nodeName||"DIV"==b.nodeName&&"\x3cbr\x3e"==b.innerHTML?f.push("\n"):f.push(mxUtils.extractTextWithWhitespace(b.childNodes)),c=!1)}return f.join("")},replaceTrailingNewlines:function(a,
-c){for(var f="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),f+=c;return a+f},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,c){void 0!==a.innerText?a.innerText=c:a[void 0===a.textContent?"text":"textContent"]=c},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),
-getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var c=[];c.push("\x3c"+a.nodeName);var f=a.attributes;if(null!=f)for(var d=0;d<f.length;d++){var b=f[d].value;null!=b&&0<b.length&&(c.push(" "),c.push(f[d].nodeName),c.push('\x3d"'),c.push(b),c.push('"'))}0==a.innerHTML.length?c.push("/\x3e"):(c.push("\x3e"),c.push(a.innerHTML),c.push("\x3c/"+a.nodeName+"\x3e"));return c.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):
-""}}(),write:function(a,c){var f=a.ownerDocument.createTextNode(c);null!=a&&a.appendChild(f);return f},writeln:function(a,c){var f=a.ownerDocument.createTextNode(c);null!=a&&(a.appendChild(f),a.appendChild(document.createElement("br")));return f},br:function(a,c){c=c||1;for(var f=null,d=0;d<c;d++)null!=a&&(f=a.ownerDocument.createElement("br"),a.appendChild(f));return f},button:function(a,c,f){f=null!=f?f:document;f=f.createElement("button");mxUtils.write(f,a);mxEvent.addListener(f,"click",function(a){c(a)});
-return f},para:function(a,c){var f=document.createElement("p");mxUtils.write(f,c);null!=a&&a.appendChild(f);return f},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,c,f,d,b){return mxUtils.link(a,c,function(){f.execute(d)},b)},linkInvoke:function(a,c,f,d,b,e){return mxUtils.link(a,c,function(){f[d](b)},e)},link:function(a,c,f,d){var b=
-document.createElement("span");b.style.color="blue";b.style.textDecoration="underline";b.style.cursor="pointer";null!=d&&(b.style.paddingLeft=d+"px");mxEvent.addListener(b,"click",f);mxUtils.write(b,c);null!=a&&a.appendChild(b);return b},fit:function(a){var c=parseInt(a.offsetLeft),f=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),b=d.x,d=d.y,e=document.body,g=document.documentElement,k=b+(e.clientWidth||g.clientWidth);c+f>k&&(a.style.left=Math.max(b,k-f)+"px");c=parseInt(a.offsetTop);
-f=parseInt(a.offsetHeight);e=d+Math.max(e.clientHeight||0,g.clientHeight);c+f>e&&(a.style.top=Math.max(d,e-f)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,c,f,d,b,e){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(c,f,b,e);return a},getAll:function(a,c,f){for(var d=a.length,b=[],e=0,g=function(){0==e&&null!=f&&f();e++},k=0;k<a.length;k++)(function(a,e){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(b[e]=a,d--,0==d&&
-c(b))},g)})(a[k],k);0==d&&c(b)},post:function(a,c,f,d){return(new mxXmlRequest(a,c)).send(f,d)},submit:function(a,c,f,d){return(new mxXmlRequest(a,c)).simulate(f,d)},loadInto:function(a,c,f){mxClient.IS_IE?c.onreadystatechange=function(){4==c.readyState&&f()}:c.addEventListener("load",f,!1);c.load(a)},getValue:function(a,c,f){a=null!=a?a[c]:null;null==a&&(a=f);return a},getNumber:function(a,c,f){a=null!=a?a[c]:null;null==a&&(a=f||0);return Number(a)},getColor:function(a,c,f){a=null!=a?a[c]:null;null==
-a?a=f:a==mxConstants.NONE&&(a=null);return a},clone:function(a,c,f){f=null!=f?f:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,b;for(b in a)if(b!=mxObjectIdentity.FIELD_NAME&&(null==c||0>mxUtils.indexOf(c,b)))d[b]=!f&&"object"==typeof a[b]?mxUtils.clone(a[b]):a[b]}return d},equalPoints:function(a,c){if(null==a&&null!=c||null!=a&&null==c||null!=a&&null!=c&&a.length!=c.length)return!1;if(null!=a&&null!=c)for(var f=0;f<a.length;f++)if(a[f]==c[f]||null!=a[f]&&!a[f].equals(c[f]))return!1;
-return!0},equalEntries:function(a,c){if(null==a&&null!=c||null!=a&&null==c||null!=a&&null!=c&&a.length!=c.length)return!1;if(null!=a&&null!=c){var f=0,d;for(d in c)f++;for(d in a)if(f--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(c[d]))&&a[d]!=c[d])return!1}return 0==f},removeDuplicates:function(a){for(var c=new mxDictionary,f=[],d=0;d<a.length;d++)c.get(a[d])||(f.push(a[d]),c.put(a[d],!0));return f},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,c){var f=function(){};f.prototype=
-c.prototype;a.prototype=new f;a.prototype.constructor=a},toString:function(a){var c="",f;for(f in a)try{if(null==a[f])c+=f+" \x3d [null]\n";else if("function"==typeof a[f])c+=f+" \x3d\x3e [Function]\n";else if("object"==typeof a[f])var d=mxUtils.getFunctionName(a[f].constructor),c=c+(f+" \x3d\x3e ["+d+"]\n");else c+=f+" \x3d "+a[f]+"\n"}catch(b){c+=f+"\x3d"+b.message}return c},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,c,f,d,b,e,g,
-k,l){k-=a;l-=c;if(0===f||0===d)return s;f=Math.abs(f);d=Math.abs(d);var n=-k/2,m=-l/2,p=Math.cos(b*Math.PI/180),s=Math.sin(b*Math.PI/180);b=p*n+s*m;var n=-1*s*n+p*m,m=b*b,t=n*n,q=f*f,v=d*d,u=m/q+t/v;1<u?(f*=Math.sqrt(u),d*=Math.sqrt(u),e=0):(u=1,e===g&&(u=-1),e=u*Math.sqrt((q*v-q*t-v*m)/(q*t+v*m)));m=e*f*n/d;t=-1*e*d*b/f;k=p*m-s*t+k/2;l=s*m+p*t+l/2;q=Math.atan2((n-t)/d,(b-m)/f)-Math.atan2(0,1);e=0<=q?q:2*Math.PI+q;q=Math.atan2((-n-t)/d,(-b-m)/f)-Math.atan2((n-t)/d,(b-m)/f);b=0<=q?q:2*Math.PI+q;0==
-g&&0<b?b-=2*Math.PI:0!=g&&0>b&&(b+=2*Math.PI);g=2*b/Math.PI;g=Math.ceil(0>g?-1*g:g);b/=g;n=8/3*Math.sin(b/4)*Math.sin(b/4)/Math.sin(b/2);m=p*f;p*=d;f*=s;d*=s;for(var x=Math.cos(e),A=Math.sin(e),t=-n*(m*A+d*x),q=-n*(f*A-p*x),s=[],z=0;z<g;++z){e+=b;var x=Math.cos(e),A=Math.sin(e),v=m*x-d*A+k,u=f*x+p*A+l,y=-n*(m*A+d*x),x=-n*(f*A-p*x),A=6*z;s[A]=Number(t+a);s[A+1]=Number(q+c);s[A+2]=Number(v-y+a);s[A+3]=Number(u-x+c);s[A+4]=Number(v+a);s[A+5]=Number(u+c);t=v+y;q=u+x}return s},getBoundingBox:function(a,
-c,f){var d=null;if(null!=a&&null!=c&&0!=c){c=mxUtils.toRadians(c);var d=Math.cos(c),b=Math.sin(c);f=null!=f?f:new mxPoint(a.x+a.width/2,a.y+a.height/2);var e=new mxPoint(a.x,a.y);c=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(c.x,a.y+a.height);a=new mxPoint(a.x,g.y);e=mxUtils.getRotatedPoint(e,d,b,f);c=mxUtils.getRotatedPoint(c,d,b,f);g=mxUtils.getRotatedPoint(g,d,b,f);a=mxUtils.getRotatedPoint(a,d,b,f);d=new mxRectangle(e.x,e.y,0,0);d.add(new mxRectangle(c.x,c.y,0,0));d.add(new mxRectangle(g.x,
-g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,c,f,d){d=null!=d?d:new mxPoint;var b=a.x-d.x;a=a.y-d.y;return new mxPoint(b*c-a*f+d.x,a*c+b*f+d.y)},getPortConstraints:function(a,c,f,d){c=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==c)return d;d=c.toString();c=mxConstants.DIRECTION_MASK_NONE;f=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(f=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<
-f?(a=1,135<=f&&(a=2)):-45>f&&(a=3,-135>=f&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:c|=mxConstants.DIRECTION_MASK_EAST;break;case 2:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:c|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_WEST;break;case 1:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:c|=mxConstants.DIRECTION_MASK_EAST;break;case 3:c|=
-mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:c|=mxConstants.DIRECTION_MASK_WEST;break;case 2:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:c|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_EAST;break;case 1:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:c|=mxConstants.DIRECTION_MASK_WEST;break;case 3:c|=mxConstants.DIRECTION_MASK_NORTH}return c},
+'\x3d"'+g+'"')}b=a.firstChild;if(null!=b){for(d.push("\x3e\n");null!=b;)d.push(mxUtils.getPrettyXml(b,c,f+c)),b=b.nextSibling;d.push(f+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,c){for(var f=c?a.previousSibling:a.nextSibling;null!=f&&f.nodeType==mxConstants.NODETYPE_TEXT;){var d=c?f.previousSibling:f.nextSibling,b=mxUtils.getTextContent(f);0==mxUtils.trim(b).length&&f.parentNode.removeChild(f);f=d}},htmlEntities:function(a,c){a=String(a||"");
+a=a.replace(/&/g,"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==c||c)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,c){var f="";null!=window.XMLSerializer?f=(new XMLSerializer).serializeToString(a):null!=a.xml&&(f=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return f.replace(/\n/g,c||"\x26#xa;")},
+extractTextWithWhitespace:function(a){for(var c=!1,f=[],d=0;a[d];d++){var b=a[d];if(3===b.nodeType||4===b.nodeType){if(11==document.documentMode&&d==a.length-1&&0==b.nodeValue.length)break;f.push(b.nodeValue+(null==b.nextSibling||3!=b.nextSibling.nodeType?"\n":""));c=!0}else 8!==b.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==b.nodeName&&0==b.innerHTML.length||!c&&"BR"==b.nodeName||"DIV"==b.nodeName&&"\x3cbr\x3e"==b.innerHTML?f.push("\n"):f.push(mxUtils.extractTextWithWhitespace(b.childNodes)),
+c=!1)}return f.join("")},replaceTrailingNewlines:function(a,c){for(var f="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),f+=c;return a+f},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,c){void 0!==a.innerText?a.innerText=c:a[void 0===a.textContent?"text":"textContent"]=c},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=
+a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var c=[];c.push("\x3c"+a.nodeName);var f=a.attributes;if(null!=f)for(var d=0;d<f.length;d++){var b=f[d].value;null!=b&&0<b.length&&(c.push(" "),c.push(f[d].nodeName),c.push('\x3d"'),c.push(b),c.push('"'))}0==a.innerHTML.length?c.push("/\x3e"):(c.push("\x3e"),c.push(a.innerHTML),c.push("\x3c/"+a.nodeName+"\x3e"));return c.join("")}return""}:
+function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,c){var f=a.ownerDocument.createTextNode(c);null!=a&&a.appendChild(f);return f},writeln:function(a,c){var f=a.ownerDocument.createTextNode(c);null!=a&&(a.appendChild(f),a.appendChild(document.createElement("br")));return f},br:function(a,c){c=c||1;for(var f=null,d=0;d<c;d++)null!=a&&(f=a.ownerDocument.createElement("br"),a.appendChild(f));return f},button:function(a,c,f){f=null!=f?f:document;f=f.createElement("button");
+mxUtils.write(f,a);mxEvent.addListener(f,"click",function(a){c(a)});return f},para:function(a,c){var f=document.createElement("p");mxUtils.write(f,c);null!=a&&a.appendChild(f);return f},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,c,f,d,b){return mxUtils.link(a,c,function(){f.execute(d)},b)},linkInvoke:function(a,c,f,d,b,e){return mxUtils.link(a,
+c,function(){f[d](b)},e)},link:function(a,c,f,d){var b=document.createElement("span");b.style.color="blue";b.style.textDecoration="underline";b.style.cursor="pointer";null!=d&&(b.style.paddingLeft=d+"px");mxEvent.addListener(b,"click",f);mxUtils.write(b,c);null!=a&&a.appendChild(b);return b},fit:function(a){var c=parseInt(a.offsetLeft),f=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),b=d.x,d=d.y,e=document.body,g=document.documentElement,k=b+(e.clientWidth||g.clientWidth);
+c+f>k&&(a.style.left=Math.max(b,k-f)+"px");c=parseInt(a.offsetTop);f=parseInt(a.offsetHeight);e=d+Math.max(e.clientHeight||0,g.clientHeight);c+f>e&&(a.style.top=Math.max(d,e-f)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,c,f,d,b,e){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(c,f,b,e);return a},getAll:function(a,c,f){for(var d=a.length,b=[],e=0,g=function(){0==e&&null!=f&&f();e++},k=0;k<a.length;k++)(function(a,e){mxUtils.get(a,
+function(a){var f=a.getStatus();200>f||299<f?g():(b[e]=a,d--,0==d&&c(b))},g)})(a[k],k);0==d&&c(b)},post:function(a,c,f,d){return(new mxXmlRequest(a,c)).send(f,d)},submit:function(a,c,f,d){return(new mxXmlRequest(a,c)).simulate(f,d)},loadInto:function(a,c,f){mxClient.IS_IE?c.onreadystatechange=function(){4==c.readyState&&f()}:c.addEventListener("load",f,!1);c.load(a)},getValue:function(a,c,f){a=null!=a?a[c]:null;null==a&&(a=f);return a},getNumber:function(a,c,f){a=null!=a?a[c]:null;null==a&&(a=f||
+0);return Number(a)},getColor:function(a,c,f){a=null!=a?a[c]:null;null==a?a=f:a==mxConstants.NONE&&(a=null);return a},clone:function(a,c,f){f=null!=f?f:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,b;for(b in a)if(b!=mxObjectIdentity.FIELD_NAME&&(null==c||0>mxUtils.indexOf(c,b)))d[b]=!f&&"object"==typeof a[b]?mxUtils.clone(a[b]):a[b]}return d},equalPoints:function(a,c){if(null==a&&null!=c||null!=a&&null==c||null!=a&&null!=c&&a.length!=c.length)return!1;if(null!=
+a&&null!=c)for(var f=0;f<a.length;f++)if(a[f]==c[f]||null!=a[f]&&!a[f].equals(c[f]))return!1;return!0},equalEntries:function(a,c){if(null==a&&null!=c||null!=a&&null==c||null!=a&&null!=c&&a.length!=c.length)return!1;if(null!=a&&null!=c){var f=0,d;for(d in c)f++;for(d in a)if(f--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(c[d]))&&a[d]!=c[d])return!1}return 0==f},removeDuplicates:function(a){for(var c=new mxDictionary,f=[],d=0;d<a.length;d++)c.get(a[d])||(f.push(a[d]),c.put(a[d],!0));return f},isNaN:function(a){return"number"==
+typeof a&&isNaN(a)},extend:function(a,c){var f=function(){};f.prototype=c.prototype;a.prototype=new f;a.prototype.constructor=a},toString:function(a){var c="",f;for(f in a)try{if(null==a[f])c+=f+" \x3d [null]\n";else if("function"==typeof a[f])c+=f+" \x3d\x3e [Function]\n";else if("object"==typeof a[f])var d=mxUtils.getFunctionName(a[f].constructor),c=c+(f+" \x3d\x3e ["+d+"]\n");else c+=f+" \x3d "+a[f]+"\n"}catch(b){c+=f+"\x3d"+b.message}return c},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*
+a/Math.PI},arcToCurves:function(a,c,f,d,b,e,g,k,l){k-=a;l-=c;if(0===f||0===d)return s;f=Math.abs(f);d=Math.abs(d);var n=-k/2,m=-l/2,p=Math.cos(b*Math.PI/180),s=Math.sin(b*Math.PI/180);b=p*n+s*m;var n=-1*s*n+p*m,m=b*b,t=n*n,q=f*f,v=d*d,u=m/q+t/v;1<u?(f*=Math.sqrt(u),d*=Math.sqrt(u),e=0):(u=1,e===g&&(u=-1),e=u*Math.sqrt((q*v-q*t-v*m)/(q*t+v*m)));m=e*f*n/d;t=-1*e*d*b/f;k=p*m-s*t+k/2;l=s*m+p*t+l/2;q=Math.atan2((n-t)/d,(b-m)/f)-Math.atan2(0,1);e=0<=q?q:2*Math.PI+q;q=Math.atan2((-n-t)/d,(-b-m)/f)-Math.atan2((n-
+t)/d,(b-m)/f);b=0<=q?q:2*Math.PI+q;0==g&&0<b?b-=2*Math.PI:0!=g&&0>b&&(b+=2*Math.PI);g=2*b/Math.PI;g=Math.ceil(0>g?-1*g:g);b/=g;n=8/3*Math.sin(b/4)*Math.sin(b/4)/Math.sin(b/2);m=p*f;p*=d;f*=s;d*=s;for(var x=Math.cos(e),A=Math.sin(e),t=-n*(m*A+d*x),q=-n*(f*A-p*x),s=[],z=0;z<g;++z){e+=b;var x=Math.cos(e),A=Math.sin(e),v=m*x-d*A+k,u=f*x+p*A+l,y=-n*(m*A+d*x),x=-n*(f*A-p*x),A=6*z;s[A]=Number(t+a);s[A+1]=Number(q+c);s[A+2]=Number(v-y+a);s[A+3]=Number(u-x+c);s[A+4]=Number(v+a);s[A+5]=Number(u+c);t=v+y;q=
+u+x}return s},getBoundingBox:function(a,c,f){var d=null;if(null!=a&&null!=c&&0!=c){c=mxUtils.toRadians(c);var d=Math.cos(c),b=Math.sin(c);f=null!=f?f:new mxPoint(a.x+a.width/2,a.y+a.height/2);var e=new mxPoint(a.x,a.y);c=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(c.x,a.y+a.height);a=new mxPoint(a.x,g.y);e=mxUtils.getRotatedPoint(e,d,b,f);c=mxUtils.getRotatedPoint(c,d,b,f);g=mxUtils.getRotatedPoint(g,d,b,f);a=mxUtils.getRotatedPoint(a,d,b,f);d=new mxRectangle(e.x,e.y,0,0);d.add(new mxRectangle(c.x,
+c.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,c,f,d){d=null!=d?d:new mxPoint;var b=a.x-d.x;a=a.y-d.y;return new mxPoint(b*c-a*f+d.x,a*c+b*f+d.y)},getPortConstraints:function(a,c,f,d){c=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==c)return d;d=c.toString();c=mxConstants.DIRECTION_MASK_NONE;f=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(f=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,
+0));a=0;45<f?(a=1,135<=f&&(a=2)):-45>f&&(a=3,-135>=f&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:c|=mxConstants.DIRECTION_MASK_EAST;break;case 2:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:c|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_WEST;break;case 1:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:c|=mxConstants.DIRECTION_MASK_EAST;break;
+case 3:c|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:c|=mxConstants.DIRECTION_MASK_WEST;break;case 2:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:c|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_EAST;break;case 1:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:c|=mxConstants.DIRECTION_MASK_WEST;break;case 3:c|=mxConstants.DIRECTION_MASK_NORTH}return c},
reversePortConstraints:function(a){var c=0,c=(a&mxConstants.DIRECTION_MASK_WEST)<<3,c=c|(a&mxConstants.DIRECTION_MASK_NORTH)<<1,c=c|(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return c|(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,c,f){var d=-1;if(0<a.absolutePoints.length)for(var b=a.absolutePoints[0],e=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],b=mxUtils.ptSegDistSq(b.x,b.y,k.x,k.y,c,f);if(null==e||b<e)e=b,d=g-1;b=k}return d},rectangleIntersectsSegment:function(a,
c,f){var d=a.y,b=a.x,e=d+a.height,g=b+a.width;a=c.x;var k=f.x;c.x>f.x&&(a=f.x,k=c.x);k>g&&(k=g);a<b&&(a=b);if(a>k)return!1;var b=c.y,g=f.y,l=f.x-c.x;1E-7<Math.abs(l)&&(f=(f.y-c.y)/l,c=c.y-f*c.x,b=f*a+c,g=f*k+c);b>g&&(c=g,g=b,b=c);g>e&&(g=e);b<d&&(b=d);return b>g?!1:!0},contains:function(a,c,f){return a.x<=c&&a.x+a.width>=c&&a.y<=f&&a.y+a.height>=f},intersects:function(a,c){var f=a.width,d=a.height,b=c.width,e=c.height;if(0>=b||0>=e||0>=f||0>=d)return!1;var g=a.x,k=a.y,l=c.x,n=c.y,b=b+l,e=e+n,f=f+
g,d=d+k;return(b<l||b>g)&&(e<n||e>k)&&(f<g||f>l)&&(d<k||d>n)},intersectsHotspot:function(a,c,f,d,b,e){d=null!=d?d:1;b=null!=b?b:0;e=null!=e?e:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,n=a.height,m=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<m&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+m/2,n=m):(g=a.x+m/2,l=m));l=Math.max(b,l*d);n=Math.max(b,n*d);0<e&&(l=Math.min(l,e),n=Math.min(n,e));d=new mxRectangle(g-l/2,k-n/2,l,n);g=mxUtils.toRadians(mxUtils.getValue(a.style,
@@ -1647,8 +1647,8 @@ g=this.getAlignmentTolerance();if(0<g){var k=this.graph.view.getState(c);if(null
mxConnectionHandler.prototype.createEdge=function(a,c,f,d){var b=null;null!=this.factoryMethod&&(b=this.factoryMethod(c,f,d));null==b&&(b=new mxCell(a||""),b.setEdge(!0),b.setStyle(d),a=new mxGeometry,a.relative=!0,b.setGeometry(a));return b};
mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.marker&&(this.marker.destroy(),this.marker=null);null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null);null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),
this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null)};
-function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,f){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)&&this.reset()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);mxConstraintHandler.prototype.graph=null;
-mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
+function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,f){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)?this.reset():this.redraw()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);
+mxConstraintHandler.prototype.graph=null;mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null);this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null};mxConstraintHandler.prototype.getTolerance=function(a){return this.graph.getTolerance()};
mxConstraintHandler.prototype.getImageForConstraint=function(a,c,f){return this.pointImage};mxConstraintHandler.prototype.isEventIgnored=function(a,c){return!1};mxConstraintHandler.prototype.isStateIgnored=function(a,c){return!1};mxConstraintHandler.prototype.destroyIcons=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusPoints=this.focusIcons=null}};
mxConstraintHandler.prototype.destroyFocusHighlight=function(){null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)};mxConstraintHandler.prototype.isKeepFocusEvent=function(a){return mxEvent.isShiftDown(a.getEvent())};
@@ -1657,6 +1657,8 @@ mxConstraintHandler.prototype.update=function(a,c,f,d){if(this.isEnabled()&&!thi
d));if(!this.isKeepFocusEvent(a)&&(null==this.currentFocusArea||null==this.currentFocus||null!=k||!this.graph.getModel().isVertex(this.currentFocus.cell)||!mxUtils.intersects(this.currentFocusArea,b))&&k!=this.currentFocus)this.currentFocus=this.currentFocusArea=null,this.setFocus(a,k,c);a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==k||this.currentFocus==k))for(var g=b.getCenterX(),l=b.getCenterY(),n=0;n<this.focusIcons.length;n++){var m=
g-this.focusIcons[n].bounds.getCenterX(),p=l-this.focusIcons[n].bounds.getCenterY(),m=m*m+p*p;if((this.intersects(this.focusIcons[n],b,c,f)||null!=d&&this.intersects(this.focusIcons[n],e,c,f))&&(null==a||m<a)){this.currentConstraint=this.constraints[n];this.currentPoint=this.focusPoints[n];a=m;m=this.focusIcons[n].bounds.clone();m.grow(mxConstants.HIGHLIGHT_SIZE);mxClient.IS_IE&&(m.grow(1),m.width-=1,m.height-=1);if(null==this.focusHighlight){p=this.createHighlightShape();p.dialect=this.graph.dialect==
mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;p.pointerEvents=!1;p.init(this.graph.getView().getOverlayPane());this.focusHighlight=p;var s=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:k});mxEvent.redirectMouseEvents(p.node,this.graph,s)}this.focusHighlight.bounds=m;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
+mxConstraintHandler.prototype.redraw=function(){if(null!=this.currentFocus&&null!=this.constraints&&null!=this.focusIcons){var a=this.graph.view.getState(this.currentFocus.cell);this.currentFocus=a;this.currentFocusArea=new mxRectangle(a.x,a.y,a.width,a.height);for(var c=0;c<this.constraints.length;c++){var f=this.graph.getConnectionPoint(a,this.constraints[c]),d=this.getImageForConstraint(a,this.constraints[c],f),d=new mxRectangle(Math.round(f.x-d.width/2),Math.round(f.y-d.height/2),d.width,d.height);
+this.focusIcons[c].bounds=d;this.focusIcons[c].redraw();this.currentFocusArea.add(this.focusIcons[c].bounds);this.focusPoints[c]=f}}};
mxConstraintHandler.prototype.setFocus=function(a,c,f){this.constraints=null!=c&&!this.isStateIgnored(c,f)&&this.graph.isCellConnectable(c.cell)?this.isEnabled()?this.graph.getAllConnectionConstraints(c,f)||[]:[]:null;if(null!=this.constraints){this.currentFocus=c;this.currentFocusArea=new mxRectangle(c.x,c.y,c.width,c.height);if(null!=this.focusIcons){for(f=0;f<this.focusIcons.length;f++)this.focusIcons[f].destroy();this.focusPoints=this.focusIcons=null}this.focusPoints=[];this.focusIcons=[];for(f=
0;f<this.constraints.length;f++){var d=this.graph.getConnectionPoint(c,this.constraints[f]),b=this.getImageForConstraint(c,this.constraints[f],d),e=b.src,b=new mxRectangle(Math.round(d.x-b.width/2),Math.round(d.y-b.height/2),b.width,b.height),e=new mxImageShape(b,e);e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG;e.preserveImageAspect=!1;e.init(this.graph.getView().getDecoratorPane());(mxClient.IS_QUIRKS||8==document.documentMode)&&mxEvent.addListener(e.node,
"dragstart",function(b){mxEvent.consume(b);return!1});null!=e.node.previousSibling&&e.node.parentNode.insertBefore(e.node,e.node.parentNode.firstChild);b=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:c});e.redraw();mxEvent.redirectMouseEvents(e.node,this.graph,b);this.currentFocusArea.add(e.bounds);this.focusIcons.push(e);this.focusPoints.push(d)}this.currentFocusArea.grow(this.getTolerance(a))}else this.destroyIcons(),this.destroyFocusHighlight()};
@@ -2494,7 +2496,7 @@ b.length-1;0<=f;f--)if(0==f||b[f]!=e[f-1]){b[f].setAttribute("width",a);b[f].set
"_blank");break}}};Graph.prototype.isCellResizable=function(b){var a=mxGraph.prototype.isCellResizable.apply(this,arguments),d=this.view.getState(b),d=null!=d?d.style:this.getCellStyle(b);return a||"0"!=mxUtils.getValue(d,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==d[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(b,a){null==a&&(a=this.getSelectionCells());if(null!=a&&1<a.length){for(var d=[],c=null,e=null,f=0;f<a.length;f++)if(this.getModel().isVertex(a[f])){var g=this.view.getState(a[f]);
if(null!=g){var k=b?g.getCenterX():g.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):k;d.push(g)}}if(2<d.length){d.sort(function(a,d){return b?a.x-d.x:a.y-d.y});g=this.view.translate;k=this.view.scale;e=e/k-(b?g.x:g.y);c=c/k-(b?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(c-e)/(d.length-1),c=e,f=1;f<d.length-1;f++){var n=this.getCellGeometry(d[f].cell),c=c+l;null!=n&&(n=n.clone(),b?n.x=Math.round(c-n.width/2):n.y=Math.round(c-n.height/2),this.getModel().setGeometry(d[f].cell,
n))}}finally{this.getModel().endUpdate()}}}return a};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};Graph.prototype.encodeCells=function(b){for(var a=this.cloneCells(b),d=0;d<a.length;d++){var c=this.view.getState(b[d]);if(null!=c){var e=this.getCellGeometry(a[d]);null!=e&&e.relative&&(e.relative=!1,e.x=c.x/c.view.scale-c.view.translate.x,e.y=c.y/c.view.scale-c.view.translate.y)}}for(var c=new mxCodec,e=new mxGraphModel,f=e.getChildAt(e.getRoot(),
-0),d=0;d<b.length;d++)e.add(f,a[d]);return c.encode(e)};Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,a){return this.getLinkForCell(b.cell)});return b};Graph.prototype.getSvg=function(b,a,d,c,e,f,g){a=null!=a?a:1;d=null!=d?d:1;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;c=f||c?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==c)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),
+0),d=0;d<b.length;d++)e.add(f,a[d]);return c.encode(e)};Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,a){return this.getLinkForCell(b.cell)});return b};Graph.prototype.getSvg=function(b,a,d,c,e,f,g){a=null!=a?a:1;d=null!=d?d:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;c=f||c?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==c)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),
l=k.drawCellState;k.drawCellState=function(b,a){(f||b.view.graph.isCellSelected(b.cell))&&l.apply(this,arguments)};var n=this.view.scale,m=mxUtils.createXmlDocument(),p=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=b&&(null!=p.style?p.style.backgroundColor=b:p.setAttribute("style","background-color:"+b));null==m.createElementNS?(p.setAttribute("xmlns",mxConstants.NS_SVG),p.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/",
"xmlns:xlink",mxConstants.NS_XLINK);b=a/n;p.setAttribute("width",Math.ceil(c.width*b)+2*d+"px");p.setAttribute("height",Math.ceil(c.height*b)+2*d+"px");p.setAttribute("version","1.1");var u=p;e&&(u=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),u.setAttribute("transform","translate(0.5,0.5)"),p.appendChild(u));m.appendChild(p);m=new mxSvgCanvas2D(u);m.foOffset=e?-0.5:0;m.textOffset=e?-0.5:0;m.translate(Math.floor((d/a-c.x)/n),Math.floor((d/a-c.y)/n));var v=
m.createAlternateContent;m.createAlternateContent=function(b,a,d,c,e,f,g,k,l,n,m,p,u){var q=this.state;if(null!=this.foAltText&&(0==c||0!=q.fontSize&&f.length<5*c/q.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(c/2));t.setAttribute("y",Math.round((e+q.fontSize)/2));t.setAttribute("fill",q.fontColor||"black");t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(q.fontSize)+"px");t.setAttribute("font-family",q.fontFamily);(q.fontStyle&mxConstants.FONT_BOLD)==
@@ -2787,7 +2789,7 @@ Menubar.prototype.addMenuHandler=function(a,c){if(null!=c){var f=!0,d=mxUtils.bi
b);this.editorUi.setCurrentMenu(d,a)}mxEvent.consume(b)});mxEvent.addListener(a,"mousemove",mxUtils.bind(this,function(b){null!=this.editorUi.currentMenu&&this.editorUi.currentMenuElt!=a&&(this.editorUi.hideCurrentMenu(),d(b))}));mxEvent.addListener(a,"mousedown",mxUtils.bind(this,function(){f=this.currentElt!=a}));mxEvent.addListener(a,"click",mxUtils.bind(this,function(b){d(b);f=!0}))}};Menubar.prototype.destroy=function(){};
function Menu(a,c){mxEventSource.call(this);this.funct=a;this.enabled=null!=c?c:!0}mxUtils.extend(Menu,mxEventSource);Menu.prototype.isEnabled=function(){return this.enabled};Menu.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Menu.prototype.execute=function(a,c){this.funct(a,c)};EditorUi.prototype.createMenus=function(){return new Menus(this)};Format=function(a,c){this.editorUi=a;this.container=c};
Format.prototype.labelIndex=0;Format.prototype.currentIndex=0;
-Format.prototype.init=function(){var a=this.editorUi.editor.graph;this.update=mxUtils.bind(this,function(a,f){this.clearSelectionState();this.refresh()});a.getSelectionModel().addListener(mxEvent.CHANGE,this.update);a.addListener(mxEvent.EDITING_STARTED,this.update);a.addListener(mxEvent.EDITING_STOPPED,this.update);a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.clearSelectionState()}));a.addListener(mxEvent.ROOT,mxUtils.bind(this,function(){this.refresh()}));this.refresh()};
+Format.prototype.init=function(){var a=this.editorUi.editor.graph;this.update=mxUtils.bind(this,function(a,f){this.clearSelectionState();this.refresh()});a.getSelectionModel().addListener(mxEvent.CHANGE,this.update);a.addListener(mxEvent.EDITING_STARTED,this.update);a.addListener(mxEvent.EDITING_STOPPED,this.update);a.getModel().addListener(mxEvent.CHANGE,this.update);a.addListener(mxEvent.ROOT,mxUtils.bind(this,function(){this.refresh()}));this.refresh()};
Format.prototype.clearSelectionState=function(){this.selectionState=null};Format.prototype.getSelectionState=function(){null==this.selectionState&&(this.selectionState=this.createSelectionState());return this.selectionState};Format.prototype.createSelectionState=function(){for(var a=this.editorUi.editor.graph.getSelectionCells(),c=this.initSelectionState(),f=0;f<a.length;f++)this.updateSelectionStateForCell(c,a[f],a);return c};
Format.prototype.initSelectionState=function(){return{vertices:[],edges:[],x:null,y:null,width:null,height:null,style:{},containsImage:!1,containsLabel:!1,fill:!0,glass:!0,rounded:!0,comic:!0,autoSize:!1,image:!0,shadow:!0}};
Format.prototype.updateSelectionStateForCell=function(a,c,f){f=this.editorUi.editor.graph;if(f.getModel().isVertex(c)){a.vertices.push(c);var d=f.getCellGeometry(c);if(null!=d&&(0<d.width?null==a.width?a.width=d.width:a.width!=d.width&&(a.width=""):a.containsLabel=!0,0<d.height?null==a.height?a.height=d.height:a.height!=d.height&&(a.height=""):a.containsLabel=!0,!d.relative||null!=d.offset)){var b=d.relative?d.offset.x:d.x,d=d.relative?d.offset.y:d.y;null==a.x?a.x=b:a.x!=b&&(a.x="");null==a.y?a.y=
@@ -3090,8 +3092,8 @@ document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,m
b.value)window.openFile=new OpenFile(function(){a.hideDialog();window.openFile=null}),window.openFile.setData(d,null),window.open(a.getUrl());else if("replace"==b.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(d).documentElement),a.hideDialog()}catch(e){c=e}finally{a.editor.graph.model.endUpdate()}}else if("import"==b.value){a.editor.graph.model.beginUpdate();try{var n=mxUtils.parseXml(d),m=new mxGraphModel;(new mxCodec(n)).decode(n.documentElement,m);var p=m.getChildren(m.getChildAt(m.getRoot(),
0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(p));a.hideDialog()}catch(s){c=s}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(d);this.container=c},ExportDialog=function(a){function c(){var b=m.value,a=b.lastIndexOf(".");m.value=0<a?b.substring(0,a+1)+p.value:b+"."+p.value;"xml"===p.value?(s.setAttribute("disabled","true"),t.setAttribute("disabled","true"),q.setAttribute("disabled",
"true"),u.setAttribute("disabled","true")):(s.removeAttribute("disabled"),t.removeAttribute("disabled"),q.removeAttribute("disabled"),u.removeAttribute("disabled"));"png"===p.value||"svg"===p.value?v.removeAttribute("disabled"):v.setAttribute("disabled","disabled")}function f(){t.style.backgroundColor=t.value*q.value>MAX_AREA||0>=t.value?"red":"";q.style.backgroundColor=t.value*q.value>MAX_AREA||0>=q.value?"red":""}var d=a.editor.graph,b=d.getGraphBounds(),e=d.view.scale,g=Math.ceil(b.width/e),k=
-Math.ceil(b.height/e),l,e=document.createElement("table"),n=document.createElement("tbody");e.setAttribute("cellpadding","2");b=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";l.style.width="100px";mxUtils.write(l,mxResources.get("filename")+":");b.appendChild(l);var m=document.createElement("input");m.setAttribute("value",a.editor.getOrCreateFilename());m.style.width="180px";l=document.createElement("td");l.appendChild(m);b.appendChild(l);n.appendChild(b);b=document.createElement("tr");
-l=document.createElement("td");l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("format")+":");b.appendChild(l);var p=document.createElement("select");p.style.width="180px";l=document.createElement("option");l.setAttribute("value","png");mxUtils.write(l,mxResources.get("formatPng"));p.appendChild(l);l=document.createElement("option");ExportDialog.showGifOption&&(l.setAttribute("value","gif"),mxUtils.write(l,mxResources.get("formatGif")),p.appendChild(l));l=document.createElement("option");
+Math.ceil(b.height/e),l,e=document.createElement("table"),n=document.createElement("tbody");e.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");b=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";l.style.width="100px";mxUtils.write(l,mxResources.get("filename")+":");b.appendChild(l);var m=document.createElement("input");m.setAttribute("value",a.editor.getOrCreateFilename());m.style.width="180px";l=document.createElement("td");l.appendChild(m);b.appendChild(l);n.appendChild(b);
+b=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("format")+":");b.appendChild(l);var p=document.createElement("select");p.style.width="180px";l=document.createElement("option");l.setAttribute("value","png");mxUtils.write(l,mxResources.get("formatPng"));p.appendChild(l);l=document.createElement("option");ExportDialog.showGifOption&&(l.setAttribute("value","gif"),mxUtils.write(l,mxResources.get("formatGif")),p.appendChild(l));l=document.createElement("option");
l.setAttribute("value","jpg");mxUtils.write(l,mxResources.get("formatJpg"));p.appendChild(l);l=document.createElement("option");l.setAttribute("value","pdf");mxUtils.write(l,mxResources.get("formatPdf"));p.appendChild(l);l=document.createElement("option");l.setAttribute("value","svg");mxUtils.write(l,mxResources.get("formatSvg"));p.appendChild(l);ExportDialog.showXmlOption&&(l=document.createElement("option"),l.setAttribute("value","xml"),mxUtils.write(l,mxResources.get("formatXml")),p.appendChild(l));
l=document.createElement("td");l.appendChild(p);b.appendChild(l);n.appendChild(b);b=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("zoom")+" (%):");b.appendChild(l);var s=document.createElement("input");s.setAttribute("type","number");s.setAttribute("value","100");s.style.width="180px";l=document.createElement("td");l.appendChild(s);b.appendChild(l);n.appendChild(b);b=document.createElement("tr");l=document.createElement("td");l.style.fontSize=
"10pt";mxUtils.write(l,mxResources.get("width")+":");b.appendChild(l);var t=document.createElement("input");t.setAttribute("value",g);t.style.width="180px";l=document.createElement("td");l.appendChild(t);b.appendChild(l);n.appendChild(b);b=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("height")+":");b.appendChild(l);var q=document.createElement("input");q.setAttribute("value",k);q.style.width="180px";l=document.createElement("td");
@@ -7556,7 +7558,7 @@ c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked","0"));null!=
[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=
[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=
[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=
-[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var t=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,e,f,k,g,l,n){if(null!=c&&null==mxMarker.markers[c]){var m=this.getPackageForType(c);null!=m&&mxStencilRegistry.getStencil(m)}return t.apply(this,arguments)}})();(function(){EditorUi.VERSION="6.0.2.12";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.isElectronApp=window&&window.process&&window.process.type;EditorUi.plusImage=!mxClient.IS_SVG?IMAGE_PATH+"/plus.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII\x3d";
+[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var t=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,e,f,k,g,l,n){if(null!=c&&null==mxMarker.markers[c]){var m=this.getPackageForType(c);null!=m&&mxStencilRegistry.getStencil(m)}return t.apply(this,arguments)}})();(function(){EditorUi.VERSION="6.0.2.13";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.isElectronApp=window&&window.process&&window.process.type;EditorUi.plusImage=!mxClient.IS_SVG?IMAGE_PATH+"/plus.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII\x3d";
EditorUi.spinImage=!mxClient.IS_SVG?IMAGE_PATH+"/spin.gif":"data:image/gif;base64,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw\x3d\x3d";
EditorUi.prototype.emptyDiagramXml='\x3cmxGraphModel\x3e\x3croot\x3e\x3cmxCell id\x3d"0"/\x3e\x3cmxCell id\x3d"1" parent\x3d"0"/\x3e\x3c/root\x3e\x3c/mxGraphModel\x3e';EditorUi.prototype.emptyLibraryXml="\x3cmxlibrary\x3e[]\x3c/mxlibrary\x3e";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape\x3dstencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE\x3d);whiteSpace\x3dwrap;html\x3d1;";
EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;(function(){EditorUi.prototype.useCanvasForExport=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=c&&6<c.length}catch(d){}};
@@ -7623,126 +7625,127 @@ q.substring(0,2)&&(q=q.substring(2),a+=' \x3ca href\x3d"https://drive.google.com
function(a,b,c,d,e,f,g){a=new ErrorDialog(this,a,b,c,d,e,f,g);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){f();null!=b&&b()},function(){f();null!=c&&c()},d,e)).container,
340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+
btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createPngDataUri=function(a,b){var c=a.toDataURL("image/png");if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/png"))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return c};EditorUi.prototype.saveCanvas=function(a,b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename,d=c.lastIndexOf(".");0<d&&(c=c.substring(0,d));
-c+=".png";d=this.createPngDataUri(a,b);this.saveData(c,"png",d.substring(d.lastIndexOf(",")+1),"image/png",!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d){if(window.MSBlobBuilder&&navigator.msSaveOrOpenBlob)d=
+c+=".png";d=this.createPngDataUri(a,b);this.saveData(c,"png",d.substring(d.lastIndexOf(",")+1),"image/png",!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d,e){if(window.MSBlobBuilder&&navigator.msSaveOrOpenBlob)d=
new MSBlobBuilder,d.append(a),a=d.getBlob(c),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height="380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);
-else if(!this.isOffline()&&mxClient.IS_SF)this.createEchoRequest(a,b,c,d).simulate(document,"_blank");else{var e=document.createElement("a");e.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));e.download=b;document.body.appendChild(e);mxClient.IS_SF&&e.setAttribute("target","_blank");try{e.click(),window.setTimeout(function(){URL.revokeObjectURL(e.href)},0),e.parentNode.removeChild(e)}catch(f){}}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,e,f){a="xml\x3d"+encodeURIComponent(a);
-return new mxXmlRequest(SAVE_URL,a+(null!=c?"\x26mime\x3d"+c:"")+(null!=e?"\x26format\x3d"+e:"")+(null!=f?"\x26base64\x3d"+f:"")+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):"")+(d?"\x26binary\x3d1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),f=Array(e),g=0;g<e;++g){for(var q=1024*g,v=Math.min(q+1024,d),u=Array(v-q),x=0;q<v;++x,++q)u[x]=c[q].charCodeAt(0);f[g]=new Uint8Array(u)}return new Blob(f,{type:b})};EditorUi.prototype.saveLocalFile=
-function(a,b,c,d){var e=!mxClient.IS_IOS||!navigator.standalone,f=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===typeof window.DropboxClient||"function"===typeof window.OneDriveClient);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):null!=c&&"image/"==c.substring(0,6)&&("image/svg"!=c.substring(0,9)||mxClient.IS_SVG)?!d||mxClient.IS_EDGE||11==document.documentMode||
-10==document.documentMode?(f.document.write('\x3chtml\x3e\x3cimg src\x3d"data:'+c+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a))+'"/\x3e\x3c/html\x3e'),f.document.close()):f.location.replace("data:"+c+";base64,"+a):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else e==App.MODE_DEVICE?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(f){this.exportFile(a,b,c,d,e,f)}))}catch(g){this.handleError(g)}}),mxUtils.bind(this,function(){this.hideDialog()}),
-mxResources.get("saveAs"),mxResources.get("download"),!1,!1,e);this.showDialog(b.container,380,f?280:160,!0,!0);b.init()};EditorUi.prototype.saveData=function(a,b,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}))};EditorUi.prototype.saveRequest=function(a,b,c){var d=!mxClient.IS_IOS||!navigator.standalone,e=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===
-typeof window.DropboxClient||"function"===typeof window.OneDriveClient);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var e=c("_blank"==d?null:a,d==App.MODE_DEVICE||null==d||"_blank"==d?"0":"1");null!=e&&(d==App.MODE_DEVICE||"_blank"==d?e.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(c){this.spinner.spin(document.body,mxResources.get("saving"))&&e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200>e.getStatus()||
-299<e.getStatus())this.handleError({message:mxResources.get("errorSavingFile")});else try{var f="pdf"==b?"application/pdf":"image/"+b;this.exportFile(e.getText(),a,f,!0,d,c)}catch(g){this.handleError(g)}}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,d);this.showDialog(a.container,380,e?280:160,!0,!0);a.init()};EditorUi.prototype.exportFile=function(a,b,c,d,e,f){};EditorUi.prototype.pickFolder=
-function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,e,f,g){if(this.spinner.spin(document.body,mxResources.get("export"))){var q=this.editor.graph.isSelectionEmpty();c=null!=c?c:q;q=b?null:this.editor.graph.background;q==mxConstants.NONE&&(q=null);null==q&&!1==b&&(q="#ffffff");var v=this.editor.graph.getSvg(q,a,null,g,null,c);d&&this.editor.addSvgShadow(v);a=this.getCurrentFile();var u=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;a=u.lastIndexOf(".");0<a&&(u=u.substring(0,
-a));var u=u+".svg",x=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,null,null,null,c));var b='\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(u,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});
-this.convertMath(this.editor.graph,v,!1,mxUtils.bind(this,function(){f?this.convertImages(v,x):x(v)}))}};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";f.setAttribute("type","checkbox");d.isSelectionEmpty()&&f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));mxUtils.br(e);var g=document.createElement("input");
-g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),null,a,b);this.showDialog(a.container,300,120,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e){var f=this.editor.graph,g=document.createElement("div");g.style.paddingTop="20px";g.style.paddingRight=
-"8px";var q=240,v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("type","checkbox");if(f.background==mxConstants.NONE||null==f.background)v.setAttribute("checked","checked"),v.defaultChecked=!0;g.appendChild(v);mxUtils.write(g,mxResources.get("transparentBackground"));mxUtils.br(g);var u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight="8px";u.setAttribute("type","checkbox");g.appendChild(u);mxUtils.write(g,mxResources.get("selectionOnly"));mxUtils.br(g);
-var x=document.createElement("input");x.style.marginTop="16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");e&&(g.appendChild(x),mxUtils.write(g,mxResources.get("crop")),mxUtils.br(g),q+=26);f.isSelectionEmpty()&&(u.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"));var A=document.createElement("input");A.style.marginTop="16px";A.style.marginRight="8px";A.setAttribute("type","checkbox");g.appendChild(A);mxUtils.write(g,mxResources.get("shadow"));mxUtils.br(g);
-f.shadowVisible&&(A.setAttribute("checked","checked"),A.defaultChecked=!0);var z=document.createElement("input");z.style.marginTop="16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");(this.isOffline()||!this.canvasSupported)&&z.setAttribute("disabled","disabled");a&&(g.appendChild(z),mxUtils.write(g,mxResources.get("embedImages")),mxUtils.br(g),q+=26);var y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight="8px";y.setAttribute("type","checkbox");y.style.marginBottom=
-"8px";y.setAttribute("checked","checked");y.defaultChecked=!0;g.appendChild(y);mxUtils.write(g,mxResources.get("includeCopyOfMyDiagram"));a=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,v.checked,!u.checked,A.checked,y.checked,z.checked,x.checked)}),mxResources.get("zoom")+" (%)",null,g,!this.isOffline()?c:null);this.showDialog(a.container,320,q,!0,!0);a.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop=
-"20px";c.style.paddingRight="8px";var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),q=document.createElement("td"),v=document.createElement("input");v.setAttribute("type","text");mxUtils.write(q,"Username:");g.appendChild(q);q=q.cloneNode(!1);q.appendChild(v);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),u=document.createElement("input");u.setAttribute("type","password");mxUtils.write(q,"Password:");g=g.cloneNode(!1);g.appendChild(q);
-q=q.cloneNode(!1);q.appendChild(u);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),x=document.createElement("input");x.setAttribute("type","text");mxUtils.write(q,"Organisation:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(x);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),A=document.createElement("input");A.setAttribute("type","text");mxUtils.write(q,"Repository:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(A);g.appendChild(q);f.appendChild(g);
-var q=q.cloneNode(!1),z=document.createElement("input");z.setAttribute("type","text");mxUtils.write(q,"Path:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(z);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var y=a.lastIndexOf(".");0<y&&(a=a.substring(0,y));z.value=a+".png";var D=document.createElement("input");D.setAttribute("type","text");mxUtils.write(q,"Branch/Tag:");D.value="master";
-g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(D);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),B=document.createElement("input");B.setAttribute("type","text");mxUtils.write(q,"Message:");B.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(B);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+
-x.value+"/"+A.value+"/contents/"+z.value+"?ref\x3d"+encodeURIComponent(D.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());var e={path:z.value,message:B.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+x.value+"/"+A.value+"/blob/"+D.value+"/"+z.value;
-var b=new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+
-btoa(v.value+":"+u.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause();c=!1;var f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+
-b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,g=f.lastIndexOf("."),v=f;0<g&&(v=f=v.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:v+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),u=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};
-try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();
-var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),
-function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var l=new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");l.send(mxUtils.bind(this,function(){200==l.getStatus()?k():u(l)}),mxUtils.bind(this,function(){u(l)}))}else k()}catch(p){this.handleError(p)}else u(a)}),mxUtils.bind(this,function(a){u(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,
-b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,q){d=parseInt(d);if(!isNaN(d)&&0<d){d/=100;var v=this.editor.graph.isSelectionEmpty();f=null!=f?f:v;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=q?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,
-e);a(c,g.substring(g.lastIndexOf(",")+1),q,b)}catch(m){this.handleError(m)}}),null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(u){this.handleError(u)}}})):this.showRemoteExportDialog(mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*
-f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var q=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));q.send(mxUtils.bind(this,function(){200==q.getStatus()?a(c,q.getText(),e,b):this.handleError(q)}))}catch(v){this.handleError(v)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);
-if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&
-(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':
-"")+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,f){if(this.spinner.spin(document.body,mxResources.get("exporting"))){var g=this.editor.graph.isSelectionEmpty();c=null!=c?c:g;try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c):null)}catch(b){"Invalid image"==b.message?this.downloadFile("png"):this.handleError(b)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),
-null,c,a||1,b,d,null,null,null,f)}catch(q){this.spinner.stop(),this.handleError(q)}}};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,q,v,u,x,A,z,y){f=null!=f?f:!0;A=null!=A?A:this.editor.graph;z=null!=z?z:0;var D=v?null:A.background;D==mxConstants.NONE&&(D=null);null==D&&(D=d);null==D&&!1==v&&(D="#ffffff");this.convertImages(A.getSvg(D,null,null,y,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),
-g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));q=null!=q?q:1;null!=b&&(q=!f?b/g:Math.min(1,Math.min(3*b/(4*m),b/g)));g=Math.ceil(q*g)+2*z;m=Math.ceil(q*m)+2*z;e.setAttribute("width",g);e.setAttribute("height",m);var n=e.getContext("2d");null!=D&&(n.beginPath(),n.rect(0,0,g,m),n.fillStyle=D,n.fill());n.scale(q,q);n.drawImage(d,z/q,z/q);a(e)});d.onerror=function(a){null!=e&&e(a)};try{u&&this.editor.addSvgShadow(c),this.convertMath(A,c,!0,mxUtils.bind(this,function(){d.src=
-this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,x)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,
-b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var n=a.getElementsByTagName(c),u=0;u<n.length;u++)mxUtils.bind(this,function(c){var n=d.convert(c.getAttribute(g));if(null!=n&&"data:"!=n.substring(0,5)){var u=f[n];null==u?(e++,this.convertImageToDataUri(n,function(d){null!=d&&(f[n]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,u)}})(n[u])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=
-function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var q=mxUtils.parseXml(a),
-v=this.editor.extractGraphModel(q.documentElement,null!=this.pages);if(null!=v&&"mxfile"==v.nodeName&&null!=this.pages){var u=v.getElementsByTagName("diagram");if(1==u.length)v=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(u[0]))).documentElement;else if(1<u.length){g.model.beginUpdate();try{for(var x=0;x<u.length;x++){var A=this.updatePageRoot(new DiagramPage(u[x])),z=this.pages.length;null==A.getName()&&A.setName(mxResources.get("pageWithNumber",[z+1]));g.model.execute(new ChangePage(this,
-A,A,z))}}finally{g.model.endUpdate()}}}if(null!=v&&"mxGraphModel"===v.nodeName){var y=new mxGraphModel;(new mxCodec(v.ownerDocument)).decode(v,y);var D=y.getChildCount(y.getRoot());g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};for(x=0;x<D;x++){var B=y.getChildAt(y.getRoot(),x);if(1==D&&!g.isCellLocked(g.getDefaultParent()))var C=y.getChildren(B),f=f.concat(g.importCells(C,b,c,g.getDefaultParent(),null,a));else B=g.importCells([B],0,0,g.model.getRoot(),null,a)[0],C=g.model.getChildren(B),
-g.moveCells(C,b,c),f=f.concat(C)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var F=g.getBoundingBoxFromGeometry(f,!0);null!=F&&g.moveCells(f,b-F.x,c-F.y)}}finally{g.model.endUpdate()}}}}catch(H){throw e||this.handleError(H,mxResources.get("invalidOrMissingFile")),H;}return f};EditorUi.prototype.insertLucidChart=function(a,b,c,d){var e=mxUtils.bind(this,function(){if(this.pasteLucidChart)try{this.pasteLucidChart(a,b,c,d)}catch(e){}});!this.pasteLucidChart&&!this.loadingExtensions&&!this.isOffline()?
-(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("/js/diagramly/Extensions.js",e):mxscript("/js/extensions.min.js",e)):window.setTimeout(e,0)};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,
-b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var q=this.extractGraphModelFromPng(a),v=this.importXml(q,b,c,f,!0);if(0<v.length)return v}if("data:image/svg+xml;"==a.substring(0,19))try{if(q=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(q=a.substring(a.indexOf(",")+1),q=window.atob&&!mxClient.IS_SF?atob(q):Base64.decode(q,!0)):q=decodeURIComponent(a.substring(a.indexOf(",")+
-1)),v=this.importXml(q,b,c,f,!0),0<v.length)return v}catch(u){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/
-d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),
-g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length)if('{"state":"{\\"Properties\\":'==a.substring(0,26)){e=JSON.parse(JSON.parse(a).state);var q=null,x;for(x in e.Pages)if(v=e.Pages[x],null!=v&&"0"==v.Properties.Order){q=v;break}null!=q&&this.insertLucidChart(q,b,c,f)}else{g=this.editor.graph;f=null;g.getModel().beginUpdate();
-try{f=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[f])),f.value=a,g.updateCellSize(f),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(f.value)&&g.setLinkForCell(f,f.value),f.geometry.width+=g.gridSize,f.geometry.height+=
-g.gridSize}finally{g.getModel().endUpdate()}return[f]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||
-null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,q,v,u,x){u=null!=u?u:!0;var A=!1,z=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=x?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(z=this.importXml(b,c,d,u),g=!0)),g||(z=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),u&&z.isGridEnabled()&&(c=z.snap(c),d=z.snap(d)),z=[z.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+
-a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(A=!0,this.parseFile(null!=v?v:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,c,d,u));null!=q&&q(b)}}),g)):/(\.vsd)($|\?)/i.test(g)||(z=this.insertTextAt(this.validateFileData(a),c,d,!0,null,u));!A&&null!=q&&q(z);return z};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=
-a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&
-15)<<2);b+="\x3d";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,q,v,u,x,A){var z=null!=b&&null!=
-c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;u=null!=u?u:this.maxImageBytes;v=null!=v?v:!0;var y=this.editor.graph,D=y.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):this.importFile(a,b,c,d,e,f,g,k,l,z,A)});f=null!=f?f:mxUtils.bind(this,function(a){y.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var B=
-a.length,C=B,F=[],H=mxUtils.bind(this,function(a,b){F[a]=b;if(0==--C){this.spinner.stop();if(null!=q)q(F);else{var c=[];y.getModel().beginUpdate();try{for(var d=0;d<F.length;d++){var e=F[d]();null!=e&&(c=c.concat(e))}}finally{y.getModel().endUpdate()}}f(c)}}),G=0;G<B;G++)mxUtils.bind(this,function(f){var q=a[f],s=new FileReader;s.onload=mxUtils.bind(this,function(a){if(null==g||g(q))if("image/"==q.type.substring(0,6))if("image/svg"==q.type.substring(0,9)){var k=a.target.result,s=k.indexOf(","),z=
-atob(k.substring(s+1)),y=mxUtils.parseXml(z),z=y.getElementsByTagName("svg");if(0<z.length){var z=z[0],B=A?null:z.getAttribute("content");null!=B&&("\x3c"!=B.charAt(0)&&"%"!=B.charAt(0))&&(B=unescape(window.atob?atob(B):Base64.decode(B,!0)));null!=B&&"%"==B.charAt(0)&&(B=decodeURIComponent(B));null!=B&&("\x3cmxfile "===B.substring(0,8)||"\x3cmxGraphModel "===B.substring(0,14))?H(f,mxUtils.bind(this,function(){return e(B,"text/xml",b+f*D,c+f*D,0,0,q.name)})):H(f,mxUtils.bind(this,function(){try{if(k.substring(0,
-s+1),null!=y){var a=y.getElementsByTagName("svg");if(0<a.length){var g=a[0],u=parseFloat(g.getAttribute("width")),v=parseFloat(g.getAttribute("height")),x=g.getAttribute("viewBox");if(null==x||0==x.length)g.setAttribute("viewBox","0 0 "+u+" "+v);else if(isNaN(u)||isNaN(v)){var t=x.split(" ");3<t.length&&(u=parseFloat(t[2]),v=parseFloat(t[3]))}k=this.createSvgDataUri(mxUtils.getXml(a[0]));var A=Math.min(1,Math.min(d/Math.max(1,u)),d/Math.max(1,v));return e(k,q.type,b+f*D,c+f*D,Math.max(1,Math.round(u*
-A)),Math.max(1,Math.round(v*A)),q.name)}}}catch(z){}return null}))}}else{z=!1;if("image/png"==q.type){var C=A?null:this.extractGraphModelFromPng(a.target.result);if(null!=C&&0<C.length){var G=new Image;G.src=a.target.result;H(f,mxUtils.bind(this,function(){return e(C,"text/xml",b+f*D,c+f*D,G.width,G.height,q.name)}));z=!0}}z||(null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),
-mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,k,x){H(f,mxUtils.bind(this,function(){if(null!=g&&g.length<u){var s=!v||!this.isResampleImage(a.target.result)?1:Math.min(1,Math.min(d/k,d/x));return e(g,q.type,b+f*D,c+f*D,Math.round(k*s),Math.round(x*s),q.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),v,d,x)})))}else e(a.target.result,q.type,b+f*D,c+f*D,240,160,q.name,function(a){H(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(q.name)?e(null,q.type,b+f*D,c+f*D,240,160,q.name,function(a){H(f,function(){return a})},q):"image"==q.type.substring(0,5)?s.readAsDataURL(q):s.readAsText(q)})(G)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=
-function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),q=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var v=Math.max(g/e,q/e);if(1<v){var u=Math.round(g/v),x=Math.round(q/v),A=document.createElement("canvas");A.width=u;A.height=x;A.getContext("2d").drawImage(a,0,0,u,x);var z=A.toDataURL();if(z.length<b.length){var y=
-document.createElement("canvas");y.width=u;y.height=x;var D=y.toDataURL();z!==D&&(b=z,g=u,q=x)}}}catch(B){}c(b,g,q)};EditorUi.prototype.crcTable=[];for(var c=0;256>c;c++)for(var f=c,d=0;8>d;d++)f=1==(f&1)?3988292384^f>>>1:f>>>1,EditorUi.prototype.crcTable[c]=f;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=q;q+=b;return a.substring(c,q)}
-function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var q=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,q);do{var v=g(a);if("IDAT"==f(a,4)){e=a.substring(0,q-8);v=4294967295;v=this.updateCRC(v,b,0,4);v=this.updateCRC(v,d,0,d.length);e+=String.fromCharCode(c.length+
-d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((v^4294967295)>>24&255,(v^4294967295)>>16&255,(v^4294967295)>>8&255,(v^4294967295)&255);e+=a.substring(q-8,a.length);break}e+=a.substring(q-8,q-4+v);d=f(a,v);f(a,4)}while(v);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=
-function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||
-"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var b=EditorUi.prototype.init;EditorUi.prototype.init=function(){b.apply(this,arguments);var a=this.editor.graph,c=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");
-var d=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=c.currentPage?c.currentPage.getName():"pagenumber"==a?null!=c.currentPage&&null!=c.pages?mxUtils.indexOf(c.pages,c.currentPage)+1:1:d.apply(this,arguments)};this.editor.getOrCreateFilename=function(){var a=c.defaultFilename,b=c.getCurrentFile();null!=b&&(a=null!=b.getTitle()?b.getTitle():a);return a};var e=this.actions.get("print");e.setEnabled(!mxClient.IS_IOS||!navigator.standalone);e.visible=e.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(70,
-!0,"find");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);mxClient.IS_IE||a.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,
-d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(l){}}),
-!1);var f=document.createElement("div");f.style.position="absolute";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.display="block";f.contentEditable=!0;mxUtils.setOpacity(f,0);f.style.width="1px";f.style.height="1px";f.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);if(null!=a.container&&
-a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var t=function(){window.setTimeout(function(){f.innerHTML=
-"\x26nbsp;";f.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&(null==this.dialog&&null!=a.container)&&a.container.focus(),f.parentNode.removeChild(f)}),0)}));mxEvent.addListener(f,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(f),t())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,
-function(b){a.isEnabled()&&(this.copyCells(f,!0),t())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML="\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var q=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:q.apply(this,arguments)}}e=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||
-0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,e,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||10<document.documentMode))d=this.highlightElement(c);
-a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");
-/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,
-"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){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(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility=
-"hidden"})));var v=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:v.apply(this,arguments)}}e=document.getElementById("geInfo");null!=e&&e.parentNode.removeChild(e);if(Graph.fileSupport){var u=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=u&&(u.parentNode.removeChild(u),u=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==u&&
-(!mxClient.IS_IE||10<document.documentMode))u=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,"drop",mxUtils.bind(this,function(b){null!=u&&(u.parentNode.removeChild(u),u=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,
-f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b));else{var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,m=e.getElementsByTagName("img");null!=
-m&&1==m.length?(c=m[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,
-null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+l+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(l,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,g,!0))}}b.stopPropagation();b.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode()};
-EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");
-if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d=c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.insertLucidChart(JSON.parse(d)),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var g=e.lastIndexOf("%3E");0<=g&&g<e.length-3&&(e=e.substring(0,g+3))}catch(q){}try{var c=b.getElementsByTagName("span"),v=null!=c&&0<c.length?
-mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(v)&&(f=!0,e=v)}catch(u){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))),!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());
-null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(x){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=
-this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:
-a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==
-c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&this.openLocalFile(d)),!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();
-a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=
-c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,
-c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){var c=b.target.result,d=a.name;if(null!=d&&0<d.length)if(/(\.png)$/i.test(d)&&(d=d.substring(0,d.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,d))d=0<=d.lastIndexOf(".")?d.substring(0,d.lastIndexOf("."))+
-".xml":d+".xml",this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200==a.status?this.openLocalFile(a.responseText,d):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if("\x3cmxlibrary"==b.target.result.substring(0,10)){this.spinner.stop();try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}}else"image/png"==
-a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,d)});b.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?b.readAsDataURL(a):b.readAsText(a)})(a[b])};EditorUi.prototype.openLocalFile=function(a,b){var c=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);
-null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename))});null!=a&&0<a.length&&(null!=this.getCurrentFile()&&!this.isDiagramEmpty()?(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,c)):c())};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),
-this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var d=a.lastIndexOf(".");0<d&&(a=a.substring(d+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),
-c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.initializeEmbedMode=function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.editor.graph.setEnabled(!1);if((window.opener||window.parent)!=window)("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,
-function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.diagramContainer.style.visibility="";this.formatContainer.style.visibility="";this.editor.graph.setEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.showLayersDialog()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};
-EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=
-function(a){var b=null,c=!1,d=!1,e=null,f=mxUtils.bind(this,function(a,b){!this.editor.modified||"0"==urlParams.modified?this.editor.setStatus(""):null!=urlParams.modified&&this.editor.setStatus(mxResources.get(urlParams.modified))});this.editor.graph.model.addListener(mxEvent.CHANGE,f);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){function v(a){if(null!=a&&"function"===typeof a.charAt&&"\x3c"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):
-"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"\x3c"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(b){}return a}var u=f.data;if("json"==urlParams.proto){try{u=JSON.parse(u)}catch(x){u=null}if(null==u)return;if("dialog"==u.action){this.showError(null!=u.titleKey?mxResources.get(u.titleKey):u.title,null!=u.messageKey?mxResources.get(u.messageKey):u.message,null!=u.buttonKey?mxResources.get(u.buttonKey):u.button);null!=
-u.modified&&(this.editor.modified=u.modified);return}if("prompt"==u.action){var s=new FilenameDialog(this,u.defaultValue||"",null!=u.okKey?mxResources.get(u.okKey):null,function(a){null!=a&&g.postMessage(JSON.stringify({event:"prompt",value:a,message:u}),"*")},null!=u.titleKey?mxResources.get(u.titleKey):u.title);this.showDialog(s.container,300,80,!0,!1);s.init();return}if("draft"==u.action){s=null;s="data:image/png;base64,"==u.xml.substring(0,22)?this.extractGraphModelFromPng(u.xml):v(u.xml);s=new DraftDialog(this,
-mxResources.get("draftFound",[u.name||this.defaultFilename]),s,mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"edit",message:u}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"discard",message:u}),"*")}),u.editKey?mxResources.get(u.editKey):null,u.discardKey?mxResources.get(u.discardKey):null);this.showDialog(s.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
-try{s.init()}catch(z){g.postMessage(JSON.stringify({event:"draft",error:z.toString(),message:u}),"*")}return}if("template"==u.action){s=new NewDialog(this,!1,null!=u.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=u.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}));this.showDialog(s.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&
-this.actions.get("exit").funct()}));s.init();return}if("status"==u.action){null!=u.messageKey?this.editor.setStatus(mxResources.get(u.messageKey)):null!=u.message&&this.editor.setStatus(u.message);null!=u.modified&&(this.editor.modified=u.modified);return}if("spinner"==u.action){var y=null!=u.messageKey?mxResources.get(u.messageKey):u.message;null!=u.show&&!u.show?this.spinner.stop():this.spinner.spin(document.body,y);return}if("export"==u.action){if("png"==u.format||"xmlpng"==u.format){if(null==
-u.spin&&null==u.spinKey||this.spinner.spin(document.body,null!=u.spinKey?mxResources.get(u.spinKey):u.spin)){var D=null!=u.xml?u.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var B=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=u.format;b.xml=encodeURIComponent(D);b.data="data:image/png;base64,"+a;g.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var C=this.editor.graph;if(null!=this.pages&&this.currentPage!=
-this.pages[0]){var C=this.createTemporaryGraph(C.getStylesheet()),F=C.getGlobalVariable,H=this.pages[0];C.getGlobalVariable=function(a){return"page"==a?H.getName():"pagenumber"==a?1:F.apply(this,arguments)};document.body.appendChild(C.container);C.model.setRoot(H.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");"xmlpng"==u.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(D))));C!=this.editor.graph&&C.container.parentNode.removeChild(C.container);
-B(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,null,null,C)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==u.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(D)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();200==a.getStatus()&&B(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=u.xml&&0<u.xml.length&&this.setFileData(u.xml);y=this.createLoadMessage("export");
-if("html2"==u.format||"html"==u.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))s=this.getXmlFileData(),y.xml=mxUtils.getXml(s),y.data=this.getFileData(null,null,!0,null,null,null,s),y.format=u.format;else if("html"==u.format)D=this.editor.getGraphXml(),y.data=this.getHtml(D,this.editor.graph),y.xml=mxUtils.getXml(D),y.format=u.format;else{mxSvgCanvas2D.prototype.foAltText=null;s=this.editor.graph.background;s==mxConstants.NONE&&(s=null);y.xml=this.getFileData(!0);y.format="svg";
-if(u.embedImages||null==u.embedImages){if(null==u.spin&&null==u.spinKey||this.spinner.spin(document.body,null!=u.spinKey?mxResources.get(u.spinKey):u.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==u.format?this.getEmbeddedSvg(y.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();y.data=this.createSvgDataUri(a);g.postMessage(JSON.stringify(y),"*")})):this.convertImages(this.editor.graph.getSvg(s),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();y.data=this.createSvgDataUri(mxUtils.getXml(a));g.postMessage(JSON.stringify(y),"*")}));return}s="xmlsvg"==u.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(s));y.data=this.createSvgDataUri(s)}g.postMessage(JSON.stringify(y),"*")}return}if("load"==u.action)d=1==u.autosave,this.hideDialog(),null!=u.modified&&null==urlParams.modified&&(urlParams.modified=u.modified),null!=u.saveAndExit&&null==urlParams.saveAndExit&&
-(urlParams.saveAndExit=u.saveAndExit),null!=u.title&&null!=this.buttonContainer&&(s=document.createElement("span"),mxUtils.write(s,u.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),this.buttonContainer.appendChild(s)),u=null!=u.xmlpng?this.extractGraphModelFromPng(u.xmlpng):null!=u.xml&&"data:image/png;base64,"==u.xml.substring(0,22)?this.extractGraphModelFromPng(u.xml):
-u.xml;else{g.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(u)}),"*");return}}u=v(u);c=!0;try{a(u,f)}catch(G){this.handleError(G)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var I=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=I();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=I();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;
-d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",
-b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));("1"==urlParams.returnbounds||"json"==urlParams.proto)&&g.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}));var g=window.opener||window.parent,f="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";g.postMessage(f,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position=
-"absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" (Ctrl+S)");b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&
-(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft=
-"6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px";"atlas"==uiTheme&&(this.statusContainer.style.color="#707070",this.statusContainer.style.paddingLeft="26px",this.toolbar.staticElements.push(this.statusContainer),this.toolbar.container.appendChild(this.statusContainer))}};
-EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"\x3d"+urlParams[d],c="\x26")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),
+else{var f=document.createElement("a");if("undefined"!==typeof f.download||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));"undefined"!==typeof f.download?f.download=b:f.setAttribute("target","_blank");document.body.appendChild(f);try{f.click(),window.setTimeout(function(){URL.revokeObjectURL(f.href)},0),f.parentNode.removeChild(f)}catch(g){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,
+b,c,d,e,f){a="xml\x3d"+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"\x26mime\x3d"+c:"")+(null!=e?"\x26format\x3d"+e:"")+(null!=f?"\x26base64\x3d"+f:"")+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):"")+(d?"\x26binary\x3d1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),f=Array(e),g=0;g<e;++g){for(var q=1024*g,v=Math.min(q+1024,d),u=Array(v-q),x=0;q<v;++x,++q)u[x]=c[q].charCodeAt(0);f[g]=new Uint8Array(u)}return new Blob(f,
+{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,e){var f=!mxClient.IS_IOS||!navigator.standalone;e=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===typeof window.DropboxClient||"function"===typeof window.OneDriveClient);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):null!=c&&"image/"==c.substring(0,6)&&("image/svg"!=c.substring(0,9)||mxClient.IS_SVG)?
+mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode?(f.document.write('\x3chtml\x3e\x3cimg src\x3d"data:'+c+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a))+'"/\x3e\x3c/html\x3e'),f.document.close()):f.location.replace("data:"+c+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a))):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else e==App.MODE_DEVICE?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(f){this.exportFile(a,
+b,c,d,e,f)}))}catch(g){this.handleError(g)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,f);this.showDialog(b.container,380,e?280:160,!0,!0);b.init()};EditorUi.prototype.saveData=function(a,b,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}))};EditorUi.prototype.saveRequest=function(a,b,c){var d=!mxClient.IS_IOS||!navigator.standalone,
+e=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===typeof window.DropboxClient||"function"===typeof window.OneDriveClient);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var e=c("_blank"==d?null:a,d==App.MODE_DEVICE||null==d||"_blank"==d?"0":"1");null!=e&&(d==App.MODE_DEVICE||"_blank"==d?e.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(c){this.spinner.spin(document.body,mxResources.get("saving"))&&
+e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200>e.getStatus()||299<e.getStatus())this.handleError({message:mxResources.get("errorSavingFile")});else try{var f="pdf"==b?"application/pdf":"image/"+b;this.exportFile(e.getText(),a,f,!0,d,c)}catch(g){this.handleError(g)}}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,d);this.showDialog(a.container,380,e?280:160,!0,
+!0);a.init()};EditorUi.prototype.exportFile=function(a,b,c,d,e,f){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,e,f,g){if(this.spinner.spin(document.body,mxResources.get("export"))){var q=this.editor.graph.isSelectionEmpty();c=null!=c?c:q;q=b?null:this.editor.graph.background;q==mxConstants.NONE&&(q=null);null==q&&!1==b&&(q="#ffffff");var v=this.editor.graph.getSvg(q,a,null,g,null,c);d&&this.editor.addSvgShadow(v);a=this.getCurrentFile();var u=
+null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;a=u.lastIndexOf(".");0<a&&(u=u.substring(0,a));var u=u+".svg",x=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,null,null,null,c));var b='\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(u,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},
+mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,v,!1,mxUtils.bind(this,function(){f?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(v,x,this.thumbImageCache)):x(v)}))}};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";f.setAttribute("type","checkbox");d.isSelectionEmpty()&&
+f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));mxUtils.br(e);var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),null,a,b);this.showDialog(a.container,300,120,
+!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e){var f=this.editor.graph,g=document.createElement("div");g.style.paddingTop="20px";g.style.paddingRight="8px";var q=240,v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("type","checkbox");if(f.background==mxConstants.NONE||null==f.background)v.setAttribute("checked","checked"),v.defaultChecked=!0;g.appendChild(v);mxUtils.write(g,mxResources.get("transparentBackground"));mxUtils.br(g);var u=document.createElement("input");
+u.style.marginTop="16px";u.style.marginRight="8px";u.setAttribute("type","checkbox");g.appendChild(u);mxUtils.write(g,mxResources.get("selectionOnly"));mxUtils.br(g);var x=document.createElement("input");x.style.marginTop="16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");e&&(g.appendChild(x),mxUtils.write(g,mxResources.get("crop")),mxUtils.br(g),q+=26);f.isSelectionEmpty()&&(u.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"));var A=document.createElement("input");
+A.style.marginTop="16px";A.style.marginRight="8px";A.setAttribute("type","checkbox");g.appendChild(A);mxUtils.write(g,mxResources.get("shadow"));mxUtils.br(g);f.shadowVisible&&(A.setAttribute("checked","checked"),A.defaultChecked=!0);var z=document.createElement("input");z.style.marginTop="16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");(this.isOffline()||!this.canvasSupported)&&z.setAttribute("disabled","disabled");a&&(g.appendChild(z),mxUtils.write(g,mxResources.get("embedImages")),
+mxUtils.br(g),q+=26);var y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight="8px";y.setAttribute("type","checkbox");y.style.marginBottom="8px";y.setAttribute("checked","checked");y.defaultChecked=!0;g.appendChild(y);mxUtils.write(g,mxResources.get("includeCopyOfMyDiagram"));a=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,v.checked,!u.checked,A.checked,y.checked,z.checked,x.checked)}),mxResources.get("zoom")+" (%)",null,g,!this.isOffline()?c:null);this.showDialog(a.container,
+320,q,!0,!0);a.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop="20px";c.style.paddingRight="8px";var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),q=document.createElement("td"),v=document.createElement("input");v.setAttribute("type","text");mxUtils.write(q,"Username:");g.appendChild(q);q=q.cloneNode(!1);q.appendChild(v);g.appendChild(q);f.appendChild(g);var q=
+q.cloneNode(!1),u=document.createElement("input");u.setAttribute("type","password");mxUtils.write(q,"Password:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(u);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),x=document.createElement("input");x.setAttribute("type","text");mxUtils.write(q,"Organisation:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(x);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),A=document.createElement("input");A.setAttribute("type",
+"text");mxUtils.write(q,"Repository:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(A);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),z=document.createElement("input");z.setAttribute("type","text");mxUtils.write(q,"Path:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(z);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var y=a.lastIndexOf(".");0<y&&(a=a.substring(0,
+y));z.value=a+".png";var D=document.createElement("input");D.setAttribute("type","text");mxUtils.write(q,"Branch/Tag:");D.value="master";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(D);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),B=document.createElement("input");B.setAttribute("type","text");mxUtils.write(q,"Message:");B.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(B);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);
+e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+x.value+"/"+A.value+"/contents/"+z.value+"?ref\x3d"+encodeURIComponent(D.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());var e={path:z.value,message:B.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==
+f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+x.value+"/"+A.value+"/blob/"+D.value+"/"+z.value;var b=new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,
+170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+btoa(v.value+":"+u.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};
+EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause();c=!1;var f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,
+g=f.lastIndexOf("."),v=f;0<g&&(v=f=v.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:v+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),u=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+
+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+
+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var l=new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");l.send(mxUtils.bind(this,
+function(){200==l.getStatus()?k():u(l)}),mxUtils.bind(this,function(){u(l)}))}else k()}catch(p){this.handleError(p)}else u(a)}),mxUtils.bind(this,function(a){u(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,q){d=parseInt(d);
+if(!isNaN(d)&&0<d){d/=100;var v=this.editor.graph.isSelectionEmpty();f=null!=f?f:v;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=q?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,e);a(c,g.substring(g.lastIndexOf(",")+1),q,b)}catch(m){this.handleError(m)}}),null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(u){this.handleError(u)}}})):this.showRemoteExportDialog(mxResources.get("publish"),
+"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var q=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));q.send(mxUtils.bind(this,function(){200==q.getStatus()?a(c,q.getText(),
+e,b):this.handleError(q)}))}catch(v){this.handleError(v)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");
+b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':
+"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,f){if(this.spinner.spin(document.body,mxResources.get("exporting"))){var g=this.editor.graph.isSelectionEmpty();c=null!=c?c:g;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();
+try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c):null)}catch(b){"Invalid image"==b.message?this.downloadFile("png"):this.handleError(b)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,d,null,null,null,f)}catch(q){this.spinner.stop(),this.handleError(q)}}};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,q,v,u,x,A,z,y){f=null!=f?f:!0;A=null!=A?A:this.editor.graph;z=null!=z?z:0;var D=v?null:A.background;D==
+mxConstants.NONE&&(D=null);null==D&&(D=d);null==D&&!1==v&&(D="#ffffff");this.convertImages(A.getSvg(D,null,null,y,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));q=null!=q?q:1;null!=b&&(q=!f?b/g:Math.min(1,Math.min(3*b/(4*m),b/g)));g=Math.ceil(q*g)+2*z;m=Math.ceil(q*m)+2*z;e.setAttribute("width",g);e.setAttribute("height",m);var n=e.getContext("2d");
+null!=D&&(n.beginPath(),n.rect(0,0,g,m),n.fillStyle=D,n.fill());n.scale(q,q);n.drawImage(d,z/q,z/q);a(e)});d.onerror=function(a){null!=e&&e(a)};try{u&&this.editor.addSvgShadow(c),this.convertMath(A,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,x)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==
+c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var n=a.getElementsByTagName(c),u=0;u<n.length;u++)mxUtils.bind(this,function(c){var n=d.convert(c.getAttribute(g));if(null!=n&&"data:"!=n.substring(0,5)){var u=
+f[n];null==u?(e++,this.convertImageToDataUri(n,function(d){null!=d&&(f[n]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,u)}})(n[u])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=
+c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var q=mxUtils.parseXml(a),v=this.editor.extractGraphModel(q.documentElement,null!=this.pages);if(null!=v&&"mxfile"==v.nodeName&&null!=this.pages){var u=v.getElementsByTagName("diagram");if(1==u.length)v=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(u[0]))).documentElement;else if(1<
+u.length){g.model.beginUpdate();try{for(var x=0;x<u.length;x++){var A=this.updatePageRoot(new DiagramPage(u[x])),z=this.pages.length;null==A.getName()&&A.setName(mxResources.get("pageWithNumber",[z+1]));g.model.execute(new ChangePage(this,A,A,z))}}finally{g.model.endUpdate()}}}if(null!=v&&"mxGraphModel"===v.nodeName){var y=new mxGraphModel;(new mxCodec(v.ownerDocument)).decode(v,y);var D=y.getChildCount(y.getRoot());g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};for(x=0;x<
+D;x++){var B=y.getChildAt(y.getRoot(),x);if(1==D&&!g.isCellLocked(g.getDefaultParent()))var C=y.getChildren(B),f=f.concat(g.importCells(C,b,c,g.getDefaultParent(),null,a));else B=g.importCells([B],0,0,g.model.getRoot(),null,a)[0],C=g.model.getChildren(B),g.moveCells(C,b,c),f=f.concat(C)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var F=g.getBoundingBoxFromGeometry(f,!0);null!=F&&g.moveCells(f,b-F.x,c-F.y)}}finally{g.model.endUpdate()}}}}catch(H){throw e||this.handleError(H,mxResources.get("invalidOrMissingFile")),
+H;}return f};EditorUi.prototype.insertLucidChart=function(a,b,c,d){var e=mxUtils.bind(this,function(){if(this.pasteLucidChart)try{this.pasteLucidChart(a,b,c,d)}catch(e){}});!this.pasteLucidChart&&!this.loadingExtensions&&!this.isOffline()?(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("/js/diagramly/Extensions.js",e):mxscript("/js/extensions.min.js",e)):window.setTimeout(e,0)};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&
+(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var q=this.extractGraphModelFromPng(a),v=this.importXml(q,
+b,c,f,!0);if(0<v.length)return v}if("data:image/svg+xml;"==a.substring(0,19))try{if(q=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(q=a.substring(a.indexOf(",")+1),q=window.atob&&!mxClient.IS_SF?atob(q):Base64.decode(q,!0)):q=decodeURIComponent(a.substring(a.indexOf(",")+1)),v=this.importXml(q,b,c,f,!0),0<v.length)return v}catch(u){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,
+null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+
+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length)if('{"state":"{\\"Properties\\":'==a.substring(0,26)){e=
+JSON.parse(JSON.parse(a).state);var q=null,x;for(x in e.Pages)if(v=e.Pages[x],null!=v&&"0"==v.Properties.Order){q=v;break}null!=q&&this.insertLucidChart(q,b,c,f)}else{g=this.editor.graph;f=null;g.getModel().beginUpdate();try{f=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[f])),f.value=a,g.updateCellSize(f),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(f.value)&&
+g.setLinkForCell(f,f.value),f.geometry.width+=g.gridSize,f.geometry.height+=g.gridSize}finally{g.getModel().endUpdate()}return[f]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=
+function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,q,v,u,x){u=null!=u?u:!0;var A=!1,z=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=x?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(z=this.importXml(b,c,d,u),g=!0)),g||(z=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+
+1))),u&&z.isGridEnabled()&&(c=z.snap(c),d=z.snap(d)),z=[z.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(A=!0,this.parseFile(null!=v?v:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,
+c,d,u));null!=q&&q(b)}}),g)):/(\.vsd)($|\?)/i.test(g)||(z=this.insertTextAt(this.validateFileData(a),c,d,!0,null,u));!A&&null!=q&&q(z);return z};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);b+="\x3d";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>
+6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,q,v,u,x,A){var z=null!=b&&null!=c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;u=null!=u?u:this.maxImageBytes;v=null!=v?v:!0;var y=this.editor.graph,D=y.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):
+this.importFile(a,b,c,d,e,f,g,k,l,z,A)});f=null!=f?f:mxUtils.bind(this,function(a){y.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var B=a.length,C=B,F=[],H=mxUtils.bind(this,function(a,b){F[a]=b;if(0==--C){this.spinner.stop();if(null!=q)q(F);else{var c=[];y.getModel().beginUpdate();try{for(var d=0;d<F.length;d++){var e=F[d]();null!=e&&(c=c.concat(e))}}finally{y.getModel().endUpdate()}}f(c)}}),G=0;G<B;G++)mxUtils.bind(this,function(f){var q=a[f],s=new FileReader;
+s.onload=mxUtils.bind(this,function(a){if(null==g||g(q))if("image/"==q.type.substring(0,6))if("image/svg"==q.type.substring(0,9)){var k=a.target.result,s=k.indexOf(","),z=atob(k.substring(s+1)),y=mxUtils.parseXml(z),z=y.getElementsByTagName("svg");if(0<z.length){var z=z[0],B=A?null:z.getAttribute("content");null!=B&&("\x3c"!=B.charAt(0)&&"%"!=B.charAt(0))&&(B=unescape(window.atob?atob(B):Base64.decode(B,!0)));null!=B&&"%"==B.charAt(0)&&(B=decodeURIComponent(B));null!=B&&("\x3cmxfile "===B.substring(0,
+8)||"\x3cmxGraphModel "===B.substring(0,14))?H(f,mxUtils.bind(this,function(){return e(B,"text/xml",b+f*D,c+f*D,0,0,q.name)})):H(f,mxUtils.bind(this,function(){try{if(k.substring(0,s+1),null!=y){var a=y.getElementsByTagName("svg");if(0<a.length){var g=a[0],u=parseFloat(g.getAttribute("width")),v=parseFloat(g.getAttribute("height")),x=g.getAttribute("viewBox");if(null==x||0==x.length)g.setAttribute("viewBox","0 0 "+u+" "+v);else if(isNaN(u)||isNaN(v)){var t=x.split(" ");3<t.length&&(u=parseFloat(t[2]),
+v=parseFloat(t[3]))}k=this.createSvgDataUri(mxUtils.getXml(a[0]));var A=Math.min(1,Math.min(d/Math.max(1,u)),d/Math.max(1,v));return e(k,q.type,b+f*D,c+f*D,Math.max(1,Math.round(u*A)),Math.max(1,Math.round(v*A)),q.name)}}}catch(z){}return null}))}}else{z=!1;if("image/png"==q.type){var C=A?null:this.extractGraphModelFromPng(a.target.result);if(null!=C&&0<C.length){var G=new Image;G.src=a.target.result;H(f,mxUtils.bind(this,function(){return e(C,"text/xml",b+f*D,c+f*D,G.width,G.height,q.name)}));z=
+!0}}z||(null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,k,x){H(f,mxUtils.bind(this,function(){if(null!=
+g&&g.length<u){var s=!v||!this.isResampleImage(a.target.result)?1:Math.min(1,Math.min(d/k,d/x));return e(g,q.type,b+f*D,c+f*D,Math.round(k*s),Math.round(x*s),q.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),v,d,x)})))}else e(a.target.result,q.type,b+f*D,c+f*D,240,160,q.name,function(a){H(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(q.name)?e(null,q.type,b+f*D,c+f*D,240,160,q.name,function(a){H(f,function(){return a})},q):"image"==q.type.substring(0,5)?s.readAsDataURL(q):
+s.readAsText(q)})(G)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),q=Math.max(1,a.height);if(d&&this.isResampleImage(b,
+f))try{var v=Math.max(g/e,q/e);if(1<v){var u=Math.round(g/v),x=Math.round(q/v),A=document.createElement("canvas");A.width=u;A.height=x;A.getContext("2d").drawImage(a,0,0,u,x);var z=A.toDataURL();if(z.length<b.length){var y=document.createElement("canvas");y.width=u;y.height=x;var D=y.toDataURL();z!==D&&(b=z,g=u,q=x)}}}catch(B){}c(b,g,q)};EditorUi.prototype.crcTable=[];for(var c=0;256>c;c++)for(var f=c,d=0;8>d;d++)f=1==(f&1)?3988292384^f>>>1:f>>>1,EditorUi.prototype.crcTable[c]=f;EditorUi.prototype.updateCRC=
+function(a,b,c,d){for(var e=0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=q;q+=b;return a.substring(c,q)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var q=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,
+4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,q);do{var v=g(a);if("IDAT"==f(a,4)){e=a.substring(0,q-8);v=4294967295;v=this.updateCRC(v,b,0,4);v=this.updateCRC(v,d,0,d.length);e+=String.fromCharCode(c.length+d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((v^4294967295)>>24&255,(v^4294967295)>>
+16&255,(v^4294967295)>>8&255,(v^4294967295)&255);e+=a.substring(q-8,a.length);break}e+=a.substring(q-8,q-4+v);d=f(a,v);f(a,4)}while(v);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),
+"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=
+c);d.src=a};var b=EditorUi.prototype.init;EditorUi.prototype.init=function(){b.apply(this,arguments);var a=this.editor.graph,c=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");var d=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=c.currentPage?c.currentPage.getName():"pagenumber"==a?null!=c.currentPage&&null!=c.pages?mxUtils.indexOf(c.pages,c.currentPage)+1:1:d.apply(this,arguments)};
+this.editor.getOrCreateFilename=function(){var a=c.defaultFilename,b=c.getCurrentFile();null!=b&&(a=null!=b.getTitle()?b.getTitle():a);return a};var e=this.actions.get("print");e.setEnabled(!mxClient.IS_IOS||!navigator.standalone);e.visible=e.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(70,!0,"find");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);mxClient.IS_IE||a.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],
+0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(l){}}),!1);var f=document.createElement("div");f.style.position="absolute";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.display="block";f.contentEditable=!0;mxUtils.setOpacity(f,
+0);f.style.width="1px";f.style.height="1px";f.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);if(null!=a.container&&a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&
+!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var t=function(){window.setTimeout(function(){f.innerHTML="\x26nbsp;";f.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,
+function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&(null==this.dialog&&null!=a.container)&&a.container.focus(),f.parentNode.removeChild(f)}),0)}));mxEvent.addListener(f,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(f),t())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,function(b){a.isEnabled()&&(this.copyCells(f,!0),t())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML=
+"\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var q=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:q.apply(this,arguments)}}e=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,e,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=
+this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||10<document.documentMode))d=this.highlightElement(c);a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,
+0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,
+Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){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(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var v=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:v.apply(this,arguments)}}e=document.getElementById("geInfo");
+null!=e&&e.parentNode.removeChild(e);if(Graph.fileSupport){var u=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=u&&(u.parentNode.removeChild(u),u=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==u&&(!mxClient.IS_IE||10<document.documentMode))u=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,
+"drop",mxUtils.bind(this,function(b){null!=u&&(u.parentNode.removeChild(u),u=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b));else{var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?
+b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,m=e.getElementsByTagName("img");null!=m&&1==m.length?(c=m[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));
+a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+
+l+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(l,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,g,!0))}}b.stopPropagation();b.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode()};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),
+e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d=c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&
+(this.insertLucidChart(JSON.parse(d)),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var g=e.lastIndexOf("%3E");0<=g&&g<e.length-3&&(e=e.substring(0,g+3))}catch(q){}try{var c=b.getElementsByTagName("span"),v=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(v)&&(f=!0,e=v)}catch(u){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=
+e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))),!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(x){}}}}};
+EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,
+function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=
+null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&this.openLocalFile(d)),
+!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=
+0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,
+e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,
+mxResources.get("loading")))for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){var c=b.target.result,d=a.name;if(null!=d&&0<d.length)if(/(\.png)$/i.test(d)&&(d=d.substring(0,d.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,d))d=0<=d.lastIndexOf(".")?d.substring(0,d.lastIndexOf("."))+".xml":d+".xml",this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),
+200==a.status?this.openLocalFile(a.responseText,d):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if("\x3cmxlibrary"==b.target.result.substring(0,10)){this.spinner.stop();try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,
+d)});b.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?b.readAsDataURL(a):b.readAsText(a)})(a[b])};EditorUi.prototype.openLocalFile=function(a,b){var c=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,
+a,b||this.defaultFilename))});null!=a&&0<a.length&&(null!=this.getCurrentFile()&&!this.isDiagramEmpty()?(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,c)):c())};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);
+var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var d=a.lastIndexOf(".");0<d&&(a=a.substring(d+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=
+0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.initializeEmbedMode=function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.editor.graph.setEnabled(!1);if((window.opener||window.parent)!=window)("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.diagramContainer.style.visibility=
+"";this.formatContainer.style.visibility="";this.editor.graph.setEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.showLayersDialog()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&
+(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,f=mxUtils.bind(this,function(a,b){!this.editor.modified||"0"==urlParams.modified?
+this.editor.setStatus(""):null!=urlParams.modified&&this.editor.setStatus(mxResources.get(urlParams.modified))});this.editor.graph.model.addListener(mxEvent.CHANGE,f);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){function v(a){if(null!=a&&"function"===typeof a.charAt&&"\x3c"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):
+"\x3c"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(b){}return a}var u=f.data;if("json"==urlParams.proto){try{u=JSON.parse(u)}catch(x){u=null}if(null==u)return;if("dialog"==u.action){this.showError(null!=u.titleKey?mxResources.get(u.titleKey):u.title,null!=u.messageKey?mxResources.get(u.messageKey):u.message,null!=u.buttonKey?mxResources.get(u.buttonKey):u.button);null!=u.modified&&(this.editor.modified=u.modified);return}if("prompt"==u.action){var s=new FilenameDialog(this,u.defaultValue||
+"",null!=u.okKey?mxResources.get(u.okKey):null,function(a){null!=a&&g.postMessage(JSON.stringify({event:"prompt",value:a,message:u}),"*")},null!=u.titleKey?mxResources.get(u.titleKey):u.title);this.showDialog(s.container,300,80,!0,!1);s.init();return}if("draft"==u.action){s=null;s="data:image/png;base64,"==u.xml.substring(0,22)?this.extractGraphModelFromPng(u.xml):v(u.xml);s=new DraftDialog(this,mxResources.get("draftFound",[u.name||this.defaultFilename]),s,mxUtils.bind(this,function(){this.hideDialog();
+g.postMessage(JSON.stringify({event:"draft",result:"edit",message:u}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"discard",message:u}),"*")}),u.editKey?mxResources.get(u.editKey):null,u.discardKey?mxResources.get(u.discardKey):null);this.showDialog(s.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{s.init()}catch(z){g.postMessage(JSON.stringify({event:"draft",error:z.toString(),message:u}),
+"*")}return}if("template"==u.action){s=new NewDialog(this,!1,null!=u.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=u.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}));this.showDialog(s.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));s.init();return}if("status"==u.action){null!=u.messageKey?
+this.editor.setStatus(mxResources.get(u.messageKey)):null!=u.message&&this.editor.setStatus(u.message);null!=u.modified&&(this.editor.modified=u.modified);return}if("spinner"==u.action){var y=null!=u.messageKey?mxResources.get(u.messageKey):u.message;null!=u.show&&!u.show?this.spinner.stop():this.spinner.spin(document.body,y);return}if("export"==u.action){if("png"==u.format||"xmlpng"==u.format){if(null==u.spin&&null==u.spinKey||this.spinner.spin(document.body,null!=u.spinKey?mxResources.get(u.spinKey):
+u.spin)){var D=null!=u.xml?u.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var B=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=u.format;b.xml=encodeURIComponent(D);b.data="data:image/png;base64,"+a;g.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var C=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var C=this.createTemporaryGraph(C.getStylesheet()),F=C.getGlobalVariable,H=this.pages[0];
+C.getGlobalVariable=function(a){return"page"==a?H.getName():"pagenumber"==a?1:F.apply(this,arguments)};document.body.appendChild(C.container);C.model.setRoot(H.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");"xmlpng"==u.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(D))));C!=this.editor.graph&&C.container.parentNode.removeChild(C.container);B(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,
+null,null,C)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==u.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(D)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();200==a.getStatus()&&B(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=u.xml&&0<u.xml.length&&this.setFileData(u.xml);y=this.createLoadMessage("export");if("html2"==u.format||"html"==u.format&&("0"!=urlParams.pages||
+null!=this.pages&&1<this.pages.length))s=this.getXmlFileData(),y.xml=mxUtils.getXml(s),y.data=this.getFileData(null,null,!0,null,null,null,s),y.format=u.format;else if("html"==u.format)D=this.editor.getGraphXml(),y.data=this.getHtml(D,this.editor.graph),y.xml=mxUtils.getXml(D),y.format=u.format;else{mxSvgCanvas2D.prototype.foAltText=null;s=this.editor.graph.background;s==mxConstants.NONE&&(s=null);y.xml=this.getFileData(!0);y.format="svg";if(u.embedImages||null==u.embedImages){if(null==u.spin&&null==
+u.spinKey||this.spinner.spin(document.body,null!=u.spinKey?mxResources.get(u.spinKey):u.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==u.format?this.getEmbeddedSvg(y.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();y.data=this.createSvgDataUri(a);g.postMessage(JSON.stringify(y),"*")})):this.convertImages(this.editor.graph.getSvg(s),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();y.data=this.createSvgDataUri(mxUtils.getXml(a));
+g.postMessage(JSON.stringify(y),"*")}));return}s="xmlsvg"==u.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(s));y.data=this.createSvgDataUri(s)}g.postMessage(JSON.stringify(y),"*")}return}if("load"==u.action)d=1==u.autosave,this.hideDialog(),null!=u.modified&&null==urlParams.modified&&(urlParams.modified=u.modified),null!=u.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=u.saveAndExit),null!=u.title&&null!=this.buttonContainer&&
+(s=document.createElement("span"),mxUtils.write(s,u.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),this.buttonContainer.appendChild(s)),u=null!=u.xmlpng?this.extractGraphModelFromPng(u.xmlpng):null!=u.xml&&"data:image/png;base64,"==u.xml.substring(0,22)?this.extractGraphModelFromPng(u.xml):u.xml;else{g.postMessage(JSON.stringify({error:"unknownMessage",
+data:JSON.stringify(u)}),"*");return}}u=v(u);c=!0;try{a(u,f)}catch(G){this.handleError(G)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var I=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=I();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=I();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,
+"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",
+b),this.addListener("pageViewChanged",b));("1"==urlParams.returnbounds||"json"==urlParams.proto)&&g.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}));var g=window.opener||window.parent,f="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";g.postMessage(f,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?
+"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" (Ctrl+S)");b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,
+mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding=
+"4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px";"atlas"==uiTheme&&(this.statusContainer.style.color="#707070",this.statusContainer.style.paddingLeft="26px",this.toolbar.staticElements.push(this.statusContainer),this.toolbar.container.appendChild(this.statusContainer))}};EditorUi.prototype.getSearch=
+function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"\x3d"+urlParams[d],c="\x26")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),
d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"\x26",null!=urlParams[d]&&(a+=d+"\x3d"+urlParams[d],b++))}return a};var e=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=e.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-
2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var f=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return f.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&
null!=this.source.minimumGraphSize){var d=this.source.getPagePadding(),e=Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2),f=Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2);return new mxPoint(Math.round(e-d.x),Math.round(f-d.y-5/a))}return new mxPoint(8/a,8/a)};var g=b.init;b.init=function(){g.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*
diff --git a/war/js/atlas-viewer.min.js b/war/js/atlas-viewer.min.js
index 15bccea6..ca7b2099 100644
--- a/war/js/atlas-viewer.min.js
+++ b/war/js/atlas-viewer.min.js
@@ -3,7 +3,7 @@ var mxBasePath="https://www.draw.io/mxgraph/",mxLoadStylesheets=!1;!function(a,b
c[d])}return a}function g(a){this.opts=f(a||{},g.defaults,s)}function k(){function c(b,d){return a("\x3c"+b+' xmlns\x3d"urn:schemas-microsoft.com:vml" class\x3d"spin-vml"\x3e',d)}p.addRule(".spin-vml","behavior:url(#default#VML)");g.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:n+" "+n,coordorigin:-l+" "+-l}),{width:n,height:n})}function k(a,g,n){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~g}),b(e(c("roundrect",{arcsize:d.corners}),{width:l,height:d.width,left:d.radius,
top:-d.width>>1,filter:n}),c("fill",{color:"string"==typeof d.color?d.color:d.color[a%d.color.length],opacity:d.opacity}),c("stroke",{opacity:0}))))}var g,l=d.length+d.width,n=2*l;g=2*-(d.width+d.length)+"px";var m=e(f(),{position:"absolute",top:g,left:g});if(d.shadow)for(g=1;g<=d.lines;g++)k(g,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius\x3d2,makeshadow\x3d1,shadowopacity\x3d.3)");for(g=1;g<=d.lines;g++)k(g);return b(a,m)};g.prototype.opacity=function(a,b,c,d){a=a.firstChild;d=d.shadow&&
d.lines||0;a&&b+d<a.childNodes.length&&(a=a.childNodes[b+d],a=a&&a.firstChild,a=a&&a.firstChild,a&&(a.opacity=c))}}var l,n=["webkit","Moz","ms","O"],m={},p=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),s={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:0.25,fps:20,zIndex:2E9,className:"spinner",top:"50%",left:"50%",position:"absolute"};g.defaults={};f(g.prototype,
-{spin:function(b){this.stop();var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width;if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!l){var g,k=0,n=(d.lines-1)*(1-d.direction)/2,m=d.fps,p=m/d.speed,r=(1-d.opacity)/(p*d.trail/100),s=p/d.lines;!function G(){k++;for(var a=0;a<d.lines;a++)g=Math.max(1-(k+(d.lines-a)*s)%p*r,d.opacity),c.opacity(f,
+{spin:function(b){this.stop();var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width;if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!l){var g,k=0,n=(d.lines-1)*(1-d.direction)/2,m=d.fps,p=m/d.speed,s=(1-d.opacity)/(p*d.trail/100),r=p/d.lines;!function G(){k++;for(var a=0;a<d.lines;a++)g=Math.max(1-(k+(d.lines-a)*r)%p*s,d.opacity),c.opacity(f,
a*d.direction+n,g,d);c.timeout=c.el&&setTimeout(G,~~(1E3/m))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function g(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*n+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var k,
n=0,m=(f.lines-1)*(1-f.direction)/2;n<f.lines;n++)k=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:l&&c(f.opacity,f.trail,m+n*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(k,e(g("#000","0 0 4px #000"),{top:"2px"})),b(d,b(k,g("string"==typeof f.color?f.color:f.color[n%f.color.length],"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});
var r=e(a("group"),{behavior:"url(#default#VML)"});return!d(r,"transform")&&r.adj?k():l=d(r,"animation"),g});(function(){var a=void 0,b=!0,c=null,d=!1,e=["aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkkhaki darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen darkslateblue darkslategray darkturquoise darkviolet deeppink deepskyblue dimgray dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite gold goldenrod gray green greenyellow honeydew hotpink indianred indigo ivory khaki lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan lightgoldenrodyellow lightgreen lightgrey lightpink lightsalmon lightseagreen lightskyblue lightslategray lightsteelblue lightyellow lime limegreen linen magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum powderblue purple red rosybrown royalblue saddlebrown salmon sandybrown seagreen seashell sienna silver skyblue slateblue slategray snow springgreen steelblue tan teal thistle tomato transparent turquoise violet wheat white whitesmoke yellow yellowgreen".split(" "),
@@ -35,7 +35,7 @@ e[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup
"rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay",
"translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},g;for(g in f)"string"===typeof f[g]&&Object.hasOwnProperty.call(f,g)&&(f[g]=f[f[g]]);"undefined"!==typeof window&&(window.cssSchema=f);var k,l;(function(){function a(b){var c=parseInt(b.substring(1),16);return 65535<c?(c-=65536,String.fromCharCode(55296+(c>>10),56320+(c&1023))):c==c?String.fromCharCode(c):" ">b[1]?"":b[1]}function b(a,c){return'"'+a.replace(/[\u0000-\u001f\\\"<>]/g,
c)+'"'}function c(a){return e[a]||(e[a]="\\"+a.charCodeAt(0).toString(16)+" ")}function d(a){return f[a]||(f[a]=("\u0010">a?"%0":"%")+a.charCodeAt(0).toString(16))}var e={"\\":"\\\\"},f={"\\":"%5c"},g=RegExp("\\uFEFF|U[+][0-9A-F?]{1,6}(?:-[0-9A-F]{1,6})?|url[(][\\t\\n\\f ]*(?:\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|(?:[\\t\\x21\\x23-\\x26\\x28-\\x5b\\x5d-\\x7e]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)[\\t\\n\\f ]*[)]|(?!url[(])-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*[(]|(?:@?-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))|#)(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*|\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|[-+]?(?:[0-9]+(?:[.][0-9]+)?|[.][0-9]+)(?:%|-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)?|\x3c!--|--\x3e|[\\t\\n\\f ]+|/(?:[*][^*]*[*]+(?:[^/][^*]*[*]+)*/|/[^\\n\\f]*)|[~|^$*]\x3d|[^\"'\\\\/]|/(?![/*])",
-"gi"),n=RegExp("\\\\(?:(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff])|[\\n\\f])","g"),m=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");l=function(b){return b.replace(n,a)};k=function(a){a=(""+a).replace(/\r\n?/g,"\n").match(g)||[];for(var e=0,f=" ",k=0,n=a.length;k<n;++k){var p=l(a[k]),q=p.length,r=p.charCodeAt(0),p=34==r||39==r?b(p.substring(1,q-1),c):47==r&&1<q||"\\"==p||"--\x3e"==p||"\x3c!--"==p||"\ufeff"==
+"gi"),n=RegExp("\\\\(?:(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff])|[\\n\\f])","g"),m=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");l=function(b){return b.replace(n,a)};k=function(a){a=(""+a).replace(/\r\n?/g,"\n").match(g)||[];for(var e=0,f=" ",k=0,n=a.length;k<n;++k){var p=l(a[k]),s=p.length,r=p.charCodeAt(0),p=34==r||39==r?b(p.substring(1,s-1),c):47==r&&1<s||"\\"==p||"--\x3e"==p||"\x3c!--"==p||"\ufeff"==
p||32>=r?" ":/url\(/i.test(p)?"url("+b(p.replace(m,""),d)+")":p;if(f!=p||" "!=p)a[e++]=f=p}a.length=e;return a}})();"undefined"!==typeof window&&(window.lexCss=k,window.decodeCss=l);var n=function(){function a(b){b=(""+b).match(m);return!b?c:new k(g(b[1]),g(b[2]),g(b[3]),g(b[4]),g(b[5]),g(b[6]),g(b[7]))}function b(a,e){return"string"==typeof a?encodeURI(a).replace(e,d):c}function d(a){a=a.charCodeAt(0);return"%"+"0123456789ABCDEF".charAt(a>>4&15)+"0123456789ABCDEF".charAt(a&15)}function e(a){if(a===
c)return c;a=a.replace(/(^|\/)\.(?:\/|$)/g,"$1").replace(/\/{2,}/g,"/");for(var b=l,d;(d=a.replace(b,"$1"))!=a;a=d);return a}function f(a,b){var c=a.T(),d=b.K();d?c.ga(b.j):d=b.X();d?c.da(b.n):d=b.Y();d?c.ea(b.k):d=b.$();var k=b.g,g=e(k);if(d)c.ca(b.V()),g=g&&g.replace(n,"");else if(d=!!k){if(47!==g.charCodeAt(0))var g=e(c.g||"").replace(n,""),l=g.lastIndexOf("/")+1,g=e((l?g.substring(0,l):"")+e(k)).replace(n,"")}else g=g&&g.replace(n,""),g!==k&&c.G(g);d?c.G(g):d=b.aa();d?c.O(b.l):d=b.Z();d&&c.fa(b.o);
return c}function k(a,b,c,d,e,f,g){this.j=a;this.n=b;this.k=c;this.h=d;this.g=e;this.l=f;this.o=g}function g(a){return"string"==typeof a&&0<a.length?a:c}var l=RegExp(/(\/|^)(?:[^./][^/]*|\.{2,}(?:[^./][^/]*)|\.{3,}[^/]*)\/\.\.(?:\/|$)/),n=/^(?:\.\.\/)*(?:\.\.$)?/;k.prototype.toString=function(){var a=[];c!==this.j&&a.push(this.j,":");c!==this.k&&(a.push("//"),c!==this.n&&a.push(this.n,"@"),a.push(this.k),c!==this.h&&a.push(":",this.h.toString()));c!==this.g&&a.push(this.g);c!==this.l&&a.push("?",
@@ -44,21 +44,21 @@ function(){return this.h&&decodeURIComponent(this.h)};k.prototype.ca=function(a)
!(a instanceof Array)&&(a instanceof Object||"[object Array]"!==Object.prototype.toString.call(a))){var b=[],c=-1,d;for(d in a){var e=a[d];"string"===typeof e&&(b[++c]=d,b[++c]=e)}a=b}for(var b=[],c="",f=0;f<a.length;)d=a[f++],e=a[f++],b.push(c,encodeURIComponent(d.toString())),c="\x26",e&&b.push("\x3d",encodeURIComponent(e.toString()));this.l=b.join("")};k.prototype.fa=function(a){this.o=a?a:c};k.prototype.Z=function(){return c!==this.o};var m=/^(?:([^:/?#]+):)?(?:\/\/(?:([^/?#]*)@)?([^/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/,
p=/[#\/\?@]/g,r=/[\#\?]/g;k.parse=a;k.create=function(a,e,f,g,l,n,m){a=new k(b(a,p),b(e,p),"string"==typeof f?encodeURIComponent(f):c,0<g?g.toString():c,b(l,r),c,"string"==typeof m?encodeURIComponent(m):c);n&&("string"===typeof n?a.O(n.replace(/[^?&=0-9A-Za-z_\-~.%]/g,d)):a.ba(n));return a};k.N=f;k.ma=e;k.ha={ua:function(b){return/\.html$/.test(a(b).U())?"text/html":"application/javascript"},N:function(b,c){return b?f(a(b),a(c)).toString():""+c}};return k}();"undefined"!==typeof window&&(window.URI=
n);var m=a,p=a,s=a,r=a;(function(){function e(a){return"string"===typeof a?'url("'+a.replace(A,k)+'")':'url("about:blank")'}function k(a){return D[a]}function g(a,b){return a?n.ha.N(a,b):b}function t(a,b,d){if(!d)return c;var e=(""+a).match(C);return e&&(!e[1]||F.test(e[1]))?d(a,b):c}function E(a){return a.replace(/^-(?:apple|css|epub|khtml|moz|mso?|o|rim|wap|webkit|xv)-(?=[a-z])/,"")}var A=/[\n\f\r\"\'()*<>]/g,D={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a",
-"\x3c":"%3c","\x3e":"%3e"},C=/^(?:([^:/?# ]+):)?/,F=/^(?:https?|mailto|data)$/i;m=function(){var a={};return function S(b,c,d,k,n){b=E(b);var m=f[b];if(!m||"object"!==typeof m)c.length=0;else{for(var p=m.cssPropBits,r=p&80,q=p&1536,s=NaN,G=0,u=0;G<c.length;++G){var C=c[G].toLowerCase(),v=C.charCodeAt(0),F,H,D,A,Q,ha;if(32===v)C="";else if(34===v)C=16===r?d?e(t(g(k,l(c[G].substring(1,C.length-1))),b,d)):"":p&8&&!(r&r-1)?C:"";else if("inherit"!==C){if(Q=m.cssLitGroup){var ea;if(!(ea=m.cssLitMap)){ea=
+"\x3c":"%3c","\x3e":"%3e"},C=/^(?:([^:/?# ]+):)?/,F=/^(?:https?|mailto|data)$/i;m=function(){var a={};return function S(b,c,d,k,n){b=E(b);var m=f[b];if(!m||"object"!==typeof m)c.length=0;else{for(var p=m.cssPropBits,r=p&80,s=p&1536,q=NaN,G=0,u=0;G<c.length;++G){var C=c[G].toLowerCase(),v=C.charCodeAt(0),F,H,D,A,Q,ha;if(32===v)C="";else if(34===v)C=16===r?d?e(t(g(k,l(c[G].substring(1,C.length-1))),b,d)):"":p&8&&!(r&r-1)?C:"";else if("inherit"!==C){if(Q=m.cssLitGroup){var ea;if(!(ea=m.cssLitMap)){ea=
{};for(var V=Q.length;0<=--V;)for(var ga=Q[V],ka=ga.length;0<=--ka;)ea[ga[ka]]=a;ea=m.cssLitMap=ea}Q=ea}else Q=a;if(!(ha=Q,ha[E(C)]===a))if(35===v&&/^#(?:[0-9a-f]{3}){1,2}$/.test(C))C=p&2?C:"";else if(48<=v&&57>=v)C=p&1?C:"";else if(F=C.charCodeAt(1),H=C.charCodeAt(2),D=48<=F&&57>=F,A=48<=H&&57>=H,43===v&&(D||46===F&&A))C=p&1?(D?"":"0")+C.substring(1):"";else if(45===v&&(D||46===F&&A))C=p&4?(D?"-":"-0")+C.substring(1):p&1?"0":"";else if(46===v&&D)C=p&1?"0"+C:"";else if('url("'===C.substring(0,5))C=
-d&&p&16?e(t(g(k,c[G].substring(5,C.length-2)),b,d)):"";else if("("===C.charAt(C.length-1))a:{Q=c;ea=G;C=1;V=ea+1;for(v=Q.length;V<v&&C;)ga=Q[V++],C+=")"===ga?-1:/^[^"']*\($/.test(ga);if(!C){C=Q[ea].toLowerCase();v=E(C);Q=Q.splice(ea,V-ea,"");ea=m.cssFns;V=0;for(ga=ea.length;V<ga;++V)if(ea[V].substring(0,v.length)==v){Q[0]=Q[Q.length-1]="";S(ea[V],Q,d,k);C=C+Q.join(" ")+")";break a}}C=""}else C=q&&/^-?[a-z_][\w\-]*$/.test(C)&&!/__$/.test(C)?n&&512===q?c[G]+n:1024===q&&f[C]&&"number"===typeof f[C].oa?
-C:"":/^\w+$/.test(C)&&64===r&&p&8?s+1===u?(c[s]=c[s].substring(0,c[s].length-1)+" "+C+'"',""):(s=u,'"'+C+'"'):""}C&&(c[u++]=C)}1===u&&'url("about:blank")'===c[0]&&(u=0);c.length=u}}}();var G=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),
-H={};H["\x3e"]=H["+"]=H["~"]=H;p=function(a,e,f){function k(p,r){function q(c,f,k){var g,m,p,r,t,C=b;g="";if(c<f)if(t=a[c],"*"===t)++c,g=t;else if(/^[a-zA-Z]/.test(t)&&(m=n(t.toLowerCase(),[])))"tagName"in m&&(t=m.tagName),++c,g=t;for(r=p=m="";C&&c<f;++c)if(t=a[c],"#"===t.charAt(0))/^#_|__$|[^\w#:\-]/.test(t)?C=d:m+=t+l;else if("."===t)++c<f&&/^[0-9A-Za-z:_\-]+$/.test(t=a[c])&&!/^_|__$/.test(t)?m+="."+t:C=d;else if(c+1<f&&"["===a[c]){++c;var x=a[c++].toLowerCase();t=u.m[g+"::"+x];t!==+t&&(t=u.m["*::"+
+d&&p&16?e(t(g(k,c[G].substring(5,C.length-2)),b,d)):"";else if("("===C.charAt(C.length-1))a:{Q=c;ea=G;C=1;V=ea+1;for(v=Q.length;V<v&&C;)ga=Q[V++],C+=")"===ga?-1:/^[^"']*\($/.test(ga);if(!C){C=Q[ea].toLowerCase();v=E(C);Q=Q.splice(ea,V-ea,"");ea=m.cssFns;V=0;for(ga=ea.length;V<ga;++V)if(ea[V].substring(0,v.length)==v){Q[0]=Q[Q.length-1]="";S(ea[V],Q,d,k);C=C+Q.join(" ")+")";break a}}C=""}else C=s&&/^-?[a-z_][\w\-]*$/.test(C)&&!/__$/.test(C)?n&&512===s?c[G]+n:1024===s&&f[C]&&"number"===typeof f[C].oa?
+C:"":/^\w+$/.test(C)&&64===r&&p&8?q+1===u?(c[q]=c[q].substring(0,c[q].length-1)+" "+C+'"',""):(q=u,'"'+C+'"'):""}C&&(c[u++]=C)}1===u&&'url("about:blank")'===c[0]&&(u=0);c.length=u}}}();var G=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),
+H={};H["\x3e"]=H["+"]=H["~"]=H;p=function(a,e,f){function k(p,r){function s(c,f,k){var g,m,p,r,t,C=b;g="";if(c<f)if(t=a[c],"*"===t)++c,g=t;else if(/^[a-zA-Z]/.test(t)&&(m=n(t.toLowerCase(),[])))"tagName"in m&&(t=m.tagName),++c,g=t;for(r=p=m="";C&&c<f;++c)if(t=a[c],"#"===t.charAt(0))/^#_|__$|[^\w#:\-]/.test(t)?C=d:m+=t+l;else if("."===t)++c<f&&/^[0-9A-Za-z:_\-]+$/.test(t=a[c])&&!/^_|__$/.test(t)?m+="."+t:C=d;else if(c+1<f&&"["===a[c]){++c;var x=a[c++].toLowerCase();t=u.m[g+"::"+x];t!==+t&&(t=u.m["*::"+
x]);var v;e.ia?(v=e.ia(g,x),"string"!==typeof v&&(C=d,v=x),C&&t!==+t&&(t=u.d.NONE)):(v=x,t!==+t&&(C=d));var F=x="",y=d;/^[~^$*|]?=$/.test(a[c])&&(x=a[c++],F=a[c++],/^[0-9A-Za-z:_\-]+$/.test(F)?F='"'+F+'"':"]"===F&&(F='""',--c),/^"([^\"\\]|\\.)*"$/.test(F)||(C=d),(y="i"===a[c])&&++c);"]"!==a[c]&&(++c,C=d);switch(t){case u.d.CLASSES:case u.d.LOCAL_NAME:case u.d.NONE:break;case u.d.GLOBAL_NAME:case u.d.ID:case u.d.IDREF:("\x3d"===x||"~\x3d"===x||"$\x3d"===x)&&'""'!=F&&!y?F='"'+F.substring(1,F.length-
-1)+l+'"':"|\x3d"===x||""===x||(C=d);break;case u.d.URI:case u.d.URI_FRAGMENT:""!==x&&(C=d);break;default:C=d}C&&(p+="["+v.replace(/[^\w-]/g,"\\$\x26")+x+F+(y?" i]":"]"))}else if(c<f&&":"===a[c])if(t=a[++c],G.test(t))r+=":"+t;else break;else break;c!==f&&(C=d);C&&(c=(g+m).replace(/[^ .*#\w-]/g,"\\$\x26")+p+r+k)&&s.push(c);return C}" "===a[p]&&++p;r-1!==p&&" "===a[r]&&--r;for(var s=[],t=p,C=b,x=p;C&&x<r;++x){var v=a[x];if(H[v]===H||" "===v)q(t,x,v)?t=x+1:C=d}q(t,r,"")||(C=d);return C?(s.length&&(t=
-s.join(""),g!==c&&(t="."+g+" "+t),m.push(t)),b):!f||f(a.slice(p,r))}var g=e.na,l=e.L,n=e.Aa,m=[],p=0,r,q=0,s;for(r=0;r<a.length;++r)if(s=a[r],"("==s||"["==s?(++q,b):")"==s||"]"==s?(q&&--q,b):!(" "==a[r]&&(q||H[a[r-1]]===H||H[a[r+1]]===H)))a[p++]=a[r];a.length=p;p=a.length;for(r=q=0;r<p;++r)if(","===a[r]){if(!k(q,r))return c;q=r+1}return!k(q,p)?c:m};(function(){var a=/^\w/,b=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
+1)+l+'"':"|\x3d"===x||""===x||(C=d);break;case u.d.URI:case u.d.URI_FRAGMENT:""!==x&&(C=d);break;default:C=d}C&&(p+="["+v.replace(/[^\w-]/g,"\\$\x26")+x+F+(y?" i]":"]"))}else if(c<f&&":"===a[c])if(t=a[++c],G.test(t))r+=":"+t;else break;else break;c!==f&&(C=d);C&&(c=(g+m).replace(/[^ .*#\w-]/g,"\\$\x26")+p+r+k)&&q.push(c);return C}" "===a[p]&&++p;r-1!==p&&" "===a[r]&&--r;for(var q=[],t=p,C=b,x=p;C&&x<r;++x){var v=a[x];if(H[v]===H||" "===v)s(t,x,v)?t=x+1:C=d}s(t,r,"")||(C=d);return C?(q.length&&(t=
+q.join(""),g!==c&&(t="."+g+" "+t),m.push(t)),b):!f||f(a.slice(p,r))}var g=e.na,l=e.L,n=e.Aa,m=[],p=0,r,s=0,q;for(r=0;r<a.length;++r)if(q=a[r],"("==q||"["==q?(++s,b):")"==q||"]"==q?(s&&--s,b):!(" "==a[r]&&(s||H[a[r-1]]===H||H[a[r+1]]===H)))a[p++]=a[r];a.length=p;p=a.length;for(r=s=0;r<p;++r)if(","===a[r]){if(!k(s,r))return c;s=r+1}return!k(s,p)?c:m};(function(){var a=/^\w/,b=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
"i");r=function(c){c=c.slice();for(var d=c.length,e=0,f=0;f<d;++f){var k=c[f];" "!=k&&(c[e++]=k)}c.length=e;c=c.join(" ");return!c.length?"":!b.test(c)?"not all":a.test(c)?c:"not all , "+c}})();(function(){function e(a){var b=/^\s*[']([^']*)[']\s*$/,d=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,f=/^\s*url\s*[(][']([^']*)['][)]\s*$/,k=/^\s*url\s*[(]([^)]*)[)]\s*$/,g;return(g=/^\s*["]([^"]*)["]\s*$/.exec(a))||(g=b.exec(a))||(g=d.exec(a))||(g=f.exec(a))||(g=k.exec(a))?g[1]:c}function f(k,l,n,s,G,u,C){function x(){D=
H.length&&H[H.length-1]===c}var v=a,F=C||[0],H=[],D=d;q(l,{startStylesheet:function(){v=[]},endStylesheet:function(){},startAtrule:function(a,b){if(D)a=c;else if("@media"===a)v.push("@media"," ",r(b));else if("@keyframes"===a||"@-webkit-keyframes"===a){var d=b[0];1===b.length&&!/__$|[^\w\-]/.test(d)?(v.push(a," ",d+n.L),a="@keyframes"):a=c}else if("@import"===a&&0<b.length)if(a=c,"function"===typeof u){var l=r(b.slice(1));if("not all"!==l){++F[0];var m=[];v.push(m);var p=t(g(k,e(b[0])),function(a){var b=
f(p,a.qa,n,s,G,u,F);--F[0];a=l?{toString:function(){return"@media "+l+" {"+b.result+"}"}}:b.result;m[0]=a;u(a,!!F[0])},G)}}else window.console&&window.console.log("@import "+b.join(" ")+" elided");D=!a;H.push(a)},endAtrule:function(){H.pop();D||v.push(";");x()},startBlock:function(){D||v.push("{")},endBlock:function(){D||(v.push("}"),D=b)},startRuleset:function(d){if(!D){var e=a;"@keyframes"===H[H.length-1]?(e=d.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
D=!e,e&&(e=e[0].replace(/ +/g,""))):(d=p(d,n),!d||!d.length?D=b:e=d.join(", "));D||v.push(e,"{")}H.push(c)},endRuleset:function(){H.pop();D||v.push("}");x()},declaration:function(a,c){if(!D){var e=d,f=c.length;2<=f&&"!"===c[f-2]&&"important"===c[f-1].toLowerCase()&&(e=b,c.length-=2);m(a,c,s,k,n.L);c.length&&v.push(a,":",c.join(" "),e?" !important;":";")}}});return{result:{toString:function(){return v.join("")}},va:!!F[0]}}s=function(b,c,d,e){return f(b,c,d,e,a,a).result.toString()}})()})();"undefined"!==
typeof window&&(window.sanitizeCssProperty=m,window.sanitizeCssSelectorList=p,window.sanitizeStylesheet=s,window.sanitizeMediaQuery=r);var q,t;(function(){function a(b,d,e,f,k){for(var g=d++;d<e&&"{"!==b[d]&&";"!==b[d];)++d;if(d<e&&(k||";"===b[d])){k=g+1;var l=d;k<e&&" "===b[k]&&++k;l>k&&" "===b[l-1]&&--l;f.startAtrule&&f.startAtrule(b[g].toLowerCase(),b.slice(k,l));d="{"===b[d]?c(b,d,e,f):d+1;f.endAtrule&&f.endAtrule()}return d}function c(b,f,k,g){++f;for(g.startBlock&&g.startBlock();f<k;){var l=
b[f].charAt(0);if("}"==l){++f;break}f=" "===l||";"===l?f+1:"@"===l?a(b,f,k,g,d):"{"===l?c(b,f,k,g):e(b,f,k,g)}g.endBlock&&g.endBlock();return f}function e(a,c,d,k){var g=c,n=f(a,c,d,b);if(0>n)return n=~n,n===g?n+1:n;var m=a[n];if("{"!==m)return n===g?n+1:n;c=n+1;n>g&&" "===a[n-1]&&--n;for(k.startRuleset&&k.startRuleset(a.slice(g,n));c<d;){m=a[c];if("}"===m){++c;break}c=" "===m?c+1:l(a,c,d,k)}k.endRuleset&&k.endRuleset();return c}function f(a,b,c,d){for(var e,k=[],g=-1;b<c;++b)if(e=a[b].charAt(0),
-"["===e||"("===e)k[++g]=e;else if("]"===e&&"["===k[g]||")"===e&&"("===k[g])--g;else if("{"===e||"}"===e||";"===e||"@"===e||":"===e&&!d)break;0<=g&&(b=~(b+1));return b}function g(a,b,c){for(;b<c&&";"!==a[b]&&"}"!==a[b];)++b;return b<c&&";"===a[b]?b+1:b}function l(a,b,c,e){var k=a[b++];if(!n.test(k))return g(a,b,c);b<c&&" "===a[b]&&++b;if(b==c||":"!==a[b])return g(a,b,c);++b;b<c&&" "===a[b]&&++b;var m=f(a,b,c,d);if(0>m)m=~m;else{for(var p=[],r=0,q=b;q<m;++q)b=a[q]," "!==b&&(p[r++]=b);if(m<c){do{b=a[m];
+"["===e||"("===e)k[++g]=e;else if("]"===e&&"["===k[g]||")"===e&&"("===k[g])--g;else if("{"===e||"}"===e||";"===e||"@"===e||":"===e&&!d)break;0<=g&&(b=~(b+1));return b}function g(a,b,c){for(;b<c&&";"!==a[b]&&"}"!==a[b];)++b;return b<c&&";"===a[b]?b+1:b}function l(a,b,c,e){var k=a[b++];if(!n.test(k))return g(a,b,c);b<c&&" "===a[b]&&++b;if(b==c||":"!==a[b])return g(a,b,c);++b;b<c&&" "===a[b]&&++b;var m=f(a,b,c,d);if(0>m)m=~m;else{for(var p=[],r=0,s=b;s<m;++s)b=a[s]," "!==b&&(p[r++]=b);if(m<c){do{b=a[m];
if(";"===b||"}"===b)break;r=0}while(++m<c);";"===b&&++m}r&&e.declaration&&e.declaration(k.toLowerCase(),p)}return m}q=function(c,d){var f=k(c);d.startStylesheet&&d.startStylesheet();for(var g=0,l=f.length;g<l;)g=" "===f[g]?g+1:g<l?"@"===f[g].charAt(0)?a(f,g,l,d,b):e(f,g,l,d):g;d.endStylesheet&&d.endStylesheet()};var n=/^-?[a-z]/i;t=function(a,b){for(var c=k(a),d=0,e=c.length;d<e;)d=" "!==c[d]?l(c,d,e,b):d+1}})();"undefined"!==typeof window&&(window.parseCssStylesheet=q,window.parseCssDeclarations=
t);var u={d:{NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,HTML:12,ID:4,IDREF:5,IDREFS:6,GLOBAL_NAME:7,LOCAL_NAME:8,CLASSES:9,FRAME_TARGET:10,MEDIA_QUERY:13}};u.atype=u.d;u.m={"*::class":9,"*::dir":0,"*::draggable":0,"*::hidden":0,"*::id":4,"*::inert":0,"*::itemprop":0,"*::itemref":6,"*::itemscope":0,"*::lang":0,"*::onblur":2,"*::onchange":2,"*::onclick":2,"*::ondblclick":2,"*::onerror":2,"*::onfocus":2,"*::onkeydown":2,"*::onkeypress":2,"*::onkeyup":2,"*::onload":2,"*::onmousedown":2,"*::onmousemove":2,
"*::onmouseout":2,"*::onmouseover":2,"*::onmouseup":2,"*::onreset":2,"*::onscroll":2,"*::onselect":2,"*::onsubmit":2,"*::ontouchcancel":2,"*::ontouchend":2,"*::ontouchenter":2,"*::ontouchleave":2,"*::ontouchmove":2,"*::ontouchstart":2,"*::onunload":2,"*::spellcheck":0,"*::style":3,"*::tabindex":0,"*::title":0,"*::translate":0,"a::accesskey":0,"a::coords":0,"a::href":1,"a::hreflang":0,"a::name":7,"a::onblur":2,"a::onfocus":2,"a::shape":0,"a::target":10,"a::type":0,"area::accesskey":0,"area::alt":0,
@@ -82,16 +82,16 @@ time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"
u.URIEFFECTS=u.J;u.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};u.ltypes=u.M;u.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};u.LOADERTYPES=u.I;"undefined"!==typeof window&&(window.html4=u);e=function(e){function f(a,b){var c;if(L.hasOwnProperty(b))c=L[b];else{var d=b.match(I);c=d?String.fromCharCode(parseInt(d[1],10)):(d=b.match(aa))?String.fromCharCode(parseInt(d[1],
16)):J&&M.test(b)?(J.innerHTML="\x26"+b+";",d=J.textContent,L[b]=d):"\x26"+b+";"}return c}function g(a){return a.replace(R,f)}function k(a){return(""+a).replace($,"\x26amp;").replace(X,"\x26lt;").replace(Z,"\x26gt;").replace(T,"\x26#34;")}function l(a){return a.replace(P,"\x26amp;$1").replace(X,"\x26lt;").replace(Z,"\x26gt;")}function m(a){var b={z:a.z||a.cdata,A:a.A||a.comment,B:a.B||a.endDoc,t:a.t||a.endTag,e:a.e||a.pcdata,F:a.F||a.rcdata,H:a.H||a.startDoc,w:a.w||a.startTag};return function(a,e){var f,
g=/(<\/|<\!--|<[!?]|[&<>])/g;f=a+"";if(ha)f=f.split(g);else{for(var k=[],l=0,n;(n=g.exec(f))!==c;)k.push(f.substring(l,n.index)),k.push(n[0]),l=n.index+n[0].length;k.push(f.substring(l));f=k}r(b,f,0,{r:d,C:d},e)}}function p(a,b,c,d,e){return function(){r(a,b,c,d,e)}}function r(a,c,d,f,g){try{a.H&&0==d&&a.H(g);for(var k,l,n,m=c.length;d<m;){var t=c[d++],u=c[d];switch(t){case "\x26":ca.test(u)?(a.e&&a.e("\x26"+u,g,V,p(a,c,d,f,g)),d++):a.e&&a.e("\x26amp;",g,V,p(a,c,d,f,g));break;case "\x3c/":if(k=/^([-\w:]+)[^\'\"]*/.exec(u))if(k[0].length===
-u.length&&"\x3e"===c[d+1])d+=2,n=k[1].toLowerCase(),a.t&&a.t(n,g,V,p(a,c,d,f,g));else{var B=c,C=d,v=a,Q=g,y=V,z=f,Y=s(B,C);Y?(v.t&&v.t(Y.name,Q,y,p(v,B,C,z,Q)),d=Y.next):d=B.length}else a.e&&a.e("\x26lt;/",g,V,p(a,c,d,f,g));break;case "\x3c":if(k=/^([-\w:]+)\s*\/?/.exec(u))if(k[0].length===u.length&&"\x3e"===c[d+1]){d+=2;n=k[1].toLowerCase();a.w&&a.w(n,[],g,V,p(a,c,d,f,g));var H=e.f[n];H&ea&&(d=q(c,{name:n,next:d,c:H},a,g,V,f))}else{var B=c,C=a,v=g,Q=V,y=f,L=s(B,d);L?(C.w&&C.w(L.name,L.R,v,Q,p(C,
-B,L.next,y,v)),d=L.c&ea?q(B,L,C,v,Q,y):L.next):d=B.length}else a.e&&a.e("\x26lt;",g,V,p(a,c,d,f,g));break;case "\x3c!--":if(!f.C){for(l=d+1;l<m&&!("\x3e"===c[l]&&/--$/.test(c[l-1]));l++);if(l<m){if(a.A){var I=c.slice(d,l).join("");a.A(I.substr(0,I.length-2),g,V,p(a,c,l+1,f,g))}d=l+1}else f.C=b}f.C&&a.e&&a.e("\x26lt;!--",g,V,p(a,c,d,f,g));break;case "\x3c!":if(/^\w/.test(u)){if(!f.r){for(l=d+1;l<m&&"\x3e"!==c[l];l++);l<m?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;!",g,V,p(a,c,d,f,g))}else a.e&&a.e("\x26lt;!",
-g,V,p(a,c,d,f,g));break;case "\x3c?":if(!f.r){for(l=d+1;l<m&&"\x3e"!==c[l];l++);l<m?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;?",g,V,p(a,c,d,f,g));break;case "\x3e":a.e&&a.e("\x26gt;",g,V,p(a,c,d,f,g));break;case "":break;default:a.e&&a.e(t,g,V,p(a,c,d,f,g))}}a.B&&a.B(g)}catch(E){if(E!==V)throw E;}}function q(a,b,c,d,f,g){var k=a.length;ga.hasOwnProperty(b.name)||(ga[b.name]=RegExp("^"+b.name+"(?:[\\s\\/]|$)","i"));for(var n=ga[b.name],m=b.next,r=b.next+1;r<k&&!("\x3c/"===a[r-1]&&n.test(a[r]));r++);r<k&&
-(r-=1);k=a.slice(m,r).join("");if(b.c&e.c.CDATA)c.z&&c.z(k,d,f,p(c,a,r,g,d));else if(b.c&e.c.RCDATA)c.F&&c.F(l(k),d,f,p(c,a,r,g,d));else throw Error("bug");return r}function s(a,c){var f=/^([-\w:]+)/.exec(a[c]),k={};k.name=f[1].toLowerCase();k.c=e.f[k.name];for(var l=a[c].substr(f[0].length),n=c+1,m=a.length;n<m&&"\x3e"!==a[n];n++)l+=a[n];if(!(m<=n)){for(var p=[];""!==l;)if(f=Q.exec(l))if(f[4]&&!f[5]||f[6]&&!f[7]){for(var f=f[4]||f[6],r=d,l=[l,a[n++]];n<m;n++){if(r){if("\x3e"===a[n])break}else 0<=
-a[n].indexOf(f)&&(r=b);l.push(a[n])}if(m<=n)break;l=l.join("")}else{var r=f[1].toLowerCase(),q;if(f[2]){q=f[3];var t=q.charCodeAt(0);if(34===t||39===t)q=q.substr(1,q.length-2);q=g(q.replace(N,""))}else q="";p.push(r,q);l=l.substr(f[0].length)}else l=l.replace(/^[\s\S][^a-z\s]*/,"");k.R=p;k.next=n+1;return k}}function t(b){function f(a,b){l||b.push(a)}var g,l;return m({startDoc:function(){g=[];l=d},startTag:function(d,f,n){if(!l&&e.f.hasOwnProperty(d)){var m=e.f[d];if(!(m&e.c.FOLDABLE)){var p=b(d,
-f);if(p){if("object"!==typeof p)throw Error("tagPolicy did not return object (old API?)");if("attribs"in p)f=p.attribs;else throw Error("tagPolicy gave no attribs");var r;"tagName"in p?(r=p.tagName,p=e.f[r]):(r=d,p=m);if(m&e.c.OPTIONAL_ENDTAG){var q=g[g.length-1];q&&q.D===d&&(q.v!==r||d!==r)&&n.push("\x3c/",q.v,"\x3e")}m&e.c.EMPTY||g.push({D:d,v:r});n.push("\x3c",r);d=0;for(q=f.length;d<q;d+=2){var s=f[d],t=f[d+1];t!==c&&t!==a&&n.push(" ",s,'\x3d"',k(t),'"')}n.push("\x3e");m&e.c.EMPTY&&!(p&e.c.EMPTY)&&
+u.length&&"\x3e"===c[d+1])d+=2,n=k[1].toLowerCase(),a.t&&a.t(n,g,V,p(a,c,d,f,g));else{var B=c,C=d,v=a,Q=g,y=V,z=f,Y=q(B,C);Y?(v.t&&v.t(Y.name,Q,y,p(v,B,C,z,Q)),d=Y.next):d=B.length}else a.e&&a.e("\x26lt;/",g,V,p(a,c,d,f,g));break;case "\x3c":if(k=/^([-\w:]+)\s*\/?/.exec(u))if(k[0].length===u.length&&"\x3e"===c[d+1]){d+=2;n=k[1].toLowerCase();a.w&&a.w(n,[],g,V,p(a,c,d,f,g));var H=e.f[n];H&ea&&(d=s(c,{name:n,next:d,c:H},a,g,V,f))}else{var B=c,C=a,v=g,Q=V,y=f,L=q(B,d);L?(C.w&&C.w(L.name,L.R,v,Q,p(C,
+B,L.next,y,v)),d=L.c&ea?s(B,L,C,v,Q,y):L.next):d=B.length}else a.e&&a.e("\x26lt;",g,V,p(a,c,d,f,g));break;case "\x3c!--":if(!f.C){for(l=d+1;l<m&&!("\x3e"===c[l]&&/--$/.test(c[l-1]));l++);if(l<m){if(a.A){var I=c.slice(d,l).join("");a.A(I.substr(0,I.length-2),g,V,p(a,c,l+1,f,g))}d=l+1}else f.C=b}f.C&&a.e&&a.e("\x26lt;!--",g,V,p(a,c,d,f,g));break;case "\x3c!":if(/^\w/.test(u)){if(!f.r){for(l=d+1;l<m&&"\x3e"!==c[l];l++);l<m?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;!",g,V,p(a,c,d,f,g))}else a.e&&a.e("\x26lt;!",
+g,V,p(a,c,d,f,g));break;case "\x3c?":if(!f.r){for(l=d+1;l<m&&"\x3e"!==c[l];l++);l<m?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;?",g,V,p(a,c,d,f,g));break;case "\x3e":a.e&&a.e("\x26gt;",g,V,p(a,c,d,f,g));break;case "":break;default:a.e&&a.e(t,g,V,p(a,c,d,f,g))}}a.B&&a.B(g)}catch(E){if(E!==V)throw E;}}function s(a,b,c,d,f,g){var k=a.length;ga.hasOwnProperty(b.name)||(ga[b.name]=RegExp("^"+b.name+"(?:[\\s\\/]|$)","i"));for(var n=ga[b.name],m=b.next,r=b.next+1;r<k&&!("\x3c/"===a[r-1]&&n.test(a[r]));r++);r<k&&
+(r-=1);k=a.slice(m,r).join("");if(b.c&e.c.CDATA)c.z&&c.z(k,d,f,p(c,a,r,g,d));else if(b.c&e.c.RCDATA)c.F&&c.F(l(k),d,f,p(c,a,r,g,d));else throw Error("bug");return r}function q(a,c){var f=/^([-\w:]+)/.exec(a[c]),k={};k.name=f[1].toLowerCase();k.c=e.f[k.name];for(var l=a[c].substr(f[0].length),n=c+1,m=a.length;n<m&&"\x3e"!==a[n];n++)l+=a[n];if(!(m<=n)){for(var p=[];""!==l;)if(f=Q.exec(l))if(f[4]&&!f[5]||f[6]&&!f[7]){for(var f=f[4]||f[6],r=d,l=[l,a[n++]];n<m;n++){if(r){if("\x3e"===a[n])break}else 0<=
+a[n].indexOf(f)&&(r=b);l.push(a[n])}if(m<=n)break;l=l.join("")}else{var r=f[1].toLowerCase(),s;if(f[2]){s=f[3];var t=s.charCodeAt(0);if(34===t||39===t)s=s.substr(1,s.length-2);s=g(s.replace(N,""))}else s="";p.push(r,s);l=l.substr(f[0].length)}else l=l.replace(/^[\s\S][^a-z\s]*/,"");k.R=p;k.next=n+1;return k}}function t(b){function f(a,b){l||b.push(a)}var g,l;return m({startDoc:function(){g=[];l=d},startTag:function(d,f,n){if(!l&&e.f.hasOwnProperty(d)){var m=e.f[d];if(!(m&e.c.FOLDABLE)){var p=b(d,
+f);if(p){if("object"!==typeof p)throw Error("tagPolicy did not return object (old API?)");if("attribs"in p)f=p.attribs;else throw Error("tagPolicy gave no attribs");var r;"tagName"in p?(r=p.tagName,p=e.f[r]):(r=d,p=m);if(m&e.c.OPTIONAL_ENDTAG){var s=g[g.length-1];s&&s.D===d&&(s.v!==r||d!==r)&&n.push("\x3c/",s.v,"\x3e")}m&e.c.EMPTY||g.push({D:d,v:r});n.push("\x3c",r);d=0;for(s=f.length;d<s;d+=2){var q=f[d],t=f[d+1];t!==c&&t!==a&&n.push(" ",q,'\x3d"',k(t),'"')}n.push("\x3e");m&e.c.EMPTY&&!(p&e.c.EMPTY)&&
n.push("\x3c/",r,"\x3e")}else l=!(m&e.c.EMPTY)}}},endTag:function(a,b){if(l)l=d;else if(e.f.hasOwnProperty(a)){var c=e.f[a];if(!(c&(e.c.EMPTY|e.c.FOLDABLE))){if(c&e.c.OPTIONAL_ENDTAG)for(c=g.length;0<=--c;){var f=g[c].D;if(f===a)break;if(!(e.f[f]&e.c.OPTIONAL_ENDTAG))return}else for(c=g.length;0<=--c&&g[c].D!==a;);if(!(0>c)){for(f=g.length;--f>c;){var k=g[f].v;e.f[k]&e.c.OPTIONAL_ENDTAG||b.push("\x3c/",k,"\x3e")}c<g.length&&(a=g[c].v);g.length=c;b.push("\x3c/",a,"\x3e")}}}},pcdata:f,rcdata:f,cdata:f,
endDoc:function(a){for(;g.length;g.length--)a.push("\x3c/",g[g.length-1].v,"\x3e")}})}function u(a,b,d,e,f){if(!f)return c;try{var g=n.parse(""+a);if(g&&(!g.K()||ka.test(g.W()))){var k=f(g,b,d,e);return k?k.toString():c}}catch(l){}return c}function K(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function S(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+
-c;if(a.hasOwnProperty(b))return a[b]}function W(b,d,f,g,k){for(var l=0;l<d.length;l+=2){var n=d[l],m=d[l+1],p=m,r=c,q;if((q=b+"::"+n,e.m.hasOwnProperty(q))||(q="*::"+n,e.m.hasOwnProperty(q)))r=e.m[q];if(r!==c)switch(r){case e.d.NONE:break;case e.d.SCRIPT:m=c;k&&K(k,b,n,p,m);break;case e.d.STYLE:if("undefined"===typeof B){m=c;k&&K(k,b,n,p,m);break}var s=[];B(m,{declaration:function(a,b){var d=a.toLowerCase();Y(d,b,f?function(a){return u(a,e.P.ja,e.M.ka,{TYPE:"CSS",CSS_PROP:d},f)}:c);b.length&&s.push(d+
-": "+b.join(" "))}});m=0<s.length?s.join(" ; "):c;k&&K(k,b,n,p,m);break;case e.d.ID:case e.d.IDREF:case e.d.IDREFS:case e.d.GLOBAL_NAME:case e.d.LOCAL_NAME:case e.d.CLASSES:m=g?g(m):m;k&&K(k,b,n,p,m);break;case e.d.URI:m=u(m,S(e.J,b,n),S(e.I,b,n),{TYPE:"MARKUP",XML_ATTR:n,XML_TAG:b},f);k&&K(k,b,n,p,m);break;case e.d.URI_FRAGMENT:m&&"#"===m.charAt(0)?(m=m.substring(1),m=g?g(m):m,m!==c&&m!==a&&(m="#"+m)):m=c;k&&K(k,b,n,p,m);break;default:m=c,k&&K(k,b,n,p,m)}else m=c,k&&K(k,b,n,p,m);d[l+1]=m}return d}
+c;if(a.hasOwnProperty(b))return a[b]}function W(b,d,f,g,k){for(var l=0;l<d.length;l+=2){var n=d[l],m=d[l+1],p=m,r=c,s;if((s=b+"::"+n,e.m.hasOwnProperty(s))||(s="*::"+n,e.m.hasOwnProperty(s)))r=e.m[s];if(r!==c)switch(r){case e.d.NONE:break;case e.d.SCRIPT:m=c;k&&K(k,b,n,p,m);break;case e.d.STYLE:if("undefined"===typeof B){m=c;k&&K(k,b,n,p,m);break}var q=[];B(m,{declaration:function(a,b){var d=a.toLowerCase();Y(d,b,f?function(a){return u(a,e.P.ja,e.M.ka,{TYPE:"CSS",CSS_PROP:d},f)}:c);b.length&&q.push(d+
+": "+b.join(" "))}});m=0<q.length?q.join(" ; "):c;k&&K(k,b,n,p,m);break;case e.d.ID:case e.d.IDREF:case e.d.IDREFS:case e.d.GLOBAL_NAME:case e.d.LOCAL_NAME:case e.d.CLASSES:m=g?g(m):m;k&&K(k,b,n,p,m);break;case e.d.URI:m=u(m,S(e.J,b,n),S(e.I,b,n),{TYPE:"MARKUP",XML_ATTR:n,XML_TAG:b},f);k&&K(k,b,n,p,m);break;case e.d.URI_FRAGMENT:m&&"#"===m.charAt(0)?(m=m.substring(1),m=g?g(m):m,m!==c&&m!==a&&(m="#"+m)):m=c;k&&K(k,b,n,p,m);break;default:m=c,k&&K(k,b,n,p,m)}else m=c,k&&K(k,b,n,p,m);d[l+1]=m}return d}
function da(b,c,d){return function(f,g){if(e.f[f]&e.c.UNSAFE)d&&K(d,f,a,a,a);else return{attribs:W(f,g,b,c,d)}}}function U(a,b){var c=[];t(b)(a,c);return c.join("")}var B,Y;"undefined"!==typeof window&&(B=window.parseCssDeclarations,Y=window.sanitizeCssProperty);var L={lt:"\x3c",LT:"\x3c",gt:"\x3e",GT:"\x3e",amp:"\x26",AMP:"\x26",quot:'"',apos:"'",nbsp:"\u00a0"},I=/^#(\d+)$/,aa=/^#x([0-9A-Fa-f]+)$/,M=/^[A-Za-z][A-za-z0-9]+$/,J="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):
c,N=/\0/g,R=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,ca=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,$=/&/g,P=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,X=/[<]/g,Z=/>/g,T=/\"/g,Q=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,ha=3==="a,b".split(/(,)/).length,ea=e.c.CDATA|e.c.RCDATA,V={},ga={},ka=/^(?:https?|mailto|data)$/i,ba={};ba.pa=ba.escapeAttrib=k;ba.ra=ba.makeHtmlSanitizer=t;ba.sa=ba.makeSaxParser=m;ba.ta=ba.makeTagPolicy=da;ba.wa=ba.normalizeRCData=l;ba.xa=
ba.sanitize=function(a,b,c,d){return U(a,da(b,c,d))};ba.ya=ba.sanitizeAttribs=W;ba.za=ba.sanitizeWithPolicy=U;ba.Ba=ba.unescapeEntities=g;return ba}(u);g=e.sanitize;"undefined"!==typeof window&&(window.html=e,window.html_sanitize=g)})();var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d",encode:function(a,b){var c="",d,e,f,g,k,l,n=0;for(null!=b&&b||(a=Base64._utf8_encode(a));n<a.length;)d=a.charCodeAt(n++),e=a.charCodeAt(n++),f=a.charCodeAt(n++),g=d>>2,d=(d&3)<<4|e>>4,k=(e&15)<<2|f>>6,l=f&63,isNaN(e)?k=l=64:isNaN(f)&&(l=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(k)+this._keyStr.charAt(l);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,k,l=0;for(a=
@@ -115,8 +115,8 @@ d?(c[k++]=192|d>>>6,c[k++]=128|63&d):65536>d?(c[k++]=224|d>>>12,c[k++]=128|d>>>6
2===k?31:3===k?15:7;1<k&&d<l;)g=g<<6|63&b[d++],k--;1<k?n[f++]=65533:65536>g?n[f++]=g:(g-=65536,n[f++]=55296|g>>10&1023,n[f++]=56320|1023&g)}return e(n,f)};d.utf8border=function(b,c){var d;c=c||b.length;c>b.length&&(c=b.length);for(d=c-1;0<=d&&128===(192&b[d]);)d--;return 0>d?c:0===d?c:d+m[b[d]]>c?d:c}},{"./common":3}],5:[function(b,c,d){c.exports=function(b,c,d,k){var l=65535&b|0;b=b>>>16&65535|0;for(var n=0;0!==d;){n=2E3<d?2E3:d;d-=n;do l=l+c[k++]|0,b=b+l|0;while(--n);l%=65521;b%=65521}return l|
b<<16|0}},{}],6:[function(b,c,d){c.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],7:[function(b,c,d){var e=function(){for(var b,c=[],d=0;256>d;d++){b=d;
for(var e=0;8>e;e++)b=1&b?3988292384^b>>>1:b>>>1;c[d]=b}return c}();c.exports=function(b,c,d,l){d=l+d;for(b^=-1;l<d;l++)b=b>>>8^e[255&(b^c[l])];return b^-1}},{}],8:[function(b,c,d){function e(b,c){return b.msg=C[c],c}function f(b){for(var c=b.length;0<=--c;)b[c]=0}function g(b){var c=b.state,d=c.pending;d>b.avail_out&&(d=b.avail_out);0!==d&&(y.arraySet(b.output,c.pending_buf,c.pending_out,d,b.next_out),b.next_out+=d,c.pending_out+=d,b.total_out+=d,b.avail_out-=d,c.pending-=d,0===c.pending&&(c.pending_out=
-0))}function k(b,c){E._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,c);b.block_start=b.strstart;g(b.strm)}function l(b,c){b.pending_buf[b.pending++]=c}function n(b,c){b.pending_buf[b.pending++]=c>>>8&255;b.pending_buf[b.pending++]=255&c}function m(b,c){var d,e,f=b.max_chain_length,g=b.strstart,k=b.prev_length,l=b.nice_match,n=b.strstart>b.w_size-R?b.strstart-(b.w_size-R):0,m=b.window,p=b.w_mask,r=b.prev,q=b.strstart+N,s=m[g+k-1],G=m[g+k];b.prev_length>=b.good_match&&
-(f>>=2);l>b.lookahead&&(l=b.lookahead);do if(d=c,m[d+k]===G&&m[d+k-1]===s&&m[d]===m[g]&&m[++d]===m[g+1]){g+=2;d++;do;while(m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&g<q);if(e=N-(q-g),g=q-N,e>k){if(b.match_start=c,k=e,e>=l)break;s=m[g+k-1];G=m[g+k]}}while((c=r[c&p])>n&&0!==--f);return k<=b.lookahead?k:b.lookahead}function p(b){var c,d,e,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>=
+0))}function k(b,c){E._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,c);b.block_start=b.strstart;g(b.strm)}function l(b,c){b.pending_buf[b.pending++]=c}function n(b,c){b.pending_buf[b.pending++]=c>>>8&255;b.pending_buf[b.pending++]=255&c}function m(b,c){var d,e,f=b.max_chain_length,g=b.strstart,k=b.prev_length,l=b.nice_match,n=b.strstart>b.w_size-R?b.strstart-(b.w_size-R):0,m=b.window,p=b.w_mask,r=b.prev,s=b.strstart+N,q=m[g+k-1],G=m[g+k];b.prev_length>=b.good_match&&
+(f>>=2);l>b.lookahead&&(l=b.lookahead);do if(d=c,m[d+k]===G&&m[d+k-1]===q&&m[d]===m[g]&&m[++d]===m[g+1]){g+=2;d++;do;while(m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&g<s);if(e=N-(s-g),g=s-N,e>k){if(b.match_start=c,k=e,e>=l)break;q=m[g+k-1];G=m[g+k]}}while((c=r[c&p])>n&&0!==--f);return k<=b.lookahead?k:b.lookahead}function p(b){var c,d,e,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>=
g+(g-R)){y.arraySet(b.window,b.window,g,g,0);b.match_start-=g;b.strstart-=g;b.block_start-=g;c=d=b.hash_size;do e=b.head[--c],b.head[c]=e>=g?e-g:0;while(--d);c=d=g;do e=b.prev[--c],b.prev[c]=e>=g?e-g:0;while(--d);f+=g}if(0===b.strm.avail_in)break;c=b.strm;e=b.window;var k=b.strstart+b.lookahead,l=c.avail_in;if(d=(l>f&&(l=f),0===l?0:(c.avail_in-=l,y.arraySet(e,c.input,c.next_in,l,k),1===c.state.wrap?c.adler=A(c.adler,e,l,k):2===c.state.wrap&&(c.adler=D(c.adler,e,l,k)),c.next_in+=l,c.total_in+=l,l)),
b.lookahead+=d,b.lookahead+b.insert>=J){f=b.strstart-b.insert;b.ins_h=b.window[f];for(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+1])&b.hash_mask;b.insert&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+J-1])&b.hash_mask,b.prev[f&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=f,f++,b.insert--,!(b.lookahead+b.insert<J)););}}while(b.lookahead<R&&0!==b.strm.avail_in)}function s(b,c){for(var d,e;;){if(b.lookahead<R){if(p(b),b.lookahead<R&&c===F)return P;if(0===b.lookahead)break}if(d=0,b.lookahead>=J&&(b.ins_h=(b.ins_h<<
b.hash_shift^b.window[b.strstart+J-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==d&&b.strstart-d<=b.w_size-R&&(b.match_length=m(b,d)),b.match_length>=J)if(e=E._tr_tally(b,b.strstart-b.match_start,b.match_length-J),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=J){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+J-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=
@@ -130,15 +130,15 @@ this.lit_bufsize=this.l_buf=0}function u(b){var c;return b&&b.state?(b.total_in=
0,b.lookahead=0,b.insert=0,b.match_length=b.prev_length=J-1,b.match_available=0,b.ins_h=0);return c}function v(b,c,d,f,g,k){if(!b)return O;var l=1;if(c===K&&(c=6),0>f?(l=0,f=-f):15<f&&(l=2,f-=16),1>g||g>B||d!==U||8>f||15<f||0>c||9<c||0>k||k>W)return e(b,O);8===f&&(f=9);var n=new t;return b.state=n,n.strm=b,n.wrap=l,n.gzhead=null,n.w_bits=f,n.w_size=1<<n.w_bits,n.w_mask=n.w_size-1,n.hash_bits=g+7,n.hash_size=1<<n.hash_bits,n.hash_mask=n.hash_size-1,n.hash_shift=~~((n.hash_bits+J-1)/J),n.window=new y.Buf8(2*
n.w_size),n.head=new y.Buf16(n.hash_size),n.prev=new y.Buf16(n.w_size),n.lit_bufsize=1<<g+6,n.pending_buf_size=4*n.lit_bufsize,n.pending_buf=new y.Buf8(n.pending_buf_size),n.d_buf=1*n.lit_bufsize,n.l_buf=3*n.lit_bufsize,n.level=c,n.strategy=k,n.method=d,x(b)}var z,y=b("../utils/common"),E=b("./trees"),A=b("./adler32"),D=b("./crc32"),C=b("./messages"),F=0,G=4,H=0,O=-2,K=-1,S=1,W=4,da=2,U=8,B=9,Y=286,L=30,I=19,aa=2*Y+1,M=15,J=3,N=258,R=N+J+1,ca=42,$=113,P=1,X=2,Z=3,T=4;z=[new q(0,0,0,0,function(b,c){var d=
65535;for(d>b.pending_buf_size-5&&(d=b.pending_buf_size-5);;){if(1>=b.lookahead){if(p(b),0===b.lookahead&&c===F)return P;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var e=b.block_start+d;if((0===b.strstart||b.strstart>=e)&&(b.lookahead=b.strstart-e,b.strstart=e,k(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-R&&(k(b,!1),0===b.strm.avail_out))return P}return b.insert=0,c===G?(k(b,!0),0===b.strm.avail_out?Z:T):(b.strstart>b.block_start&&k(b,!1),P)}),new q(4,4,8,
-4,s),new q(4,5,16,8,s),new q(4,6,32,32,s),new q(4,4,16,16,r),new q(8,16,32,32,r),new q(8,16,128,128,r),new q(8,32,128,256,r),new q(32,128,258,1024,r),new q(32,258,258,4096,r)];d.deflateInit=function(b,c){return v(b,c,U,15,8,0)};d.deflateInit2=v;d.deflateReset=x;d.deflateResetKeep=u;d.deflateSetHeader=function(b,c){return b&&b.state?2!==b.state.wrap?O:(b.state.gzhead=c,H):O};d.deflate=function(b,c){var d,m,r,q;if(!b||!b.state||5<c||0>c)return b?e(b,O):O;if(m=b.state,!b.output||!b.input&&0!==b.avail_in||
+4,s),new q(4,5,16,8,s),new q(4,6,32,32,s),new q(4,4,16,16,r),new q(8,16,32,32,r),new q(8,16,128,128,r),new q(8,32,128,256,r),new q(32,128,258,1024,r),new q(32,258,258,4096,r)];d.deflateInit=function(b,c){return v(b,c,U,15,8,0)};d.deflateInit2=v;d.deflateReset=x;d.deflateResetKeep=u;d.deflateSetHeader=function(b,c){return b&&b.state?2!==b.state.wrap?O:(b.state.gzhead=c,H):O};d.deflate=function(b,c){var d,m,r,s;if(!b||!b.state||5<c||0>c)return b?e(b,O):O;if(m=b.state,!b.output||!b.input&&0!==b.avail_in||
666===m.status&&c!==G)return e(b,0===b.avail_out?-5:O);if(m.strm=b,d=m.last_flush,m.last_flush=c,m.status===ca)2===m.wrap?(b.adler=0,l(m,31),l(m,139),l(m,8),m.gzhead?(l(m,(m.gzhead.text?1:0)+(m.gzhead.hcrc?2:0)+(m.gzhead.extra?4:0)+(m.gzhead.name?8:0)+(m.gzhead.comment?16:0)),l(m,255&m.gzhead.time),l(m,m.gzhead.time>>8&255),l(m,m.gzhead.time>>16&255),l(m,m.gzhead.time>>24&255),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,255&m.gzhead.os),m.gzhead.extra&&m.gzhead.extra.length&&(l(m,255&m.gzhead.extra.length),
-l(m,m.gzhead.extra.length>>8&255)),m.gzhead.hcrc&&(b.adler=D(b.adler,m.pending_buf,m.pending,0)),m.gzindex=0,m.status=69):(l(m,0),l(m,0),l(m,0),l(m,0),l(m,0),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,3),m.status=$)):(r=U+(m.w_bits-8<<4)<<8,q=-1,q=2<=m.strategy||2>m.level?0:6>m.level?1:6===m.level?2:3,r|=q<<6,0!==m.strstart&&(r|=32),m.status=$,n(m,r+(31-r%31)),0!==m.strstart&&(n(m,b.adler>>>16),n(m,65535&b.adler)),b.adler=1);if(69===m.status)if(m.gzhead.extra){for(r=m.pending;m.gzindex<(65535&
+l(m,m.gzhead.extra.length>>8&255)),m.gzhead.hcrc&&(b.adler=D(b.adler,m.pending_buf,m.pending,0)),m.gzindex=0,m.status=69):(l(m,0),l(m,0),l(m,0),l(m,0),l(m,0),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,3),m.status=$)):(r=U+(m.w_bits-8<<4)<<8,s=-1,s=2<=m.strategy||2>m.level?0:6>m.level?1:6===m.level?2:3,r|=s<<6,0!==m.strstart&&(r|=32),m.status=$,n(m,r+(31-r%31)),0!==m.strstart&&(n(m,b.adler>>>16),n(m,65535&b.adler)),b.adler=1);if(69===m.status)if(m.gzhead.extra){for(r=m.pending;m.gzindex<(65535&
m.gzhead.extra.length)&&(m.pending!==m.pending_buf_size||(m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r)),g(b),r=m.pending,m.pending!==m.pending_buf_size));)l(m,255&m.gzhead.extra[m.gzindex]),m.gzindex++;m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r));m.gzindex===m.gzhead.extra.length&&(m.gzindex=0,m.status=73)}else m.status=73;if(73===m.status)if(m.gzhead.name){r=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>r&&
-(b.adler=D(b.adler,m.pending_buf,m.pending-r,r)),g(b),r=m.pending,m.pending===m.pending_buf_size)){q=1;break}q=m.gzindex<m.gzhead.name.length?255&m.gzhead.name.charCodeAt(m.gzindex++):0;l(m,q)}while(0!==q);m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r));0===q&&(m.gzindex=0,m.status=91)}else m.status=91;if(91===m.status)if(m.gzhead.comment){r=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r)),g(b),
-r=m.pending,m.pending===m.pending_buf_size)){q=1;break}q=m.gzindex<m.gzhead.comment.length?255&m.gzhead.comment.charCodeAt(m.gzindex++):0;l(m,q)}while(0!==q);m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r));0===q&&(m.status=103)}else m.status=103;if(103===m.status&&(m.gzhead.hcrc?(m.pending+2>m.pending_buf_size&&g(b),m.pending+2<=m.pending_buf_size&&(l(m,255&b.adler),l(m,b.adler>>8&255),b.adler=0,m.status=$)):m.status=$),0!==m.pending){if(g(b),0===b.avail_out)return m.last_flush=
--1,H}else if(0===b.avail_in&&(c<<1)-(4<c?9:0)<=(d<<1)-(4<d?9:0)&&c!==G)return e(b,-5);if(666===m.status&&0!==b.avail_in)return e(b,-5);if(0!==b.avail_in||0!==m.lookahead||c!==F&&666!==m.status){var s;if(2===m.strategy)a:{for(var B;;){if(0===m.lookahead&&(p(m),0===m.lookahead)){if(c===F){s=P;break a}break}if(m.match_length=0,B=E._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,B&&(k(m,!1),0===m.strm.avail_out)){s=P;break a}}s=(m.insert=0,c===G?(k(m,!0),0===m.strm.avail_out?Z:T):m.last_lit&&
-(k(m,!1),0===m.strm.avail_out)?P:X)}else if(3===m.strategy)a:{var t,C;for(B=m.window;;){if(m.lookahead<=N){if(p(m),m.lookahead<=N&&c===F){s=P;break a}if(0===m.lookahead)break}if(m.match_length=0,m.lookahead>=J&&0<m.strstart&&(C=m.strstart-1,t=B[C],t===B[++C]&&t===B[++C]&&t===B[++C])){d=m.strstart+N;do;while(t===B[++C]&&t===B[++C]&&t===B[++C]&&t===B[++C]&&t===B[++C]&&t===B[++C]&&t===B[++C]&&t===B[++C]&&C<d);m.match_length=N-(d-C);m.match_length>m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=
-J?(s=E._tr_tally(m,1,m.match_length-J),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(s=E._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),s&&(k(m,!1),0===m.strm.avail_out)){s=P;break a}}s=(m.insert=0,c===G?(k(m,!0),0===m.strm.avail_out?Z:T):m.last_lit&&(k(m,!1),0===m.strm.avail_out)?P:X)}else s=z[m.level].func(m,c);if(s!==Z&&s!==T||(m.status=666),s===P||s===Z)return 0===b.avail_out&&(m.last_flush=-1),H;if(s===X&&(1===c?E._tr_align(m):5!==c&&(E._tr_stored_block(m,
+(b.adler=D(b.adler,m.pending_buf,m.pending-r,r)),g(b),r=m.pending,m.pending===m.pending_buf_size)){s=1;break}s=m.gzindex<m.gzhead.name.length?255&m.gzhead.name.charCodeAt(m.gzindex++):0;l(m,s)}while(0!==s);m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r));0===s&&(m.gzindex=0,m.status=91)}else m.status=91;if(91===m.status)if(m.gzhead.comment){r=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r)),g(b),
+r=m.pending,m.pending===m.pending_buf_size)){s=1;break}s=m.gzindex<m.gzhead.comment.length?255&m.gzhead.comment.charCodeAt(m.gzindex++):0;l(m,s)}while(0!==s);m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r));0===s&&(m.status=103)}else m.status=103;if(103===m.status&&(m.gzhead.hcrc?(m.pending+2>m.pending_buf_size&&g(b),m.pending+2<=m.pending_buf_size&&(l(m,255&b.adler),l(m,b.adler>>8&255),b.adler=0,m.status=$)):m.status=$),0!==m.pending){if(g(b),0===b.avail_out)return m.last_flush=
+-1,H}else if(0===b.avail_in&&(c<<1)-(4<c?9:0)<=(d<<1)-(4<d?9:0)&&c!==G)return e(b,-5);if(666===m.status&&0!==b.avail_in)return e(b,-5);if(0!==b.avail_in||0!==m.lookahead||c!==F&&666!==m.status){var q;if(2===m.strategy)a:{for(var B;;){if(0===m.lookahead&&(p(m),0===m.lookahead)){if(c===F){q=P;break a}break}if(m.match_length=0,B=E._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,B&&(k(m,!1),0===m.strm.avail_out)){q=P;break a}}q=(m.insert=0,c===G?(k(m,!0),0===m.strm.avail_out?Z:T):m.last_lit&&
+(k(m,!1),0===m.strm.avail_out)?P:X)}else if(3===m.strategy)a:{var t,C;for(B=m.window;;){if(m.lookahead<=N){if(p(m),m.lookahead<=N&&c===F){q=P;break a}if(0===m.lookahead)break}if(m.match_length=0,m.lookahead>=J&&0<m.strstart&&(C=m.strstart-1,t=B[C],t===B[++C]&&t===B[++C]&&t===B[++C])){d=m.strstart+N;do;while(t===B[++C]&&t===B[++C]&&t===B[++C]&&t===B[++C]&&t===B[++C]&&t===B[++C]&&t===B[++C]&&t===B[++C]&&C<d);m.match_length=N-(d-C);m.match_length>m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=
+J?(q=E._tr_tally(m,1,m.match_length-J),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(q=E._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),q&&(k(m,!1),0===m.strm.avail_out)){q=P;break a}}q=(m.insert=0,c===G?(k(m,!0),0===m.strm.avail_out?Z:T):m.last_lit&&(k(m,!1),0===m.strm.avail_out)?P:X)}else q=z[m.level].func(m,c);if(q!==Z&&q!==T||(m.status=666),q===P||q===Z)return 0===b.avail_out&&(m.last_flush=-1),H;if(q===X&&(1===c?E._tr_align(m):5!==c&&(E._tr_stored_block(m,
0,0,!1),3===c&&(f(m.head),0===m.lookahead&&(m.strstart=0,m.block_start=0,m.insert=0))),g(b),0===b.avail_out))return m.last_flush=-1,H}return c!==G?H:0>=m.wrap?1:(2===m.wrap?(l(m,255&b.adler),l(m,b.adler>>8&255),l(m,b.adler>>16&255),l(m,b.adler>>24&255),l(m,255&b.total_in),l(m,b.total_in>>8&255),l(m,b.total_in>>16&255),l(m,b.total_in>>24&255)):(n(m,b.adler>>>16),n(m,65535&b.adler)),g(b),0<m.wrap&&(m.wrap=-m.wrap),0!==m.pending?H:1)};d.deflateEnd=function(b){var c;return b&&b.state?(c=b.state.status,
c!==ca&&69!==c&&73!==c&&91!==c&&103!==c&&c!==$&&666!==c?e(b,O):(b.state=null,c===$?e(b,-3):H)):O};d.deflateSetDictionary=function(b,c){var d,e,g,k,l,n,m;e=c.length;if(!b||!b.state||(d=b.state,k=d.wrap,2===k||1===k&&d.status!==ca||d.lookahead))return O;1===k&&(b.adler=A(b.adler,c,e,0));d.wrap=0;e>=d.w_size&&(0===k&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),l=new y.Buf8(d.w_size),y.arraySet(l,c,e-d.w_size,d.w_size,0),c=l,e=d.w_size);l=b.avail_in;n=b.next_in;m=b.input;b.avail_in=e;b.next_in=
0;b.input=c;for(p(d);d.lookahead>=J;){e=d.strstart;g=d.lookahead-(J-1);do d.ins_h=(d.ins_h<<d.hash_shift^d.window[e+J-1])&d.hash_mask,d.prev[e&d.w_mask]=d.head[d.ins_h],d.head[d.ins_h]=e,e++;while(--g);d.strstart=e;d.lookahead=J-1;p(d)}return d.strstart+=d.lookahead,d.block_start=d.strstart,d.insert=d.lookahead,d.lookahead=0,d.match_length=d.prev_length=J-1,d.match_available=0,b.next_in=n,b.input=m,b.avail_in=l,d.wrap=k,H};d.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,
@@ -176,8 +176,8 @@ b.length;0<=--c;)b[c]=0}function f(b,c,d,e,f){this.static_tree=b;this.extra_bits
d[2*c],d[2*c+1])}function m(b,c){var d=0;do d|=1&b,b>>>=1,d<<=1;while(0<--c);return d>>>1}function p(b,c,d){var e,f=Array(W+1),k=0;for(e=1;e<=W;e++)f[e]=k=k+d[e-1]<<1;for(d=0;d<=c;d++)e=b[2*d+1],0!==e&&(b[2*d]=m(f[e]++,e))}function s(b){var c;for(c=0;c<H;c++)b.dyn_ltree[2*c]=0;for(c=0;c<O;c++)b.dyn_dtree[2*c]=0;for(c=0;c<K;c++)b.bl_tree[2*c]=0;b.dyn_ltree[2*U]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function r(b){8<b.bi_valid?k(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);
b.bi_buf=0;b.bi_valid=0}function q(b,c,d,e){var f=2*c,k=2*d;return b[f]<b[k]||b[f]===b[k]&&e[c]<=e[d]}function t(b,c,d){for(var e=b.heap[d],f=d<<1;f<=b.heap_len&&(f<b.heap_len&&q(c,b.heap[f+1],b.heap[f],b.depth)&&f++,!q(c,e,b.heap[f],b.depth));)b.heap[d]=b.heap[f],d=f,f<<=1;b.heap[d]=e}function u(b,c,d){var e,f,k,g,m=0;if(0!==b.last_lit){do e=b.pending_buf[b.d_buf+2*m]<<8|b.pending_buf[b.d_buf+2*m+1],f=b.pending_buf[b.l_buf+m],m++,0===e?n(b,f,c):(k=$[f],n(b,k+G+1,c),g=I[k],0!==g&&(f-=P[k],l(b,f,g)),
e--,k=256>e?ca[e]:ca[256+(e>>>7)],n(b,k,d),g=aa[k],0!==g&&(e-=X[k],l(b,e,g)));while(m<b.last_lit)}n(b,U,c)}function x(b,c){var d,e,f,k=c.dyn_tree;e=c.stat_desc.static_tree;var g=c.stat_desc.has_stree,l=c.stat_desc.elems,n=-1;b.heap_len=0;b.heap_max=S;for(d=0;d<l;d++)0!==k[2*d]?(b.heap[++b.heap_len]=n=d,b.depth[d]=0):k[2*d+1]=0;for(;2>b.heap_len;)f=b.heap[++b.heap_len]=2>n?++n:0,k[2*f]=1,b.depth[f]=0,b.opt_len--,g&&(b.static_len-=e[2*f+1]);c.max_code=n;for(d=b.heap_len>>1;1<=d;d--)t(b,k,d);f=l;do d=
-b.heap[1],b.heap[1]=b.heap[b.heap_len--],t(b,k,1),e=b.heap[1],b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,k[2*f]=k[2*d]+k[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,k[2*d+1]=k[2*e+1]=f,b.heap[1]=f++,t(b,k,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,r,g=c.dyn_tree,l=c.max_code,q=c.stat_desc.static_tree,s=c.stat_desc.has_stree,B=c.stat_desc.extra_bits,u=c.stat_desc.extra_base,x=c.stat_desc.max_length,v=0;for(e=0;e<=W;e++)b.bl_count[e]=0;g[2*b.heap[b.heap_max]+
-1]=0;for(d=b.heap_max+1;d<S;d++)f=b.heap[d],e=g[2*g[2*f+1]+1]+1,e>x&&(e=x,v++),g[2*f+1]=e,f>l||(b.bl_count[e]++,m=0,f>=u&&(m=B[f-u]),r=g[2*f],b.opt_len+=r*(e+m),s&&(b.static_len+=r*(q[2*f+1]+m)));if(0!==v){do{for(e=x-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[x]--;v-=2}while(0<v);for(e=x;0!==e;e--)for(f=b.bl_count[e];0!==f;)m=b.heap[--d],m>l||(g[2*m+1]!==e&&(b.opt_len+=(e-g[2*m+1])*g[2*m],g[2*m+1]=e),f--)}p(k,n,b.bl_count)}function v(b,c,d){var e,f,k=-1,g=c[1],l=0,n=7,
+b.heap[1],b.heap[1]=b.heap[b.heap_len--],t(b,k,1),e=b.heap[1],b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,k[2*f]=k[2*d]+k[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,k[2*d+1]=k[2*e+1]=f,b.heap[1]=f++,t(b,k,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,r,g=c.dyn_tree,l=c.max_code,s=c.stat_desc.static_tree,q=c.stat_desc.has_stree,B=c.stat_desc.extra_bits,u=c.stat_desc.extra_base,x=c.stat_desc.max_length,v=0;for(e=0;e<=W;e++)b.bl_count[e]=0;g[2*b.heap[b.heap_max]+
+1]=0;for(d=b.heap_max+1;d<S;d++)f=b.heap[d],e=g[2*g[2*f+1]+1]+1,e>x&&(e=x,v++),g[2*f+1]=e,f>l||(b.bl_count[e]++,m=0,f>=u&&(m=B[f-u]),r=g[2*f],b.opt_len+=r*(e+m),q&&(b.static_len+=r*(s[2*f+1]+m)));if(0!==v){do{for(e=x-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[x]--;v-=2}while(0<v);for(e=x;0!==e;e--)for(f=b.bl_count[e];0!==f;)m=b.heap[--d],m>l||(g[2*m+1]!==e&&(b.opt_len+=(e-g[2*m+1])*g[2*m],g[2*m+1]=e),f--)}p(k,n,b.bl_count)}function v(b,c,d){var e,f,k=-1,g=c[1],l=0,n=7,
m=4;0===g&&(n=138,m=3);c[2*(d+1)+1]=65535;for(e=0;e<=d;e++)f=g,g=c[2*(e+1)+1],++l<n&&f===g||(l<m?b.bl_tree[2*f]+=l:0!==f?(f!==k&&b.bl_tree[2*f]++,b.bl_tree[2*B]++):10>=l?b.bl_tree[2*Y]++:b.bl_tree[2*L]++,l=0,k=f,0===g?(n=138,m=3):f===g?(n=6,m=3):(n=7,m=4))}function z(b,c,d){var e,f,k=-1,g=c[1],m=0,p=7,r=4;0===g&&(p=138,r=3);for(e=0;e<=d;e++)if(f=g,g=c[2*(e+1)+1],!(++m<p&&f===g)){if(m<r){do n(b,f,b.bl_tree);while(0!==--m)}else 0!==f?(f!==k&&(n(b,f,b.bl_tree),m--),n(b,B,b.bl_tree),l(b,m-3,2)):10>=m?
(n(b,Y,b.bl_tree),l(b,m-3,3)):(n(b,L,b.bl_tree),l(b,m-11,7));m=0;k=f;0===g?(p=138,r=3):f===g?(p=6,r=3):(p=7,r=4)}}function y(b){var c,d=4093624447;for(c=0;31>=c;c++,d>>>=1)if(1&d&&0!==b.dyn_ltree[2*c])return D;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return C;for(c=32;c<G;c++)if(0!==b.dyn_ltree[2*c])return C;return D}function E(b,c,d,e){l(b,(F<<1)+(e?1:0),3);r(b);k(b,d);k(b,~d);A.arraySet(b.pending_buf,b.window,c,d,b.pending);b.pending+=d}var A=b("../utils/common"),D=0,C=1,
F=0,G=256,H=G+1+29,O=30,K=19,S=2*H+1,W=15,da=16,U=256,B=16,Y=17,L=18,I=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],aa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],M=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],J=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],N=Array(2*(H+2));e(N);var R=Array(2*O);e(R);var ca=Array(512);e(ca);var $=Array(256);e($);var P=Array(29);e(P);var X=Array(O);e(X);var Z,T,Q,ha=!1;d._tr_init=function(b){if(!ha){var c,d,e,k=Array(W+1);for(e=
@@ -193,7 +193,7 @@ ru:"\u0420\u0443\u0441\u0441\u043a\u0438\u0439",sr:"\u0421\u0440\u043f\u0441\u04
if(null==window.mxLanguages){window.mxLanguages=[];for(var lang in mxLanguageMap)"en"!=lang&&window.mxLanguages.push(lang)}window.uiTheme=window.uiTheme||function(){var a=urlParams.ui;if(null==a&&"undefined"!==typeof JSON&&isLocalStorage)try{var b=localStorage.getItem(".drawio-config");null!=b&&(a=JSON.parse(b).ui||null)}catch(c){isLocalStorage=!1}return a}();function setCurrentXml(a,b){null!=window.parent&&null!=window.parent.openFile&&window.parent.openFile.setData(a,b)}
(function(){if("undefined"!==typeof JSON&&isLocalStorage)try{var a=localStorage.getItem(".drawio-config"),b=!0;null!=a&&(b=JSON.parse(a).showStartScreen);!1==b&&(urlParams.splash="0")}catch(c){}})();var ex=urlParams["export"];null!=ex&&("http://"!=ex.substring(0,7)&&"https://"!=ex.substring(0,8)&&(ex="http://"+ex),EXPORT_URL=ex);
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local)urlParams.analytics="0",urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0";if("1"==urlParams.offline||"1"==urlParams.local)urlParams.math="0";var host=window.location.host,searchString="draw.io",position=host.length-searchString.length,lastIndex=host.lastIndexOf(searchString,position);-1!==lastIndex&&(lastIndex===position&&"test.draw.io"!=host)&&(window.DRAWIO_LOG_URL="https://log.draw.io");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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"3.7.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"3.7.0.1",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@@ -236,25 +236,25 @@ null;if("object"==typeof b)for(var d=mxUtils.indexOf(b,a);0<=d;)b.splice(d,1),c=
b&&c.push(d),d=d.nextSibling;return c},importNode:function(a,b,c){if(mxClient.IS_IE&&(null==document.documentMode||10>document.documentMode))switch(b.nodeType){case 1:var d=a.createElement(b.nodeName);if(b.attributes&&0<b.attributes.length){for(var e=0;e<b.attributes.length;e++)d.setAttribute(b.attributes[e].nodeName,b.getAttribute(b.attributes[e].nodeName));if(c&&b.childNodes&&0<b.childNodes.length)for(e=0;e<b.childNodes.length;e++)d.appendChild(mxUtils.importNode(a,b.childNodes[e],c))}return d;
case 3:case 4:case 8:return a.createTextNode(b.value)}else return a.importNode(b,c)},createXmlDocument:function(){var a=null;document.implementation&&document.implementation.createDocument?a=document.implementation.createDocument("","",null):window.ActiveXObject&&(a=new ActiveXObject("Microsoft.XMLDOM"));return a},parseXml:function(){return window.DOMParser?function(a){return(new DOMParser).parseFromString(a,"text/xml")}:function(a){var b=mxUtils.createXmlDocument();b.async=!1;b.validateOnParse=!1;
b.resolveExternals=!1;b.loadXML(a);return b}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:function(){}}(),getPrettyXml:function(a,b,c){var d=[];if(null!=a)if(b=b||" ",c=c||"",a.nodeType==mxConstants.NODETYPE_TEXT)d.push(a.value);else{d.push(c+"\x3c"+a.nodeName);var e=a.attributes;if(null!=e)for(var f=0;f<e.length;f++){var g=mxUtils.htmlEntities(e[f].value);d.push(" "+e[f].nodeName+
-'\x3d"'+g+'"')}e=a.firstChild;if(null!=e){for(d.push("\x3e\n");null!=e;)d.push(mxUtils.getPrettyXml(e,b,c+b)),e=e.nextSibling;d.push(c+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=(a||"").replace(/&/g,
-"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==b||b)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return c.replace(/\n/g,b||"\x26#xa;")},extractTextWithWhitespace:function(a){for(var b=
-!1,c=[],d=0;a[d];d++){var e=a[d];if(3===e.nodeType||4===e.nodeType){if(11==document.documentMode&&d==a.length-1&&0==e.nodeValue.length)break;c.push(e.nodeValue+(null==e.nextSibling||3!=e.nextSibling.nodeType?"\n":""));b=!0}else 8!==e.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==e.nodeName&&0==e.innerHTML.length||!b&&"BR"==e.nodeName||"DIV"==e.nodeName&&"\x3cbr\x3e"==e.innerHTML?c.push("\n"):c.push(mxUtils.extractTextWithWhitespace(e.childNodes)),b=!1)}return c.join("")},replaceTrailingNewlines:function(a,
-b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),
-getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("\x3c"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('\x3d"'),b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/\x3e"):(b.push("\x3e"),b.push(a.innerHTML),b.push("\x3c/"+a.nodeName+"\x3e"));return b.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):
-""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});
-return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=
-document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},fit:function(a){var b=parseInt(a.offsetLeft),c=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),e=d.x,d=d.y,f=document.body,g=document.documentElement,k=e+(f.clientWidth||g.clientWidth);b+c>k&&(a.style.left=Math.max(e,k-c)+"px");b=parseInt(a.offsetTop);
-c=parseInt(a.offsetHeight);f=d+Math.max(f.clientHeight||0,g.clientHeight);b+c>f&&(a.style.top=Math.max(d,f-c)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&
-b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==
-a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)if(e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e)))d[e]=!c&&"object"==typeof a[e]?mxUtils.clone(a[e]):a[e]}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(a[c]==b[c]||null!=a[c]&&!a[c].equals(b[c]))return!1;
-return!0},equalEntries:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){var c=0,d;for(d in b)c++;for(d in a)if(c--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(b[d]))&&a[d]!=b[d])return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=
-b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" \x3d [null]\n";else if("function"==typeof a[c])b+=c+" \x3d\x3e [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" \x3d\x3e ["+d+"]\n");else b+=c+" \x3d "+a[c]+"\n"}catch(e){b+=c+"\x3d"+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,
-k,l){k-=a;l-=b;if(0===c||0===d)return s;c=Math.abs(c);d=Math.abs(d);var n=-k/2,m=-l/2,p=Math.cos(e*Math.PI/180),s=Math.sin(e*Math.PI/180);e=p*n+s*m;var n=-1*s*n+p*m,m=e*e,r=n*n,q=c*c,t=d*d,u=m/q+r/t;1<u?(c*=Math.sqrt(u),d*=Math.sqrt(u),f=0):(u=1,f===g&&(u=-1),f=u*Math.sqrt((q*t-q*r-t*m)/(q*r+t*m)));m=f*c*n/d;r=-1*f*d*e/c;k=p*m-s*r+k/2;l=s*m+p*r+l/2;q=Math.atan2((n-r)/d,(e-m)/c)-Math.atan2(0,1);f=0<=q?q:2*Math.PI+q;q=Math.atan2((-n-r)/d,(-e-m)/c)-Math.atan2((n-r)/d,(e-m)/c);e=0<=q?q:2*Math.PI+q;0==
-g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;n=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);m=p*c;p*=d;c*=s;d*=s;for(var x=Math.cos(f),v=Math.sin(f),r=-n*(m*v+d*x),q=-n*(c*v-p*x),s=[],z=0;z<g;++z){f+=e;var x=Math.cos(f),v=Math.sin(f),t=m*x-d*v+k,u=c*x+p*v+l,y=-n*(m*v+d*x),x=-n*(c*v-p*x),v=6*z;s[v]=Number(r+a);s[v+1]=Number(q+b);s[v+2]=Number(t-y+a);s[v+3]=Number(u-x+b);s[v+4]=Number(t+a);s[v+5]=Number(u+b);r=t+y;q=u+x}return s},getBoundingBox:function(a,
-b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,
-g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<
-c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=
-mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},
+'\x3d"'+g+'"')}e=a.firstChild;if(null!=e){for(d.push("\x3e\n");null!=e;)d.push(mxUtils.getPrettyXml(e,b,c+b)),e=e.nextSibling;d.push(c+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=String(a||"");
+a=a.replace(/&/g,"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==b||b)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return c.replace(/\n/g,b||"\x26#xa;")},
+extractTextWithWhitespace:function(a){for(var b=!1,c=[],d=0;a[d];d++){var e=a[d];if(3===e.nodeType||4===e.nodeType){if(11==document.documentMode&&d==a.length-1&&0==e.nodeValue.length)break;c.push(e.nodeValue+(null==e.nextSibling||3!=e.nextSibling.nodeType?"\n":""));b=!0}else 8!==e.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==e.nodeName&&0==e.innerHTML.length||!b&&"BR"==e.nodeName||"DIV"==e.nodeName&&"\x3cbr\x3e"==e.innerHTML?c.push("\n"):c.push(mxUtils.extractTextWithWhitespace(e.childNodes)),
+b=!1)}return c.join("")},replaceTrailingNewlines:function(a,b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=
+a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("\x3c"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('\x3d"'),b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/\x3e"):(b.push("\x3e"),b.push(a.innerHTML),b.push("\x3c/"+a.nodeName+"\x3e"));return b.join("")}return""}:
+function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");
+mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,
+b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},fit:function(a){var b=parseInt(a.offsetLeft),c=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),e=d.x,d=d.y,f=document.body,g=document.documentElement,k=e+(f.clientWidth||g.clientWidth);
+b+c>k&&(a.style.left=Math.max(e,k-c)+"px");b=parseInt(a.offsetTop);c=parseInt(a.offsetHeight);f=d+Math.max(f.clientHeight||0,g.clientHeight);b+c>f&&(a.style.top=Math.max(d,f-c)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,
+function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||
+0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)if(e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e)))d[e]=!c&&"object"==typeof a[e]?mxUtils.clone(a[e]):a[e]}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=
+a&&null!=b)for(var c=0;c<a.length;c++)if(a[c]==b[c]||null!=a[c]&&!a[c].equals(b[c]))return!1;return!0},equalEntries:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){var c=0,d;for(d in b)c++;for(d in a)if(c--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(b[d]))&&a[d]!=b[d])return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==
+typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" \x3d [null]\n";else if("function"==typeof a[c])b+=c+" \x3d\x3e [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" \x3d\x3e ["+d+"]\n");else b+=c+" \x3d "+a[c]+"\n"}catch(e){b+=c+"\x3d"+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*
+a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,k,l){k-=a;l-=b;if(0===c||0===d)return s;c=Math.abs(c);d=Math.abs(d);var n=-k/2,m=-l/2,p=Math.cos(e*Math.PI/180),s=Math.sin(e*Math.PI/180);e=p*n+s*m;var n=-1*s*n+p*m,m=e*e,r=n*n,q=c*c,t=d*d,u=m/q+r/t;1<u?(c*=Math.sqrt(u),d*=Math.sqrt(u),f=0):(u=1,f===g&&(u=-1),f=u*Math.sqrt((q*t-q*r-t*m)/(q*r+t*m)));m=f*c*n/d;r=-1*f*d*e/c;k=p*m-s*r+k/2;l=s*m+p*r+l/2;q=Math.atan2((n-r)/d,(e-m)/c)-Math.atan2(0,1);f=0<=q?q:2*Math.PI+q;q=Math.atan2((-n-r)/d,(-e-m)/c)-Math.atan2((n-
+r)/d,(e-m)/c);e=0<=q?q:2*Math.PI+q;0==g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;n=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);m=p*c;p*=d;c*=s;d*=s;for(var x=Math.cos(f),v=Math.sin(f),r=-n*(m*v+d*x),q=-n*(c*v-p*x),s=[],z=0;z<g;++z){f+=e;var x=Math.cos(f),v=Math.sin(f),t=m*x-d*v+k,u=c*x+p*v+l,y=-n*(m*v+d*x),x=-n*(c*v-p*x),v=6*z;s[v]=Number(r+a);s[v+1]=Number(q+b);s[v+2]=Number(t-y+a);s[v+3]=Number(u-x+b);s[v+4]=Number(t+a);s[v+5]=Number(u+b);r=t+y;q=
+u+x}return s},getBoundingBox:function(a,b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,
+b.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,
+0));a=0;45<c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;
+case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},
reversePortConstraints:function(a){var b=0,b=(a&mxConstants.DIRECTION_MASK_WEST)<<3,b=b|(a&mxConstants.DIRECTION_MASK_NORTH)<<1,b=b|(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,k.x,k.y,b,c);if(null==f||e<f)f=e,d=g-1;e=k}return d},rectangleIntersectsSegment:function(a,
b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,k=a.y,l=b.x,n=b.y,e=e+l,f=f+n,c=c+
g,d=d+k;return(e<l||e>g)&&(f<n||f>k)&&(c<g||c>l)&&(d<k||d>n)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,n=a.height,m=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<m&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+m/2,n=m):(g=a.x+m/2,l=m));l=Math.max(e,l*d);n=Math.max(e,n*d);0<f&&(l=Math.min(l,f),n=Math.min(n,f));d=new mxRectangle(g-l/2,k-n/2,l,n);g=mxUtils.toRadians(mxUtils.getValue(a.style,
@@ -1647,8 +1647,8 @@ g=this.getAlignmentTolerance();if(0<g){var k=this.graph.view.getState(b);if(null
mxConnectionHandler.prototype.createEdge=function(a,b,c,d){var e=null;null!=this.factoryMethod&&(e=this.factoryMethod(b,c,d));null==e&&(e=new mxCell(a||""),e.setEdge(!0),e.setStyle(d),a=new mxGeometry,a.relative=!0,e.setGeometry(a));return e};
mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.marker&&(this.marker.destroy(),this.marker=null);null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null);null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),
this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null)};
-function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,c){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)&&this.reset()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);mxConstraintHandler.prototype.graph=null;
-mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
+function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,c){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)?this.reset():this.redraw()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);
+mxConstraintHandler.prototype.graph=null;mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null);this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null};mxConstraintHandler.prototype.getTolerance=function(a){return this.graph.getTolerance()};
mxConstraintHandler.prototype.getImageForConstraint=function(a,b,c){return this.pointImage};mxConstraintHandler.prototype.isEventIgnored=function(a,b){return!1};mxConstraintHandler.prototype.isStateIgnored=function(a,b){return!1};mxConstraintHandler.prototype.destroyIcons=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusPoints=this.focusIcons=null}};
mxConstraintHandler.prototype.destroyFocusHighlight=function(){null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)};mxConstraintHandler.prototype.isKeepFocusEvent=function(a){return mxEvent.isShiftDown(a.getEvent())};
@@ -1657,6 +1657,8 @@ mxConstraintHandler.prototype.update=function(a,b,c,d){if(this.isEnabled()&&!thi
d));if(!this.isKeepFocusEvent(a)&&(null==this.currentFocusArea||null==this.currentFocus||null!=k||!this.graph.getModel().isVertex(this.currentFocus.cell)||!mxUtils.intersects(this.currentFocusArea,e))&&k!=this.currentFocus)this.currentFocus=this.currentFocusArea=null,this.setFocus(a,k,b);a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==k||this.currentFocus==k))for(var g=e.getCenterX(),l=e.getCenterY(),n=0;n<this.focusIcons.length;n++){var m=
g-this.focusIcons[n].bounds.getCenterX(),p=l-this.focusIcons[n].bounds.getCenterY(),m=m*m+p*p;if((this.intersects(this.focusIcons[n],e,b,c)||null!=d&&this.intersects(this.focusIcons[n],f,b,c))&&(null==a||m<a)){this.currentConstraint=this.constraints[n];this.currentPoint=this.focusPoints[n];a=m;m=this.focusIcons[n].bounds.clone();m.grow(mxConstants.HIGHLIGHT_SIZE);mxClient.IS_IE&&(m.grow(1),m.width-=1,m.height-=1);if(null==this.focusHighlight){p=this.createHighlightShape();p.dialect=this.graph.dialect==
mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;p.pointerEvents=!1;p.init(this.graph.getView().getOverlayPane());this.focusHighlight=p;var s=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:k});mxEvent.redirectMouseEvents(p.node,this.graph,s)}this.focusHighlight.bounds=m;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
+mxConstraintHandler.prototype.redraw=function(){if(null!=this.currentFocus&&null!=this.constraints&&null!=this.focusIcons){var a=this.graph.view.getState(this.currentFocus.cell);this.currentFocus=a;this.currentFocusArea=new mxRectangle(a.x,a.y,a.width,a.height);for(var b=0;b<this.constraints.length;b++){var c=this.graph.getConnectionPoint(a,this.constraints[b]),d=this.getImageForConstraint(a,this.constraints[b],c),d=new mxRectangle(Math.round(c.x-d.width/2),Math.round(c.y-d.height/2),d.width,d.height);
+this.focusIcons[b].bounds=d;this.focusIcons[b].redraw();this.currentFocusArea.add(this.focusIcons[b].bounds);this.focusPoints[b]=c}}};
mxConstraintHandler.prototype.setFocus=function(a,b,c){this.constraints=null!=b&&!this.isStateIgnored(b,c)&&this.graph.isCellConnectable(b.cell)?this.isEnabled()?this.graph.getAllConnectionConstraints(b,c)||[]:[]:null;if(null!=this.constraints){this.currentFocus=b;this.currentFocusArea=new mxRectangle(b.x,b.y,b.width,b.height);if(null!=this.focusIcons){for(c=0;c<this.focusIcons.length;c++)this.focusIcons[c].destroy();this.focusPoints=this.focusIcons=null}this.focusPoints=[];this.focusIcons=[];for(c=
0;c<this.constraints.length;c++){var d=this.graph.getConnectionPoint(b,this.constraints[c]),e=this.getImageForConstraint(b,this.constraints[c],d),f=e.src,e=new mxRectangle(Math.round(d.x-e.width/2),Math.round(d.y-e.height/2),e.width,e.height),f=new mxImageShape(e,f);f.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG;f.preserveImageAspect=!1;f.init(this.graph.getView().getDecoratorPane());(mxClient.IS_QUIRKS||8==document.documentMode)&&mxEvent.addListener(f.node,
"dragstart",function(a){mxEvent.consume(a);return!1});null!=f.node.previousSibling&&f.node.parentNode.insertBefore(f.node,f.node.parentNode.firstChild);e=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:b});f.redraw();mxEvent.redirectMouseEvents(f.node,this.graph,e);this.currentFocusArea.add(f.bounds);this.focusIcons.push(f);this.focusPoints.push(d)}this.currentFocusArea.grow(this.getTolerance(a))}else this.destroyIcons(),this.destroyFocusHighlight()};
@@ -2304,7 +2306,7 @@ a.length-1;0<=f;f--)if(0==f||a[f]!=e[f-1]){a[f].setAttribute("width",b);a[f].set
"_blank");break}}};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);
if(null!=g){var k=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,k):k,e=null!=e?Math.min(e,k):k;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;k=this.view.scale;e=e/k-(a?g.x:g.y);d=d/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var n=this.getCellGeometry(c[f].cell),d=d+l;null!=n&&(n=n.clone(),a?n.x=Math.round(d-n.width/2):n.y=Math.round(d-n.height/2),this.getModel().setGeometry(c[f].cell,
n))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var b=this.cloneCells(a),c=0;c<b.length;c++){var d=this.view.getState(a[c]);if(null!=d){var e=this.getCellGeometry(b[c]);null!=e&&e.relative&&(e.relative=!1,e.x=d.x/d.view.scale-d.view.translate.x,e.y=d.y/d.view.scale-d.view.translate.y)}}for(var d=new mxCodec,e=new mxGraphModel,f=e.getChildAt(e.getRoot(),
-0),c=0;c<a.length;c++)e.add(f,b[c]);return d.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:1;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;d=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),
+0),c=0;c<a.length;c++)e.add(f,b[c]);return d.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;d=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),
l=k.drawCellState;k.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&l.apply(this,arguments)};var n=this.view.scale,m=mxUtils.createXmlDocument(),p=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=a&&(null!=p.style?p.style.backgroundColor=a:p.setAttribute("style","background-color:"+a));null==m.createElementNS?(p.setAttribute("xmlns",mxConstants.NS_SVG),p.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/",
"xmlns:xlink",mxConstants.NS_XLINK);a=b/n;p.setAttribute("width",Math.ceil(d.width*a)+2*c+"px");p.setAttribute("height",Math.ceil(d.height*a)+2*c+"px");p.setAttribute("version","1.1");var r=p;e&&(r=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),r.setAttribute("transform","translate(0.5,0.5)"),p.appendChild(r));m.appendChild(p);m=new mxSvgCanvas2D(r);m.foOffset=e?-0.5:0;m.textOffset=e?-0.5:0;m.translate(Math.floor((c/b-d.x)/n),Math.floor((c/b-d.y)/n));var q=
m.createAlternateContent;m.createAlternateContent=function(a,b,c,d,e,f,g,k,l,n,m,p,r){var s=this.state;if(null!=this.foAltText&&(0==d||0!=s.fontSize&&f.length<5*d/s.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",Math.round((e+s.fontSize)/2));t.setAttribute("fill",s.fontColor||"black");t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(s.fontSize)+"px");t.setAttribute("font-family",s.fontFamily);(s.fontStyle&mxConstants.FONT_BOLD)==
@@ -2670,126 +2672,127 @@ q.substring(0,2)&&(q=q.substring(2),a+=' \x3ca href\x3d"https://drive.google.com
function(a,b,c,d,e,f,g){a=new ErrorDialog(this,a,b,c,d,e,f,g);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){f();null!=b&&b()},function(){f();null!=c&&c()},d,e)).container,
340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+
btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createPngDataUri=function(a,b){var c=a.toDataURL("image/png");if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/png"))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return c};EditorUi.prototype.saveCanvas=function(a,b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename,d=c.lastIndexOf(".");0<d&&(c=c.substring(0,d));
-c+=".png";d=this.createPngDataUri(a,b);this.saveData(c,"png",d.substring(d.lastIndexOf(",")+1),"image/png",!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d){if(window.MSBlobBuilder&&navigator.msSaveOrOpenBlob)d=
+c+=".png";d=this.createPngDataUri(a,b);this.saveData(c,"png",d.substring(d.lastIndexOf(",")+1),"image/png",!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d,e){if(window.MSBlobBuilder&&navigator.msSaveOrOpenBlob)d=
new MSBlobBuilder,d.append(a),a=d.getBlob(c),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height="380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);
-else if(!this.isOffline()&&mxClient.IS_SF)this.createEchoRequest(a,b,c,d).simulate(document,"_blank");else{var e=document.createElement("a");e.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));e.download=b;document.body.appendChild(e);mxClient.IS_SF&&e.setAttribute("target","_blank");try{e.click(),window.setTimeout(function(){URL.revokeObjectURL(e.href)},0),e.parentNode.removeChild(e)}catch(f){}}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,e,f){a="xml\x3d"+encodeURIComponent(a);
-return new mxXmlRequest(SAVE_URL,a+(null!=c?"\x26mime\x3d"+c:"")+(null!=e?"\x26format\x3d"+e:"")+(null!=f?"\x26base64\x3d"+f:"")+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):"")+(d?"\x26binary\x3d1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),f=Array(e),g=0;g<e;++g){for(var q=1024*g,t=Math.min(q+1024,d),u=Array(t-q),x=0;q<t;++x,++q)u[x]=c[q].charCodeAt(0);f[g]=new Uint8Array(u)}return new Blob(f,{type:b})};EditorUi.prototype.saveLocalFile=
-function(a,b,c,d){var e=!mxClient.IS_IOS||!navigator.standalone,f=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===typeof window.DropboxClient||"function"===typeof window.OneDriveClient);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):null!=c&&"image/"==c.substring(0,6)&&("image/svg"!=c.substring(0,9)||mxClient.IS_SVG)?!d||mxClient.IS_EDGE||11==document.documentMode||
-10==document.documentMode?(f.document.write('\x3chtml\x3e\x3cimg src\x3d"data:'+c+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a))+'"/\x3e\x3c/html\x3e'),f.document.close()):f.location.replace("data:"+c+";base64,"+a):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else e==App.MODE_DEVICE?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(f){this.exportFile(a,b,c,d,e,f)}))}catch(g){this.handleError(g)}}),mxUtils.bind(this,function(){this.hideDialog()}),
-mxResources.get("saveAs"),mxResources.get("download"),!1,!1,e);this.showDialog(b.container,380,f?280:160,!0,!0);b.init()};EditorUi.prototype.saveData=function(a,b,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}))};EditorUi.prototype.saveRequest=function(a,b,c){var d=!mxClient.IS_IOS||!navigator.standalone,e=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===
-typeof window.DropboxClient||"function"===typeof window.OneDriveClient);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var e=c("_blank"==d?null:a,d==App.MODE_DEVICE||null==d||"_blank"==d?"0":"1");null!=e&&(d==App.MODE_DEVICE||"_blank"==d?e.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(c){this.spinner.spin(document.body,mxResources.get("saving"))&&e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200>e.getStatus()||
-299<e.getStatus())this.handleError({message:mxResources.get("errorSavingFile")});else try{var f="pdf"==b?"application/pdf":"image/"+b;this.exportFile(e.getText(),a,f,!0,d,c)}catch(g){this.handleError(g)}}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,d);this.showDialog(a.container,380,e?280:160,!0,!0);a.init()};EditorUi.prototype.exportFile=function(a,b,c,d,e,f){};EditorUi.prototype.pickFolder=
-function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,e,f,g){if(this.spinner.spin(document.body,mxResources.get("export"))){var q=this.editor.graph.isSelectionEmpty();c=null!=c?c:q;q=b?null:this.editor.graph.background;q==mxConstants.NONE&&(q=null);null==q&&!1==b&&(q="#ffffff");var t=this.editor.graph.getSvg(q,a,null,g,null,c);d&&this.editor.addSvgShadow(t);a=this.getCurrentFile();var u=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;a=u.lastIndexOf(".");0<a&&(u=u.substring(0,
-a));var u=u+".svg",x=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,null,null,null,c));var b='\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(u,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});
-this.convertMath(this.editor.graph,t,!1,mxUtils.bind(this,function(){f?this.convertImages(t,x):x(t)}))}};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";f.setAttribute("type","checkbox");d.isSelectionEmpty()&&f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));mxUtils.br(e);var g=document.createElement("input");
-g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),null,a,b);this.showDialog(a.container,300,120,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e){var f=this.editor.graph,g=document.createElement("div");g.style.paddingTop="20px";g.style.paddingRight=
-"8px";var q=240,t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("type","checkbox");if(f.background==mxConstants.NONE||null==f.background)t.setAttribute("checked","checked"),t.defaultChecked=!0;g.appendChild(t);mxUtils.write(g,mxResources.get("transparentBackground"));mxUtils.br(g);var u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight="8px";u.setAttribute("type","checkbox");g.appendChild(u);mxUtils.write(g,mxResources.get("selectionOnly"));mxUtils.br(g);
-var x=document.createElement("input");x.style.marginTop="16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");e&&(g.appendChild(x),mxUtils.write(g,mxResources.get("crop")),mxUtils.br(g),q+=26);f.isSelectionEmpty()&&(u.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"));var v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");g.appendChild(v);mxUtils.write(g,mxResources.get("shadow"));mxUtils.br(g);
-f.shadowVisible&&(v.setAttribute("checked","checked"),v.defaultChecked=!0);var z=document.createElement("input");z.style.marginTop="16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");(this.isOffline()||!this.canvasSupported)&&z.setAttribute("disabled","disabled");a&&(g.appendChild(z),mxUtils.write(g,mxResources.get("embedImages")),mxUtils.br(g),q+=26);var y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight="8px";y.setAttribute("type","checkbox");y.style.marginBottom=
-"8px";y.setAttribute("checked","checked");y.defaultChecked=!0;g.appendChild(y);mxUtils.write(g,mxResources.get("includeCopyOfMyDiagram"));a=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,t.checked,!u.checked,v.checked,y.checked,z.checked,x.checked)}),mxResources.get("zoom")+" (%)",null,g,!this.isOffline()?c:null);this.showDialog(a.container,320,q,!0,!0);a.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop=
-"20px";c.style.paddingRight="8px";var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),q=document.createElement("td"),t=document.createElement("input");t.setAttribute("type","text");mxUtils.write(q,"Username:");g.appendChild(q);q=q.cloneNode(!1);q.appendChild(t);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),u=document.createElement("input");u.setAttribute("type","password");mxUtils.write(q,"Password:");g=g.cloneNode(!1);g.appendChild(q);
-q=q.cloneNode(!1);q.appendChild(u);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),x=document.createElement("input");x.setAttribute("type","text");mxUtils.write(q,"Organisation:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(x);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),v=document.createElement("input");v.setAttribute("type","text");mxUtils.write(q,"Repository:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(v);g.appendChild(q);f.appendChild(g);
-var q=q.cloneNode(!1),z=document.createElement("input");z.setAttribute("type","text");mxUtils.write(q,"Path:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(z);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var y=a.lastIndexOf(".");0<y&&(a=a.substring(0,y));z.value=a+".png";var E=document.createElement("input");E.setAttribute("type","text");mxUtils.write(q,"Branch/Tag:");E.value="master";
-g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(E);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),A=document.createElement("input");A.setAttribute("type","text");mxUtils.write(q,"Message:");A.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(A);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+
-x.value+"/"+v.value+"/contents/"+z.value+"?ref\x3d"+encodeURIComponent(E.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());var e={path:z.value,message:A.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+x.value+"/"+v.value+"/blob/"+E.value+"/"+z.value;
-var b=new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+
-btoa(t.value+":"+u.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause();c=!1;var f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+
-b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,g=f.lastIndexOf("."),s=f;0<g&&(s=f=s.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:s+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),u=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};
-try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();
-var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),
-function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var l=new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");l.send(mxUtils.bind(this,function(){200==l.getStatus()?k():u(l)}),mxUtils.bind(this,function(){u(l)}))}else k()}catch(p){this.handleError(p)}else u(a)}),mxUtils.bind(this,function(a){u(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,
-b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,q){d=parseInt(d);if(!isNaN(d)&&0<d){d/=100;var t=this.editor.graph.isSelectionEmpty();f=null!=f?f:t;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=q?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,
-e);a(c,g.substring(g.lastIndexOf(",")+1),q,b)}catch(m){this.handleError(m)}}),null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(u){this.handleError(u)}}})):this.showRemoteExportDialog(mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*
-f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var q=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));q.send(mxUtils.bind(this,function(){200==q.getStatus()?a(c,q.getText(),e,b):this.handleError(q)}))}catch(t){this.handleError(t)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);
-if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&
-(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':
-"")+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,f){if(this.spinner.spin(document.body,mxResources.get("exporting"))){var g=this.editor.graph.isSelectionEmpty();c=null!=c?c:g;try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c):null)}catch(b){"Invalid image"==b.message?this.downloadFile("png"):this.handleError(b)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),
-null,c,a||1,b,d,null,null,null,f)}catch(q){this.spinner.stop(),this.handleError(q)}}};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,q,t,u,x,v,z,y){f=null!=f?f:!0;v=null!=v?v:this.editor.graph;z=null!=z?z:0;var E=t?null:v.background;E==mxConstants.NONE&&(E=null);null==E&&(E=d);null==E&&!1==t&&(E="#ffffff");this.convertImages(v.getSvg(E,null,null,y,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),
-g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));q=null!=q?q:1;null!=b&&(q=!f?b/g:Math.min(1,Math.min(3*b/(4*m),b/g)));g=Math.ceil(q*g)+2*z;m=Math.ceil(q*m)+2*z;e.setAttribute("width",g);e.setAttribute("height",m);var n=e.getContext("2d");null!=E&&(n.beginPath(),n.rect(0,0,g,m),n.fillStyle=E,n.fill());n.scale(q,q);n.drawImage(d,z/q,z/q);a(e)});d.onerror=function(a){null!=e&&e(a)};try{u&&this.editor.addSvgShadow(c),this.convertMath(v,c,!0,mxUtils.bind(this,function(){d.src=
-this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,x)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,
-b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var n=a.getElementsByTagName(c),u=0;u<n.length;u++)mxUtils.bind(this,function(c){var n=d.convert(c.getAttribute(g));if(null!=n&&"data:"!=n.substring(0,5)){var r=f[n];null==r?(e++,this.convertImageToDataUri(n,function(d){null!=d&&(f[n]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,r)}})(n[u])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=
-function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var q=mxUtils.parseXml(a),
-t=this.editor.extractGraphModel(q.documentElement,null!=this.pages);if(null!=t&&"mxfile"==t.nodeName&&null!=this.pages){var u=t.getElementsByTagName("diagram");if(1==u.length)t=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(u[0]))).documentElement;else if(1<u.length){g.model.beginUpdate();try{for(var x=0;x<u.length;x++){var v=this.updatePageRoot(new DiagramPage(u[x])),z=this.pages.length;null==v.getName()&&v.setName(mxResources.get("pageWithNumber",[z+1]));g.model.execute(new ChangePage(this,
-v,v,z))}}finally{g.model.endUpdate()}}}if(null!=t&&"mxGraphModel"===t.nodeName){var y=new mxGraphModel;(new mxCodec(t.ownerDocument)).decode(t,y);var E=y.getChildCount(y.getRoot());g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};for(x=0;x<E;x++){var A=y.getChildAt(y.getRoot(),x);if(1==E&&!g.isCellLocked(g.getDefaultParent()))var D=y.getChildren(A),f=f.concat(g.importCells(D,b,c,g.getDefaultParent(),null,a));else A=g.importCells([A],0,0,g.model.getRoot(),null,a)[0],D=g.model.getChildren(A),
-g.moveCells(D,b,c),f=f.concat(D)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var C=g.getBoundingBoxFromGeometry(f,!0);null!=C&&g.moveCells(f,b-C.x,c-C.y)}}finally{g.model.endUpdate()}}}}catch(F){throw e||this.handleError(F,mxResources.get("invalidOrMissingFile")),F;}return f};EditorUi.prototype.insertLucidChart=function(a,b,c,d){var e=mxUtils.bind(this,function(){if(this.pasteLucidChart)try{this.pasteLucidChart(a,b,c,d)}catch(e){}});!this.pasteLucidChart&&!this.loadingExtensions&&!this.isOffline()?
-(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("/js/diagramly/Extensions.js",e):mxscript("/js/extensions.min.js",e)):window.setTimeout(e,0)};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,
-b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var q=this.extractGraphModelFromPng(a),t=this.importXml(q,b,c,f,!0);if(0<t.length)return t}if("data:image/svg+xml;"==a.substring(0,19))try{if(q=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(q=a.substring(a.indexOf(",")+1),q=window.atob&&!mxClient.IS_SF?atob(q):Base64.decode(q,!0)):q=decodeURIComponent(a.substring(a.indexOf(",")+
-1)),t=this.importXml(q,b,c,f,!0),0<t.length)return t}catch(u){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/
-d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),
-g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length)if('{"state":"{\\"Properties\\":'==a.substring(0,26)){e=JSON.parse(JSON.parse(a).state);var q=null,x;for(x in e.Pages)if(t=e.Pages[x],null!=t&&"0"==t.Properties.Order){q=t;break}null!=q&&this.insertLucidChart(q,b,c,f)}else{g=this.editor.graph;f=null;g.getModel().beginUpdate();
-try{f=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[f])),f.value=a,g.updateCellSize(f),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(f.value)&&g.setLinkForCell(f,f.value),f.geometry.width+=g.gridSize,f.geometry.height+=
-g.gridSize}finally{g.getModel().endUpdate()}return[f]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||
-null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,q,t,u,x){u=null!=u?u:!0;var v=!1,z=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=x?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(z=this.importXml(b,c,d,u),g=!0)),g||(z=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),u&&z.isGridEnabled()&&(c=z.snap(c),d=z.snap(d)),z=[z.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+
-a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(v=!0,this.parseFile(null!=t?t:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,c,d,u));null!=q&&q(b)}}),g)):/(\.vsd)($|\?)/i.test(g)||(z=this.insertTextAt(this.validateFileData(a),c,d,!0,null,u));!v&&null!=q&&q(z);return z};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=
-a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&
-15)<<2);b+="\x3d";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,q,t,u,x,v){var z=null!=b&&null!=
-c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;u=null!=u?u:this.maxImageBytes;t=null!=t?t:!0;var y=this.editor.graph,E=y.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):this.importFile(a,b,c,d,e,f,g,k,l,z,v)});f=null!=f?f:mxUtils.bind(this,function(a){y.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var A=
-a.length,D=A,C=[],F=mxUtils.bind(this,function(a,b){C[a]=b;if(0==--D){this.spinner.stop();if(null!=q)q(C);else{var c=[];y.getModel().beginUpdate();try{for(var d=0;d<C.length;d++){var e=C[d]();null!=e&&(c=c.concat(e))}}finally{y.getModel().endUpdate()}}f(c)}}),G=0;G<A;G++)mxUtils.bind(this,function(f){var q=a[f],s=new FileReader;s.onload=mxUtils.bind(this,function(a){if(null==g||g(q))if("image/"==q.type.substring(0,6))if("image/svg"==q.type.substring(0,9)){var k=a.target.result,s=k.indexOf(","),y=
-atob(k.substring(s+1)),A=mxUtils.parseXml(y),y=A.getElementsByTagName("svg");if(0<y.length){var y=y[0],z=v?null:y.getAttribute("content");null!=z&&("\x3c"!=z.charAt(0)&&"%"!=z.charAt(0))&&(z=unescape(window.atob?atob(z):Base64.decode(z,!0)));null!=z&&"%"==z.charAt(0)&&(z=decodeURIComponent(z));null!=z&&("\x3cmxfile "===z.substring(0,8)||"\x3cmxGraphModel "===z.substring(0,14))?F(f,mxUtils.bind(this,function(){return e(z,"text/xml",b+f*E,c+f*E,0,0,q.name)})):F(f,mxUtils.bind(this,function(){try{if(k.substring(0,
-s+1),null!=A){var a=A.getElementsByTagName("svg");if(0<a.length){var g=a[0],r=parseFloat(g.getAttribute("width")),t=parseFloat(g.getAttribute("height")),u=g.getAttribute("viewBox");if(null==u||0==u.length)g.setAttribute("viewBox","0 0 "+r+" "+t);else if(isNaN(r)||isNaN(t)){var x=u.split(" ");3<x.length&&(r=parseFloat(x[2]),t=parseFloat(x[3]))}k=this.createSvgDataUri(mxUtils.getXml(a[0]));var v=Math.min(1,Math.min(d/Math.max(1,r)),d/Math.max(1,t));return e(k,q.type,b+f*E,c+f*E,Math.max(1,Math.round(r*
-v)),Math.max(1,Math.round(t*v)),q.name)}}}catch(y){}return null}))}}else{y=!1;if("image/png"==q.type){var C=v?null:this.extractGraphModelFromPng(a.target.result);if(null!=C&&0<C.length){var D=new Image;D.src=a.target.result;F(f,mxUtils.bind(this,function(){return e(C,"text/xml",b+f*E,c+f*E,D.width,D.height,q.name)}));y=!0}}y||(null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),
-mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,k,r){F(f,mxUtils.bind(this,function(){if(null!=g&&g.length<u){var s=!t||!this.isResampleImage(a.target.result)?1:Math.min(1,Math.min(d/k,d/r));return e(g,q.type,b+f*E,c+f*E,Math.round(k*s),Math.round(r*s),q.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),t,d,x)})))}else e(a.target.result,q.type,b+f*E,c+f*E,240,160,q.name,function(a){F(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(q.name)?e(null,q.type,b+f*E,c+f*E,240,160,q.name,function(a){F(f,function(){return a})},q):"image"==q.type.substring(0,5)?s.readAsDataURL(q):s.readAsText(q)})(G)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=
-function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),q=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var t=Math.max(g/e,q/e);if(1<t){var u=Math.round(g/t),x=Math.round(q/t),v=document.createElement("canvas");v.width=u;v.height=x;v.getContext("2d").drawImage(a,0,0,u,x);var z=v.toDataURL();if(z.length<b.length){var y=
-document.createElement("canvas");y.width=u;y.height=x;var E=y.toDataURL();z!==E&&(b=z,g=u,q=x)}}}catch(A){}c(b,g,q)};EditorUi.prototype.crcTable=[];for(var b=0;256>b;b++)for(var c=b,d=0;8>d;d++)c=1==(c&1)?3988292384^c>>>1:c>>>1,EditorUi.prototype.crcTable[b]=c;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=q;q+=b;return a.substring(c,q)}
-function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var q=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,q);do{var t=g(a);if("IDAT"==f(a,4)){e=a.substring(0,q-8);t=4294967295;t=this.updateCRC(t,b,0,4);t=this.updateCRC(t,d,0,d.length);e+=String.fromCharCode(c.length+
-d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((t^4294967295)>>24&255,(t^4294967295)>>16&255,(t^4294967295)>>8&255,(t^4294967295)&255);e+=a.substring(q-8,a.length);break}e+=a.substring(q-8,q-4+t);d=f(a,t);f(a,4)}while(t);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=
-function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||
-"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var e=EditorUi.prototype.init;EditorUi.prototype.init=function(){e.apply(this,arguments);var a=this.editor.graph,b=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");
-var c=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:c.apply(this,arguments)};this.editor.getOrCreateFilename=function(){var a=b.defaultFilename,c=b.getCurrentFile();null!=c&&(a=null!=c.getTitle()?c.getTitle():a);return a};var d=this.actions.get("print");d.setEnabled(!mxClient.IS_IOS||!navigator.standalone);d.visible=d.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(70,
-!0,"find");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);mxClient.IS_IE||a.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,
-d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(l){}}),
-!1);var f=document.createElement("div");f.style.position="absolute";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.display="block";f.contentEditable=!0;mxUtils.setOpacity(f,0);f.style.width="1px";f.style.height="1px";f.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);if(null!=a.container&&
-a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var r=function(){window.setTimeout(function(){f.innerHTML=
-"\x26nbsp;";f.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&(null==this.dialog&&null!=a.container)&&a.container.focus(),f.parentNode.removeChild(f)}),0)}));mxEvent.addListener(f,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(f),r())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,
-function(b){a.isEnabled()&&(this.copyCells(f,!0),r())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML="\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var q=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:q.apply(this,arguments)}}d=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||
-0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,d,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||10<document.documentMode))d=this.highlightElement(c);
-a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");
-/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,
-"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){d=document.getElementById("geFooter");null!=d&&(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)})),d.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility=
-"hidden"})));var t=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:t.apply(this,arguments)}}d=document.getElementById("geInfo");null!=d&&d.parentNode.removeChild(d);if(Graph.fileSupport){var u=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=u&&(u.parentNode.removeChild(u),u=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==u&&
-(!mxClient.IS_IE||10<document.documentMode))u=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,"drop",mxUtils.bind(this,function(b){null!=u&&(u.parentNode.removeChild(u),u=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,
-f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b));else{var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,m=e.getElementsByTagName("img");null!=
-m&&1==m.length?(c=m[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,
-null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+l+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(l,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,g,!0))}}b.stopPropagation();b.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode()};
-EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");
-if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d=c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.insertLucidChart(JSON.parse(d)),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var g=e.lastIndexOf("%3E");0<=g&&g<e.length-3&&(e=e.substring(0,g+3))}catch(q){}try{var c=b.getElementsByTagName("span"),t=null!=c&&0<c.length?
-mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(t)&&(f=!0,e=t)}catch(u){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))),!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());
-null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(x){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=
-this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:
-a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==
-c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&this.openLocalFile(d)),!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();
-a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=
-c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,
-c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){var c=b.target.result,d=a.name;if(null!=d&&0<d.length)if(/(\.png)$/i.test(d)&&(d=d.substring(0,d.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,d))d=0<=d.lastIndexOf(".")?d.substring(0,d.lastIndexOf("."))+
-".xml":d+".xml",this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200==a.status?this.openLocalFile(a.responseText,d):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if("\x3cmxlibrary"==b.target.result.substring(0,10)){this.spinner.stop();try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}}else"image/png"==
-a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,d)});b.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?b.readAsDataURL(a):b.readAsText(a)})(a[b])};EditorUi.prototype.openLocalFile=function(a,b){var c=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);
-null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename))});null!=a&&0<a.length&&(null!=this.getCurrentFile()&&!this.isDiagramEmpty()?(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,c)):c())};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),
-this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var d=a.lastIndexOf(".");0<d&&(a=a.substring(d+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),
-c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.initializeEmbedMode=function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.editor.graph.setEnabled(!1);if((window.opener||window.parent)!=window)("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,
-function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.diagramContainer.style.visibility="";this.formatContainer.style.visibility="";this.editor.graph.setEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.showLayersDialog()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};
-EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=
-function(a){var b=null,c=!1,d=!1,e=null,f=mxUtils.bind(this,function(a,b){!this.editor.modified||"0"==urlParams.modified?this.editor.setStatus(""):null!=urlParams.modified&&this.editor.setStatus(mxResources.get(urlParams.modified))});this.editor.graph.model.addListener(mxEvent.CHANGE,f);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){function s(a){if(null!=a&&"function"===typeof a.charAt&&"\x3c"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):
-"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"\x3c"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(b){}return a}var u=f.data;if("json"==urlParams.proto){try{u=JSON.parse(u)}catch(x){u=null}if(null==u)return;if("dialog"==u.action){this.showError(null!=u.titleKey?mxResources.get(u.titleKey):u.title,null!=u.messageKey?mxResources.get(u.messageKey):u.message,null!=u.buttonKey?mxResources.get(u.buttonKey):u.button);null!=
-u.modified&&(this.editor.modified=u.modified);return}if("prompt"==u.action){var v=new FilenameDialog(this,u.defaultValue||"",null!=u.okKey?mxResources.get(u.okKey):null,function(a){null!=a&&g.postMessage(JSON.stringify({event:"prompt",value:a,message:u}),"*")},null!=u.titleKey?mxResources.get(u.titleKey):u.title);this.showDialog(v.container,300,80,!0,!1);v.init();return}if("draft"==u.action){v=null;v="data:image/png;base64,"==u.xml.substring(0,22)?this.extractGraphModelFromPng(u.xml):s(u.xml);v=new DraftDialog(this,
-mxResources.get("draftFound",[u.name||this.defaultFilename]),v,mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"edit",message:u}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"discard",message:u}),"*")}),u.editKey?mxResources.get(u.editKey):null,u.discardKey?mxResources.get(u.discardKey):null);this.showDialog(v.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
-try{v.init()}catch(z){g.postMessage(JSON.stringify({event:"draft",error:z.toString(),message:u}),"*")}return}if("template"==u.action){v=new NewDialog(this,!1,null!=u.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=u.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}));this.showDialog(v.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&
-this.actions.get("exit").funct()}));v.init();return}if("status"==u.action){null!=u.messageKey?this.editor.setStatus(mxResources.get(u.messageKey)):null!=u.message&&this.editor.setStatus(u.message);null!=u.modified&&(this.editor.modified=u.modified);return}if("spinner"==u.action){var y=null!=u.messageKey?mxResources.get(u.messageKey):u.message;null!=u.show&&!u.show?this.spinner.stop():this.spinner.spin(document.body,y);return}if("export"==u.action){if("png"==u.format||"xmlpng"==u.format){if(null==
-u.spin&&null==u.spinKey||this.spinner.spin(document.body,null!=u.spinKey?mxResources.get(u.spinKey):u.spin)){var E=null!=u.xml?u.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var A=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=u.format;b.xml=encodeURIComponent(E);b.data="data:image/png;base64,"+a;g.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var D=this.editor.graph;if(null!=this.pages&&this.currentPage!=
-this.pages[0]){var D=this.createTemporaryGraph(D.getStylesheet()),C=D.getGlobalVariable,F=this.pages[0];D.getGlobalVariable=function(a){return"page"==a?F.getName():"pagenumber"==a?1:C.apply(this,arguments)};document.body.appendChild(D.container);D.model.setRoot(F.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");"xmlpng"==u.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(E))));D!=this.editor.graph&&D.container.parentNode.removeChild(D.container);
-A(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,null,null,D)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==u.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(E)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();200==a.getStatus()&&A(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=u.xml&&0<u.xml.length&&this.setFileData(u.xml);y=this.createLoadMessage("export");
-if("html2"==u.format||"html"==u.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))v=this.getXmlFileData(),y.xml=mxUtils.getXml(v),y.data=this.getFileData(null,null,!0,null,null,null,v),y.format=u.format;else if("html"==u.format)E=this.editor.getGraphXml(),y.data=this.getHtml(E,this.editor.graph),y.xml=mxUtils.getXml(E),y.format=u.format;else{mxSvgCanvas2D.prototype.foAltText=null;v=this.editor.graph.background;v==mxConstants.NONE&&(v=null);y.xml=this.getFileData(!0);y.format="svg";
-if(u.embedImages||null==u.embedImages){if(null==u.spin&&null==u.spinKey||this.spinner.spin(document.body,null!=u.spinKey?mxResources.get(u.spinKey):u.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==u.format?this.getEmbeddedSvg(y.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();y.data=this.createSvgDataUri(a);g.postMessage(JSON.stringify(y),"*")})):this.convertImages(this.editor.graph.getSvg(v),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();y.data=this.createSvgDataUri(mxUtils.getXml(a));g.postMessage(JSON.stringify(y),"*")}));return}v="xmlsvg"==u.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(v));y.data=this.createSvgDataUri(v)}g.postMessage(JSON.stringify(y),"*")}return}if("load"==u.action)d=1==u.autosave,this.hideDialog(),null!=u.modified&&null==urlParams.modified&&(urlParams.modified=u.modified),null!=u.saveAndExit&&null==urlParams.saveAndExit&&
-(urlParams.saveAndExit=u.saveAndExit),null!=u.title&&null!=this.buttonContainer&&(v=document.createElement("span"),mxUtils.write(v,u.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),this.buttonContainer.appendChild(v)),u=null!=u.xmlpng?this.extractGraphModelFromPng(u.xmlpng):null!=u.xml&&"data:image/png;base64,"==u.xml.substring(0,22)?this.extractGraphModelFromPng(u.xml):
-u.xml;else{g.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(u)}),"*");return}}u=s(u);c=!0;try{a(u,f)}catch(G){this.handleError(G)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var H=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=H();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=H();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;
-d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",
-b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));("1"==urlParams.returnbounds||"json"==urlParams.proto)&&g.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}));var g=window.opener||window.parent,f="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";g.postMessage(f,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position=
-"absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" (Ctrl+S)");b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&
-(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft=
-"6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px";"atlas"==uiTheme&&(this.statusContainer.style.color="#707070",this.statusContainer.style.paddingLeft="26px",this.toolbar.staticElements.push(this.statusContainer),this.toolbar.container.appendChild(this.statusContainer))}};
-EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"\x3d"+urlParams[d],c="\x26")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),
+else{var f=document.createElement("a");if("undefined"!==typeof f.download||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));"undefined"!==typeof f.download?f.download=b:f.setAttribute("target","_blank");document.body.appendChild(f);try{f.click(),window.setTimeout(function(){URL.revokeObjectURL(f.href)},0),f.parentNode.removeChild(f)}catch(g){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,
+b,c,d,e,f){a="xml\x3d"+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"\x26mime\x3d"+c:"")+(null!=e?"\x26format\x3d"+e:"")+(null!=f?"\x26base64\x3d"+f:"")+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):"")+(d?"\x26binary\x3d1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),f=Array(e),g=0;g<e;++g){for(var q=1024*g,t=Math.min(q+1024,d),u=Array(t-q),x=0;q<t;++x,++q)u[x]=c[q].charCodeAt(0);f[g]=new Uint8Array(u)}return new Blob(f,
+{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,e){var f=!mxClient.IS_IOS||!navigator.standalone;e=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===typeof window.DropboxClient||"function"===typeof window.OneDriveClient);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):null!=c&&"image/"==c.substring(0,6)&&("image/svg"!=c.substring(0,9)||mxClient.IS_SVG)?
+mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode?(f.document.write('\x3chtml\x3e\x3cimg src\x3d"data:'+c+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a))+'"/\x3e\x3c/html\x3e'),f.document.close()):f.location.replace("data:"+c+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a))):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else e==App.MODE_DEVICE?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(f){this.exportFile(a,
+b,c,d,e,f)}))}catch(g){this.handleError(g)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,f);this.showDialog(b.container,380,e?280:160,!0,!0);b.init()};EditorUi.prototype.saveData=function(a,b,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}))};EditorUi.prototype.saveRequest=function(a,b,c){var d=!mxClient.IS_IOS||!navigator.standalone,
+e=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===typeof window.DropboxClient||"function"===typeof window.OneDriveClient);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var e=c("_blank"==d?null:a,d==App.MODE_DEVICE||null==d||"_blank"==d?"0":"1");null!=e&&(d==App.MODE_DEVICE||"_blank"==d?e.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(c){this.spinner.spin(document.body,mxResources.get("saving"))&&
+e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200>e.getStatus()||299<e.getStatus())this.handleError({message:mxResources.get("errorSavingFile")});else try{var f="pdf"==b?"application/pdf":"image/"+b;this.exportFile(e.getText(),a,f,!0,d,c)}catch(g){this.handleError(g)}}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,d);this.showDialog(a.container,380,e?280:160,!0,
+!0);a.init()};EditorUi.prototype.exportFile=function(a,b,c,d,e,f){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,e,f,g){if(this.spinner.spin(document.body,mxResources.get("export"))){var q=this.editor.graph.isSelectionEmpty();c=null!=c?c:q;q=b?null:this.editor.graph.background;q==mxConstants.NONE&&(q=null);null==q&&!1==b&&(q="#ffffff");var t=this.editor.graph.getSvg(q,a,null,g,null,c);d&&this.editor.addSvgShadow(t);a=this.getCurrentFile();var u=
+null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;a=u.lastIndexOf(".");0<a&&(u=u.substring(0,a));var u=u+".svg",x=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,null,null,null,c));var b='\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(u,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},
+mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,t,!1,mxUtils.bind(this,function(){f?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(t,x,this.thumbImageCache)):x(t)}))}};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";f.setAttribute("type","checkbox");d.isSelectionEmpty()&&
+f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));mxUtils.br(e);var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),null,a,b);this.showDialog(a.container,300,120,
+!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e){var f=this.editor.graph,g=document.createElement("div");g.style.paddingTop="20px";g.style.paddingRight="8px";var q=240,t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("type","checkbox");if(f.background==mxConstants.NONE||null==f.background)t.setAttribute("checked","checked"),t.defaultChecked=!0;g.appendChild(t);mxUtils.write(g,mxResources.get("transparentBackground"));mxUtils.br(g);var u=document.createElement("input");
+u.style.marginTop="16px";u.style.marginRight="8px";u.setAttribute("type","checkbox");g.appendChild(u);mxUtils.write(g,mxResources.get("selectionOnly"));mxUtils.br(g);var x=document.createElement("input");x.style.marginTop="16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");e&&(g.appendChild(x),mxUtils.write(g,mxResources.get("crop")),mxUtils.br(g),q+=26);f.isSelectionEmpty()&&(u.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"));var v=document.createElement("input");
+v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");g.appendChild(v);mxUtils.write(g,mxResources.get("shadow"));mxUtils.br(g);f.shadowVisible&&(v.setAttribute("checked","checked"),v.defaultChecked=!0);var z=document.createElement("input");z.style.marginTop="16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");(this.isOffline()||!this.canvasSupported)&&z.setAttribute("disabled","disabled");a&&(g.appendChild(z),mxUtils.write(g,mxResources.get("embedImages")),
+mxUtils.br(g),q+=26);var y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight="8px";y.setAttribute("type","checkbox");y.style.marginBottom="8px";y.setAttribute("checked","checked");y.defaultChecked=!0;g.appendChild(y);mxUtils.write(g,mxResources.get("includeCopyOfMyDiagram"));a=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,t.checked,!u.checked,v.checked,y.checked,z.checked,x.checked)}),mxResources.get("zoom")+" (%)",null,g,!this.isOffline()?c:null);this.showDialog(a.container,
+320,q,!0,!0);a.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop="20px";c.style.paddingRight="8px";var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),q=document.createElement("td"),t=document.createElement("input");t.setAttribute("type","text");mxUtils.write(q,"Username:");g.appendChild(q);q=q.cloneNode(!1);q.appendChild(t);g.appendChild(q);f.appendChild(g);var q=
+q.cloneNode(!1),u=document.createElement("input");u.setAttribute("type","password");mxUtils.write(q,"Password:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(u);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),x=document.createElement("input");x.setAttribute("type","text");mxUtils.write(q,"Organisation:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(x);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),v=document.createElement("input");v.setAttribute("type",
+"text");mxUtils.write(q,"Repository:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(v);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),z=document.createElement("input");z.setAttribute("type","text");mxUtils.write(q,"Path:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(z);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var y=a.lastIndexOf(".");0<y&&(a=a.substring(0,
+y));z.value=a+".png";var E=document.createElement("input");E.setAttribute("type","text");mxUtils.write(q,"Branch/Tag:");E.value="master";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(E);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),A=document.createElement("input");A.setAttribute("type","text");mxUtils.write(q,"Message:");A.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(A);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);
+e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+x.value+"/"+v.value+"/contents/"+z.value+"?ref\x3d"+encodeURIComponent(E.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());var e={path:z.value,message:A.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==
+f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+x.value+"/"+v.value+"/blob/"+E.value+"/"+z.value;var b=new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,
+170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+btoa(t.value+":"+u.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};
+EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause();c=!1;var f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,
+g=f.lastIndexOf("."),s=f;0<g&&(s=f=s.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:s+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),u=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+
+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+
+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var l=new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");l.send(mxUtils.bind(this,
+function(){200==l.getStatus()?k():u(l)}),mxUtils.bind(this,function(){u(l)}))}else k()}catch(p){this.handleError(p)}else u(a)}),mxUtils.bind(this,function(a){u(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,q){d=parseInt(d);
+if(!isNaN(d)&&0<d){d/=100;var t=this.editor.graph.isSelectionEmpty();f=null!=f?f:t;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=q?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,e);a(c,g.substring(g.lastIndexOf(",")+1),q,b)}catch(m){this.handleError(m)}}),null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(u){this.handleError(u)}}})):this.showRemoteExportDialog(mxResources.get("publish"),
+"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var q=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));q.send(mxUtils.bind(this,function(){200==q.getStatus()?a(c,q.getText(),
+e,b):this.handleError(q)}))}catch(t){this.handleError(t)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");
+b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':
+"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,f){if(this.spinner.spin(document.body,mxResources.get("exporting"))){var g=this.editor.graph.isSelectionEmpty();c=null!=c?c:g;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();
+try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c):null)}catch(b){"Invalid image"==b.message?this.downloadFile("png"):this.handleError(b)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,d,null,null,null,f)}catch(q){this.spinner.stop(),this.handleError(q)}}};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,q,t,u,x,v,z,y){f=null!=f?f:!0;v=null!=v?v:this.editor.graph;z=null!=z?z:0;var E=t?null:v.background;E==
+mxConstants.NONE&&(E=null);null==E&&(E=d);null==E&&!1==t&&(E="#ffffff");this.convertImages(v.getSvg(E,null,null,y,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));q=null!=q?q:1;null!=b&&(q=!f?b/g:Math.min(1,Math.min(3*b/(4*m),b/g)));g=Math.ceil(q*g)+2*z;m=Math.ceil(q*m)+2*z;e.setAttribute("width",g);e.setAttribute("height",m);var n=e.getContext("2d");
+null!=E&&(n.beginPath(),n.rect(0,0,g,m),n.fillStyle=E,n.fill());n.scale(q,q);n.drawImage(d,z/q,z/q);a(e)});d.onerror=function(a){null!=e&&e(a)};try{u&&this.editor.addSvgShadow(c),this.convertMath(v,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,x)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==
+c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var n=a.getElementsByTagName(c),u=0;u<n.length;u++)mxUtils.bind(this,function(c){var n=d.convert(c.getAttribute(g));if(null!=n&&"data:"!=n.substring(0,5)){var r=
+f[n];null==r?(e++,this.convertImageToDataUri(n,function(d){null!=d&&(f[n]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,r)}})(n[u])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=
+c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var q=mxUtils.parseXml(a),t=this.editor.extractGraphModel(q.documentElement,null!=this.pages);if(null!=t&&"mxfile"==t.nodeName&&null!=this.pages){var u=t.getElementsByTagName("diagram");if(1==u.length)t=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(u[0]))).documentElement;else if(1<
+u.length){g.model.beginUpdate();try{for(var x=0;x<u.length;x++){var v=this.updatePageRoot(new DiagramPage(u[x])),z=this.pages.length;null==v.getName()&&v.setName(mxResources.get("pageWithNumber",[z+1]));g.model.execute(new ChangePage(this,v,v,z))}}finally{g.model.endUpdate()}}}if(null!=t&&"mxGraphModel"===t.nodeName){var y=new mxGraphModel;(new mxCodec(t.ownerDocument)).decode(t,y);var E=y.getChildCount(y.getRoot());g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};for(x=0;x<
+E;x++){var A=y.getChildAt(y.getRoot(),x);if(1==E&&!g.isCellLocked(g.getDefaultParent()))var D=y.getChildren(A),f=f.concat(g.importCells(D,b,c,g.getDefaultParent(),null,a));else A=g.importCells([A],0,0,g.model.getRoot(),null,a)[0],D=g.model.getChildren(A),g.moveCells(D,b,c),f=f.concat(D)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var C=g.getBoundingBoxFromGeometry(f,!0);null!=C&&g.moveCells(f,b-C.x,c-C.y)}}finally{g.model.endUpdate()}}}}catch(F){throw e||this.handleError(F,mxResources.get("invalidOrMissingFile")),
+F;}return f};EditorUi.prototype.insertLucidChart=function(a,b,c,d){var e=mxUtils.bind(this,function(){if(this.pasteLucidChart)try{this.pasteLucidChart(a,b,c,d)}catch(e){}});!this.pasteLucidChart&&!this.loadingExtensions&&!this.isOffline()?(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("/js/diagramly/Extensions.js",e):mxscript("/js/extensions.min.js",e)):window.setTimeout(e,0)};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&
+(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var q=this.extractGraphModelFromPng(a),t=this.importXml(q,
+b,c,f,!0);if(0<t.length)return t}if("data:image/svg+xml;"==a.substring(0,19))try{if(q=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(q=a.substring(a.indexOf(",")+1),q=window.atob&&!mxClient.IS_SF?atob(q):Base64.decode(q,!0)):q=decodeURIComponent(a.substring(a.indexOf(",")+1)),t=this.importXml(q,b,c,f,!0),0<t.length)return t}catch(u){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,
+null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+
+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length)if('{"state":"{\\"Properties\\":'==a.substring(0,26)){e=
+JSON.parse(JSON.parse(a).state);var q=null,x;for(x in e.Pages)if(t=e.Pages[x],null!=t&&"0"==t.Properties.Order){q=t;break}null!=q&&this.insertLucidChart(q,b,c,f)}else{g=this.editor.graph;f=null;g.getModel().beginUpdate();try{f=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[f])),f.value=a,g.updateCellSize(f),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(f.value)&&
+g.setLinkForCell(f,f.value),f.geometry.width+=g.gridSize,f.geometry.height+=g.gridSize}finally{g.getModel().endUpdate()}return[f]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=
+function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,q,t,u,x){u=null!=u?u:!0;var v=!1,z=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=x?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(z=this.importXml(b,c,d,u),g=!0)),g||(z=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+
+1))),u&&z.isGridEnabled()&&(c=z.snap(c),d=z.snap(d)),z=[z.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(v=!0,this.parseFile(null!=t?t:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,
+c,d,u));null!=q&&q(b)}}),g)):/(\.vsd)($|\?)/i.test(g)||(z=this.insertTextAt(this.validateFileData(a),c,d,!0,null,u));!v&&null!=q&&q(z);return z};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);b+="\x3d";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>
+6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,q,t,u,x,v){var z=null!=b&&null!=c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;u=null!=u?u:this.maxImageBytes;t=null!=t?t:!0;var y=this.editor.graph,E=y.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):
+this.importFile(a,b,c,d,e,f,g,k,l,z,v)});f=null!=f?f:mxUtils.bind(this,function(a){y.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var A=a.length,D=A,C=[],F=mxUtils.bind(this,function(a,b){C[a]=b;if(0==--D){this.spinner.stop();if(null!=q)q(C);else{var c=[];y.getModel().beginUpdate();try{for(var d=0;d<C.length;d++){var e=C[d]();null!=e&&(c=c.concat(e))}}finally{y.getModel().endUpdate()}}f(c)}}),G=0;G<A;G++)mxUtils.bind(this,function(f){var q=a[f],s=new FileReader;
+s.onload=mxUtils.bind(this,function(a){if(null==g||g(q))if("image/"==q.type.substring(0,6))if("image/svg"==q.type.substring(0,9)){var k=a.target.result,s=k.indexOf(","),y=atob(k.substring(s+1)),A=mxUtils.parseXml(y),y=A.getElementsByTagName("svg");if(0<y.length){var y=y[0],z=v?null:y.getAttribute("content");null!=z&&("\x3c"!=z.charAt(0)&&"%"!=z.charAt(0))&&(z=unescape(window.atob?atob(z):Base64.decode(z,!0)));null!=z&&"%"==z.charAt(0)&&(z=decodeURIComponent(z));null!=z&&("\x3cmxfile "===z.substring(0,
+8)||"\x3cmxGraphModel "===z.substring(0,14))?F(f,mxUtils.bind(this,function(){return e(z,"text/xml",b+f*E,c+f*E,0,0,q.name)})):F(f,mxUtils.bind(this,function(){try{if(k.substring(0,s+1),null!=A){var a=A.getElementsByTagName("svg");if(0<a.length){var g=a[0],r=parseFloat(g.getAttribute("width")),t=parseFloat(g.getAttribute("height")),u=g.getAttribute("viewBox");if(null==u||0==u.length)g.setAttribute("viewBox","0 0 "+r+" "+t);else if(isNaN(r)||isNaN(t)){var x=u.split(" ");3<x.length&&(r=parseFloat(x[2]),
+t=parseFloat(x[3]))}k=this.createSvgDataUri(mxUtils.getXml(a[0]));var v=Math.min(1,Math.min(d/Math.max(1,r)),d/Math.max(1,t));return e(k,q.type,b+f*E,c+f*E,Math.max(1,Math.round(r*v)),Math.max(1,Math.round(t*v)),q.name)}}}catch(y){}return null}))}}else{y=!1;if("image/png"==q.type){var C=v?null:this.extractGraphModelFromPng(a.target.result);if(null!=C&&0<C.length){var D=new Image;D.src=a.target.result;F(f,mxUtils.bind(this,function(){return e(C,"text/xml",b+f*E,c+f*E,D.width,D.height,q.name)}));y=
+!0}}y||(null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,k,r){F(f,mxUtils.bind(this,function(){if(null!=
+g&&g.length<u){var s=!t||!this.isResampleImage(a.target.result)?1:Math.min(1,Math.min(d/k,d/r));return e(g,q.type,b+f*E,c+f*E,Math.round(k*s),Math.round(r*s),q.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),t,d,x)})))}else e(a.target.result,q.type,b+f*E,c+f*E,240,160,q.name,function(a){F(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(q.name)?e(null,q.type,b+f*E,c+f*E,240,160,q.name,function(a){F(f,function(){return a})},q):"image"==q.type.substring(0,5)?s.readAsDataURL(q):
+s.readAsText(q)})(G)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),q=Math.max(1,a.height);if(d&&this.isResampleImage(b,
+f))try{var t=Math.max(g/e,q/e);if(1<t){var u=Math.round(g/t),x=Math.round(q/t),v=document.createElement("canvas");v.width=u;v.height=x;v.getContext("2d").drawImage(a,0,0,u,x);var z=v.toDataURL();if(z.length<b.length){var y=document.createElement("canvas");y.width=u;y.height=x;var E=y.toDataURL();z!==E&&(b=z,g=u,q=x)}}}catch(A){}c(b,g,q)};EditorUi.prototype.crcTable=[];for(var b=0;256>b;b++)for(var c=b,d=0;8>d;d++)c=1==(c&1)?3988292384^c>>>1:c>>>1,EditorUi.prototype.crcTable[b]=c;EditorUi.prototype.updateCRC=
+function(a,b,c,d){for(var e=0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=q;q+=b;return a.substring(c,q)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var q=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,
+4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,q);do{var t=g(a);if("IDAT"==f(a,4)){e=a.substring(0,q-8);t=4294967295;t=this.updateCRC(t,b,0,4);t=this.updateCRC(t,d,0,d.length);e+=String.fromCharCode(c.length+d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((t^4294967295)>>24&255,(t^4294967295)>>
+16&255,(t^4294967295)>>8&255,(t^4294967295)&255);e+=a.substring(q-8,a.length);break}e+=a.substring(q-8,q-4+t);d=f(a,t);f(a,4)}while(t);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),
+"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=
+c);d.src=a};var e=EditorUi.prototype.init;EditorUi.prototype.init=function(){e.apply(this,arguments);var a=this.editor.graph,b=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");var c=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:c.apply(this,arguments)};
+this.editor.getOrCreateFilename=function(){var a=b.defaultFilename,c=b.getCurrentFile();null!=c&&(a=null!=c.getTitle()?c.getTitle():a);return a};var d=this.actions.get("print");d.setEnabled(!mxClient.IS_IOS||!navigator.standalone);d.visible=d.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(70,!0,"find");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);mxClient.IS_IE||a.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],
+0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(l){}}),!1);var f=document.createElement("div");f.style.position="absolute";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.display="block";f.contentEditable=!0;mxUtils.setOpacity(f,
+0);f.style.width="1px";f.style.height="1px";f.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);if(null!=a.container&&a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&
+!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var r=function(){window.setTimeout(function(){f.innerHTML="\x26nbsp;";f.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,
+function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&(null==this.dialog&&null!=a.container)&&a.container.focus(),f.parentNode.removeChild(f)}),0)}));mxEvent.addListener(f,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(f),r())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,function(b){a.isEnabled()&&(this.copyCells(f,!0),r())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML=
+"\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var q=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:q.apply(this,arguments)}}d=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,d,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=
+this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||10<document.documentMode))d=this.highlightElement(c);a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,
+0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,
+Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){d=document.getElementById("geFooter");
+null!=d&&(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)})),d.appendChild(this.styleInput),
+this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var t=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:t.apply(this,arguments)}}d=document.getElementById("geInfo");
+null!=d&&d.parentNode.removeChild(d);if(Graph.fileSupport){var u=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=u&&(u.parentNode.removeChild(u),u=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==u&&(!mxClient.IS_IE||10<document.documentMode))u=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,
+"drop",mxUtils.bind(this,function(b){null!=u&&(u.parentNode.removeChild(u),u=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b));else{var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?
+b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,m=e.getElementsByTagName("img");null!=m&&1==m.length?(c=m[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));
+a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+
+l+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(l,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,g,!0))}}b.stopPropagation();b.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode()};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),
+e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d=c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&
+(this.insertLucidChart(JSON.parse(d)),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var g=e.lastIndexOf("%3E");0<=g&&g<e.length-3&&(e=e.substring(0,g+3))}catch(q){}try{var c=b.getElementsByTagName("span"),t=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(t)&&(f=!0,e=t)}catch(u){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=
+e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))),!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(x){}}}}};
+EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,
+function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=
+null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&this.openLocalFile(d)),
+!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=
+0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,
+e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,
+mxResources.get("loading")))for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){var c=b.target.result,d=a.name;if(null!=d&&0<d.length)if(/(\.png)$/i.test(d)&&(d=d.substring(0,d.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,d))d=0<=d.lastIndexOf(".")?d.substring(0,d.lastIndexOf("."))+".xml":d+".xml",this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),
+200==a.status?this.openLocalFile(a.responseText,d):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if("\x3cmxlibrary"==b.target.result.substring(0,10)){this.spinner.stop();try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,
+d)});b.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?b.readAsDataURL(a):b.readAsText(a)})(a[b])};EditorUi.prototype.openLocalFile=function(a,b){var c=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,
+a,b||this.defaultFilename))});null!=a&&0<a.length&&(null!=this.getCurrentFile()&&!this.isDiagramEmpty()?(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,c)):c())};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);
+var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var d=a.lastIndexOf(".");0<d&&(a=a.substring(d+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=
+0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.initializeEmbedMode=function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.editor.graph.setEnabled(!1);if((window.opener||window.parent)!=window)("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.diagramContainer.style.visibility=
+"";this.formatContainer.style.visibility="";this.editor.graph.setEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.showLayersDialog()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&
+(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,f=mxUtils.bind(this,function(a,b){!this.editor.modified||"0"==urlParams.modified?
+this.editor.setStatus(""):null!=urlParams.modified&&this.editor.setStatus(mxResources.get(urlParams.modified))});this.editor.graph.model.addListener(mxEvent.CHANGE,f);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){function s(a){if(null!=a&&"function"===typeof a.charAt&&"\x3c"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):
+"\x3c"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(b){}return a}var u=f.data;if("json"==urlParams.proto){try{u=JSON.parse(u)}catch(x){u=null}if(null==u)return;if("dialog"==u.action){this.showError(null!=u.titleKey?mxResources.get(u.titleKey):u.title,null!=u.messageKey?mxResources.get(u.messageKey):u.message,null!=u.buttonKey?mxResources.get(u.buttonKey):u.button);null!=u.modified&&(this.editor.modified=u.modified);return}if("prompt"==u.action){var v=new FilenameDialog(this,u.defaultValue||
+"",null!=u.okKey?mxResources.get(u.okKey):null,function(a){null!=a&&g.postMessage(JSON.stringify({event:"prompt",value:a,message:u}),"*")},null!=u.titleKey?mxResources.get(u.titleKey):u.title);this.showDialog(v.container,300,80,!0,!1);v.init();return}if("draft"==u.action){v=null;v="data:image/png;base64,"==u.xml.substring(0,22)?this.extractGraphModelFromPng(u.xml):s(u.xml);v=new DraftDialog(this,mxResources.get("draftFound",[u.name||this.defaultFilename]),v,mxUtils.bind(this,function(){this.hideDialog();
+g.postMessage(JSON.stringify({event:"draft",result:"edit",message:u}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"discard",message:u}),"*")}),u.editKey?mxResources.get(u.editKey):null,u.discardKey?mxResources.get(u.discardKey):null);this.showDialog(v.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{v.init()}catch(z){g.postMessage(JSON.stringify({event:"draft",error:z.toString(),message:u}),
+"*")}return}if("template"==u.action){v=new NewDialog(this,!1,null!=u.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=u.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}));this.showDialog(v.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));v.init();return}if("status"==u.action){null!=u.messageKey?
+this.editor.setStatus(mxResources.get(u.messageKey)):null!=u.message&&this.editor.setStatus(u.message);null!=u.modified&&(this.editor.modified=u.modified);return}if("spinner"==u.action){var y=null!=u.messageKey?mxResources.get(u.messageKey):u.message;null!=u.show&&!u.show?this.spinner.stop():this.spinner.spin(document.body,y);return}if("export"==u.action){if("png"==u.format||"xmlpng"==u.format){if(null==u.spin&&null==u.spinKey||this.spinner.spin(document.body,null!=u.spinKey?mxResources.get(u.spinKey):
+u.spin)){var E=null!=u.xml?u.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var A=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=u.format;b.xml=encodeURIComponent(E);b.data="data:image/png;base64,"+a;g.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var D=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var D=this.createTemporaryGraph(D.getStylesheet()),C=D.getGlobalVariable,F=this.pages[0];
+D.getGlobalVariable=function(a){return"page"==a?F.getName():"pagenumber"==a?1:C.apply(this,arguments)};document.body.appendChild(D.container);D.model.setRoot(F.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");"xmlpng"==u.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(E))));D!=this.editor.graph&&D.container.parentNode.removeChild(D.container);A(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,
+null,null,D)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==u.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(E)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();200==a.getStatus()&&A(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=u.xml&&0<u.xml.length&&this.setFileData(u.xml);y=this.createLoadMessage("export");if("html2"==u.format||"html"==u.format&&("0"!=urlParams.pages||
+null!=this.pages&&1<this.pages.length))v=this.getXmlFileData(),y.xml=mxUtils.getXml(v),y.data=this.getFileData(null,null,!0,null,null,null,v),y.format=u.format;else if("html"==u.format)E=this.editor.getGraphXml(),y.data=this.getHtml(E,this.editor.graph),y.xml=mxUtils.getXml(E),y.format=u.format;else{mxSvgCanvas2D.prototype.foAltText=null;v=this.editor.graph.background;v==mxConstants.NONE&&(v=null);y.xml=this.getFileData(!0);y.format="svg";if(u.embedImages||null==u.embedImages){if(null==u.spin&&null==
+u.spinKey||this.spinner.spin(document.body,null!=u.spinKey?mxResources.get(u.spinKey):u.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==u.format?this.getEmbeddedSvg(y.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();y.data=this.createSvgDataUri(a);g.postMessage(JSON.stringify(y),"*")})):this.convertImages(this.editor.graph.getSvg(v),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();y.data=this.createSvgDataUri(mxUtils.getXml(a));
+g.postMessage(JSON.stringify(y),"*")}));return}v="xmlsvg"==u.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(v));y.data=this.createSvgDataUri(v)}g.postMessage(JSON.stringify(y),"*")}return}if("load"==u.action)d=1==u.autosave,this.hideDialog(),null!=u.modified&&null==urlParams.modified&&(urlParams.modified=u.modified),null!=u.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=u.saveAndExit),null!=u.title&&null!=this.buttonContainer&&
+(v=document.createElement("span"),mxUtils.write(v,u.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),this.buttonContainer.appendChild(v)),u=null!=u.xmlpng?this.extractGraphModelFromPng(u.xmlpng):null!=u.xml&&"data:image/png;base64,"==u.xml.substring(0,22)?this.extractGraphModelFromPng(u.xml):u.xml;else{g.postMessage(JSON.stringify({error:"unknownMessage",
+data:JSON.stringify(u)}),"*");return}}u=s(u);c=!0;try{a(u,f)}catch(G){this.handleError(G)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var H=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=H();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=H();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,
+"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",
+b),this.addListener("pageViewChanged",b));("1"==urlParams.returnbounds||"json"==urlParams.proto)&&g.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}));var g=window.opener||window.parent,f="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";g.postMessage(f,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?
+"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" (Ctrl+S)");b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,
+mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding=
+"4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px";"atlas"==uiTheme&&(this.statusContainer.style.color="#707070",this.statusContainer.style.paddingLeft="26px",this.toolbar.staticElements.push(this.statusContainer),this.toolbar.container.appendChild(this.statusContainer))}};EditorUi.prototype.getSearch=
+function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"\x3d"+urlParams[d],c="\x26")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),
d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"\x26",null!=urlParams[d]&&(a+=d+"\x3d"+urlParams[d],b++))}return a};var f=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=f.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-
2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&
null!=this.source.minimumGraphSize){var d=this.source.getPagePadding(),e=Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2),f=Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2);return new mxPoint(Math.round(e-d.x),Math.round(f-d.y-5/a))}return new mxPoint(8/a,8/a)};var g=b.init;b.init=function(){g.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*
diff --git a/war/js/atlas.min.js b/war/js/atlas.min.js
index 326790ce..13386f9f 100644
--- a/war/js/atlas.min.js
+++ b/war/js/atlas.min.js
@@ -198,7 +198,7 @@ if(null==window.mxLanguages){window.mxLanguages=[];for(var lang in mxLanguageMap
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local)urlParams.analytics="0",urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0";if("1"==urlParams.offline||"1"==urlParams.local)urlParams.math="0";var host=window.location.host,searchString="draw.io",position=host.length-searchString.length,lastIndex=host.lastIndexOf(searchString,position);-1!==lastIndex&&lastIndex===position&&"test.draw.io"!=host&&(window.DRAWIO_LOG_URL="https://log.draw.io");
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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];
-var mxClient={VERSION:"3.7.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+var mxClient={VERSION:"3.7.0.1",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@@ -241,25 +241,25 @@ null;if("object"==typeof c)for(var d=mxUtils.indexOf(c,a);0<=d;)c.splice(d,1),f=
c&&f.push(d),d=d.nextSibling;return f},importNode:function(a,c,f){if(mxClient.IS_IE&&(null==document.documentMode||10>document.documentMode))switch(c.nodeType){case 1:var d=a.createElement(c.nodeName);if(c.attributes&&0<c.attributes.length){for(var b=0;b<c.attributes.length;b++)d.setAttribute(c.attributes[b].nodeName,c.getAttribute(c.attributes[b].nodeName));if(f&&c.childNodes&&0<c.childNodes.length)for(b=0;b<c.childNodes.length;b++)d.appendChild(mxUtils.importNode(a,c.childNodes[b],f))}return d;
case 3:case 4:case 8:return a.createTextNode(c.value)}else return a.importNode(c,f)},createXmlDocument:function(){var a=null;document.implementation&&document.implementation.createDocument?a=document.implementation.createDocument("","",null):window.ActiveXObject&&(a=new ActiveXObject("Microsoft.XMLDOM"));return a},parseXml:function(){return window.DOMParser?function(a){return(new DOMParser).parseFromString(a,"text/xml")}:function(a){var c=mxUtils.createXmlDocument();c.async=!1;c.validateOnParse=!1;
c.resolveExternals=!1;c.loadXML(a);return c}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:function(){}}(),getPrettyXml:function(a,c,f){var d=[];if(null!=a)if(c=c||" ",f=f||"",a.nodeType==mxConstants.NODETYPE_TEXT)d.push(a.value);else{d.push(f+"\x3c"+a.nodeName);var b=a.attributes;if(null!=b)for(var e=0;e<b.length;e++){var g=mxUtils.htmlEntities(b[e].value);d.push(" "+b[e].nodeName+
-'\x3d"'+g+'"')}b=a.firstChild;if(null!=b){for(d.push("\x3e\n");null!=b;)d.push(mxUtils.getPrettyXml(b,c,f+c)),b=b.nextSibling;d.push(f+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,c){for(var f=c?a.previousSibling:a.nextSibling;null!=f&&f.nodeType==mxConstants.NODETYPE_TEXT;){var d=c?f.previousSibling:f.nextSibling,b=mxUtils.getTextContent(f);0==mxUtils.trim(b).length&&f.parentNode.removeChild(f);f=d}},htmlEntities:function(a,c){a=(a||"").replace(/&/g,
-"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==c||c)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,c){var f="";null!=window.XMLSerializer?f=(new XMLSerializer).serializeToString(a):null!=a.xml&&(f=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return f.replace(/\n/g,c||"\x26#xa;")},extractTextWithWhitespace:function(a){for(var c=
-!1,f=[],d=0;a[d];d++){var b=a[d];if(3===b.nodeType||4===b.nodeType){if(11==document.documentMode&&d==a.length-1&&0==b.nodeValue.length)break;f.push(b.nodeValue+(null==b.nextSibling||3!=b.nextSibling.nodeType?"\n":""));c=!0}else 8!==b.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==b.nodeName&&0==b.innerHTML.length||!c&&"BR"==b.nodeName||"DIV"==b.nodeName&&"\x3cbr\x3e"==b.innerHTML?f.push("\n"):f.push(mxUtils.extractTextWithWhitespace(b.childNodes)),c=!1)}return f.join("")},replaceTrailingNewlines:function(a,
-c){for(var f="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),f+=c;return a+f},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,c){void 0!==a.innerText?a.innerText=c:a[void 0===a.textContent?"text":"textContent"]=c},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),
-getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var c=[];c.push("\x3c"+a.nodeName);var f=a.attributes;if(null!=f)for(var d=0;d<f.length;d++){var b=f[d].value;null!=b&&0<b.length&&(c.push(" "),c.push(f[d].nodeName),c.push('\x3d"'),c.push(b),c.push('"'))}0==a.innerHTML.length?c.push("/\x3e"):(c.push("\x3e"),c.push(a.innerHTML),c.push("\x3c/"+a.nodeName+"\x3e"));return c.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):
-""}}(),write:function(a,c){var f=a.ownerDocument.createTextNode(c);null!=a&&a.appendChild(f);return f},writeln:function(a,c){var f=a.ownerDocument.createTextNode(c);null!=a&&(a.appendChild(f),a.appendChild(document.createElement("br")));return f},br:function(a,c){c=c||1;for(var f=null,d=0;d<c;d++)null!=a&&(f=a.ownerDocument.createElement("br"),a.appendChild(f));return f},button:function(a,c,f){f=null!=f?f:document;f=f.createElement("button");mxUtils.write(f,a);mxEvent.addListener(f,"click",function(a){c(a)});
-return f},para:function(a,c){var f=document.createElement("p");mxUtils.write(f,c);null!=a&&a.appendChild(f);return f},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,c,f,d,b){return mxUtils.link(a,c,function(){f.execute(d)},b)},linkInvoke:function(a,c,f,d,b,e){return mxUtils.link(a,c,function(){f[d](b)},e)},link:function(a,c,f,d){var b=
-document.createElement("span");b.style.color="blue";b.style.textDecoration="underline";b.style.cursor="pointer";null!=d&&(b.style.paddingLeft=d+"px");mxEvent.addListener(b,"click",f);mxUtils.write(b,c);null!=a&&a.appendChild(b);return b},fit:function(a){var c=parseInt(a.offsetLeft),f=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),b=d.x,d=d.y,e=document.body,g=document.documentElement,k=b+(e.clientWidth||g.clientWidth);c+f>k&&(a.style.left=Math.max(b,k-f)+"px");c=parseInt(a.offsetTop);
-f=parseInt(a.offsetHeight);e=d+Math.max(e.clientHeight||0,g.clientHeight);c+f>e&&(a.style.top=Math.max(d,e-f)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,c,f,d,b,e){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(c,f,b,e);return a},getAll:function(a,c,f){for(var d=a.length,b=[],e=0,g=function(){0==e&&null!=f&&f();e++},k=0;k<a.length;k++)(function(a,e){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(b[e]=a,d--,0==d&&
-c(b))},g)})(a[k],k);0==d&&c(b)},post:function(a,c,f,d){return(new mxXmlRequest(a,c)).send(f,d)},submit:function(a,c,f,d){return(new mxXmlRequest(a,c)).simulate(f,d)},loadInto:function(a,c,f){mxClient.IS_IE?c.onreadystatechange=function(){4==c.readyState&&f()}:c.addEventListener("load",f,!1);c.load(a)},getValue:function(a,c,f){a=null!=a?a[c]:null;null==a&&(a=f);return a},getNumber:function(a,c,f){a=null!=a?a[c]:null;null==a&&(a=f||0);return Number(a)},getColor:function(a,c,f){a=null!=a?a[c]:null;null==
-a?a=f:a==mxConstants.NONE&&(a=null);return a},clone:function(a,c,f){f=null!=f?f:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,b;for(b in a)if(b!=mxObjectIdentity.FIELD_NAME&&(null==c||0>mxUtils.indexOf(c,b)))d[b]=!f&&"object"==typeof a[b]?mxUtils.clone(a[b]):a[b]}return d},equalPoints:function(a,c){if(null==a&&null!=c||null!=a&&null==c||null!=a&&null!=c&&a.length!=c.length)return!1;if(null!=a&&null!=c)for(var f=0;f<a.length;f++)if(a[f]==c[f]||null!=a[f]&&!a[f].equals(c[f]))return!1;
-return!0},equalEntries:function(a,c){if(null==a&&null!=c||null!=a&&null==c||null!=a&&null!=c&&a.length!=c.length)return!1;if(null!=a&&null!=c){var f=0,d;for(d in c)f++;for(d in a)if(f--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(c[d]))&&a[d]!=c[d])return!1}return 0==f},removeDuplicates:function(a){for(var c=new mxDictionary,f=[],d=0;d<a.length;d++)c.get(a[d])||(f.push(a[d]),c.put(a[d],!0));return f},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,c){var f=function(){};f.prototype=
-c.prototype;a.prototype=new f;a.prototype.constructor=a},toString:function(a){var c="",f;for(f in a)try{if(null==a[f])c+=f+" \x3d [null]\n";else if("function"==typeof a[f])c+=f+" \x3d\x3e [Function]\n";else if("object"==typeof a[f])var d=mxUtils.getFunctionName(a[f].constructor),c=c+(f+" \x3d\x3e ["+d+"]\n");else c+=f+" \x3d "+a[f]+"\n"}catch(b){c+=f+"\x3d"+b.message}return c},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,c,f,d,b,e,g,
-k,l){k-=a;l-=c;if(0===f||0===d)return s;f=Math.abs(f);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(b*Math.PI/180),s=Math.sin(b*Math.PI/180);b=p*m+s*n;var m=-1*s*m+p*n,n=b*b,t=m*m,q=f*f,u=d*d,v=n/q+t/u;1<v?(f*=Math.sqrt(v),d*=Math.sqrt(v),e=0):(v=1,e===g&&(v=-1),e=v*Math.sqrt((q*u-q*t-u*n)/(q*t+u*n)));n=e*f*m/d;t=-1*e*d*b/f;k=p*n-s*t+k/2;l=s*n+p*t+l/2;q=Math.atan2((m-t)/d,(b-n)/f)-Math.atan2(0,1);e=0<=q?q:2*Math.PI+q;q=Math.atan2((-m-t)/d,(-b-n)/f)-Math.atan2((m-t)/d,(b-n)/f);b=0<=q?q:2*Math.PI+q;0==
-g&&0<b?b-=2*Math.PI:0!=g&&0>b&&(b+=2*Math.PI);g=2*b/Math.PI;g=Math.ceil(0>g?-1*g:g);b/=g;m=8/3*Math.sin(b/4)*Math.sin(b/4)/Math.sin(b/2);n=p*f;p*=d;f*=s;d*=s;for(var x=Math.cos(e),z=Math.sin(e),t=-m*(n*z+d*x),q=-m*(f*z-p*x),s=[],A=0;A<g;++A){e+=b;var x=Math.cos(e),z=Math.sin(e),u=n*x-d*z+k,v=f*x+p*z+l,y=-m*(n*z+d*x),x=-m*(f*z-p*x),z=6*A;s[z]=Number(t+a);s[z+1]=Number(q+c);s[z+2]=Number(u-y+a);s[z+3]=Number(v-x+c);s[z+4]=Number(u+a);s[z+5]=Number(v+c);t=u+y;q=v+x}return s},getBoundingBox:function(a,
-c,f){var d=null;if(null!=a&&null!=c&&0!=c){c=mxUtils.toRadians(c);var d=Math.cos(c),b=Math.sin(c);f=null!=f?f:new mxPoint(a.x+a.width/2,a.y+a.height/2);var e=new mxPoint(a.x,a.y);c=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(c.x,a.y+a.height);a=new mxPoint(a.x,g.y);e=mxUtils.getRotatedPoint(e,d,b,f);c=mxUtils.getRotatedPoint(c,d,b,f);g=mxUtils.getRotatedPoint(g,d,b,f);a=mxUtils.getRotatedPoint(a,d,b,f);d=new mxRectangle(e.x,e.y,0,0);d.add(new mxRectangle(c.x,c.y,0,0));d.add(new mxRectangle(g.x,
-g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,c,f,d){d=null!=d?d:new mxPoint;var b=a.x-d.x;a=a.y-d.y;return new mxPoint(b*c-a*f+d.x,a*c+b*f+d.y)},getPortConstraints:function(a,c,f,d){c=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==c)return d;d=c.toString();c=mxConstants.DIRECTION_MASK_NONE;f=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(f=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<
-f?(a=1,135<=f&&(a=2)):-45>f&&(a=3,-135>=f&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:c|=mxConstants.DIRECTION_MASK_EAST;break;case 2:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:c|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_WEST;break;case 1:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:c|=mxConstants.DIRECTION_MASK_EAST;break;case 3:c|=
-mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:c|=mxConstants.DIRECTION_MASK_WEST;break;case 2:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:c|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_EAST;break;case 1:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:c|=mxConstants.DIRECTION_MASK_WEST;break;case 3:c|=mxConstants.DIRECTION_MASK_NORTH}return c},
+'\x3d"'+g+'"')}b=a.firstChild;if(null!=b){for(d.push("\x3e\n");null!=b;)d.push(mxUtils.getPrettyXml(b,c,f+c)),b=b.nextSibling;d.push(f+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,c){for(var f=c?a.previousSibling:a.nextSibling;null!=f&&f.nodeType==mxConstants.NODETYPE_TEXT;){var d=c?f.previousSibling:f.nextSibling,b=mxUtils.getTextContent(f);0==mxUtils.trim(b).length&&f.parentNode.removeChild(f);f=d}},htmlEntities:function(a,c){a=String(a||"");
+a=a.replace(/&/g,"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==c||c)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,c){var f="";null!=window.XMLSerializer?f=(new XMLSerializer).serializeToString(a):null!=a.xml&&(f=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return f.replace(/\n/g,c||"\x26#xa;")},
+extractTextWithWhitespace:function(a){for(var c=!1,f=[],d=0;a[d];d++){var b=a[d];if(3===b.nodeType||4===b.nodeType){if(11==document.documentMode&&d==a.length-1&&0==b.nodeValue.length)break;f.push(b.nodeValue+(null==b.nextSibling||3!=b.nextSibling.nodeType?"\n":""));c=!0}else 8!==b.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==b.nodeName&&0==b.innerHTML.length||!c&&"BR"==b.nodeName||"DIV"==b.nodeName&&"\x3cbr\x3e"==b.innerHTML?f.push("\n"):f.push(mxUtils.extractTextWithWhitespace(b.childNodes)),
+c=!1)}return f.join("")},replaceTrailingNewlines:function(a,c){for(var f="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),f+=c;return a+f},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,c){void 0!==a.innerText?a.innerText=c:a[void 0===a.textContent?"text":"textContent"]=c},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=
+a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var c=[];c.push("\x3c"+a.nodeName);var f=a.attributes;if(null!=f)for(var d=0;d<f.length;d++){var b=f[d].value;null!=b&&0<b.length&&(c.push(" "),c.push(f[d].nodeName),c.push('\x3d"'),c.push(b),c.push('"'))}0==a.innerHTML.length?c.push("/\x3e"):(c.push("\x3e"),c.push(a.innerHTML),c.push("\x3c/"+a.nodeName+"\x3e"));return c.join("")}return""}:
+function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,c){var f=a.ownerDocument.createTextNode(c);null!=a&&a.appendChild(f);return f},writeln:function(a,c){var f=a.ownerDocument.createTextNode(c);null!=a&&(a.appendChild(f),a.appendChild(document.createElement("br")));return f},br:function(a,c){c=c||1;for(var f=null,d=0;d<c;d++)null!=a&&(f=a.ownerDocument.createElement("br"),a.appendChild(f));return f},button:function(a,c,f){f=null!=f?f:document;f=f.createElement("button");
+mxUtils.write(f,a);mxEvent.addListener(f,"click",function(a){c(a)});return f},para:function(a,c){var f=document.createElement("p");mxUtils.write(f,c);null!=a&&a.appendChild(f);return f},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,c,f,d,b){return mxUtils.link(a,c,function(){f.execute(d)},b)},linkInvoke:function(a,c,f,d,b,e){return mxUtils.link(a,
+c,function(){f[d](b)},e)},link:function(a,c,f,d){var b=document.createElement("span");b.style.color="blue";b.style.textDecoration="underline";b.style.cursor="pointer";null!=d&&(b.style.paddingLeft=d+"px");mxEvent.addListener(b,"click",f);mxUtils.write(b,c);null!=a&&a.appendChild(b);return b},fit:function(a){var c=parseInt(a.offsetLeft),f=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),b=d.x,d=d.y,e=document.body,g=document.documentElement,k=b+(e.clientWidth||g.clientWidth);
+c+f>k&&(a.style.left=Math.max(b,k-f)+"px");c=parseInt(a.offsetTop);f=parseInt(a.offsetHeight);e=d+Math.max(e.clientHeight||0,g.clientHeight);c+f>e&&(a.style.top=Math.max(d,e-f)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,c,f,d,b,e){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(c,f,b,e);return a},getAll:function(a,c,f){for(var d=a.length,b=[],e=0,g=function(){0==e&&null!=f&&f();e++},k=0;k<a.length;k++)(function(a,e){mxUtils.get(a,
+function(a){var f=a.getStatus();200>f||299<f?g():(b[e]=a,d--,0==d&&c(b))},g)})(a[k],k);0==d&&c(b)},post:function(a,c,f,d){return(new mxXmlRequest(a,c)).send(f,d)},submit:function(a,c,f,d){return(new mxXmlRequest(a,c)).simulate(f,d)},loadInto:function(a,c,f){mxClient.IS_IE?c.onreadystatechange=function(){4==c.readyState&&f()}:c.addEventListener("load",f,!1);c.load(a)},getValue:function(a,c,f){a=null!=a?a[c]:null;null==a&&(a=f);return a},getNumber:function(a,c,f){a=null!=a?a[c]:null;null==a&&(a=f||
+0);return Number(a)},getColor:function(a,c,f){a=null!=a?a[c]:null;null==a?a=f:a==mxConstants.NONE&&(a=null);return a},clone:function(a,c,f){f=null!=f?f:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,b;for(b in a)if(b!=mxObjectIdentity.FIELD_NAME&&(null==c||0>mxUtils.indexOf(c,b)))d[b]=!f&&"object"==typeof a[b]?mxUtils.clone(a[b]):a[b]}return d},equalPoints:function(a,c){if(null==a&&null!=c||null!=a&&null==c||null!=a&&null!=c&&a.length!=c.length)return!1;if(null!=
+a&&null!=c)for(var f=0;f<a.length;f++)if(a[f]==c[f]||null!=a[f]&&!a[f].equals(c[f]))return!1;return!0},equalEntries:function(a,c){if(null==a&&null!=c||null!=a&&null==c||null!=a&&null!=c&&a.length!=c.length)return!1;if(null!=a&&null!=c){var f=0,d;for(d in c)f++;for(d in a)if(f--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(c[d]))&&a[d]!=c[d])return!1}return 0==f},removeDuplicates:function(a){for(var c=new mxDictionary,f=[],d=0;d<a.length;d++)c.get(a[d])||(f.push(a[d]),c.put(a[d],!0));return f},isNaN:function(a){return"number"==
+typeof a&&isNaN(a)},extend:function(a,c){var f=function(){};f.prototype=c.prototype;a.prototype=new f;a.prototype.constructor=a},toString:function(a){var c="",f;for(f in a)try{if(null==a[f])c+=f+" \x3d [null]\n";else if("function"==typeof a[f])c+=f+" \x3d\x3e [Function]\n";else if("object"==typeof a[f])var d=mxUtils.getFunctionName(a[f].constructor),c=c+(f+" \x3d\x3e ["+d+"]\n");else c+=f+" \x3d "+a[f]+"\n"}catch(b){c+=f+"\x3d"+b.message}return c},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*
+a/Math.PI},arcToCurves:function(a,c,f,d,b,e,g,k,l){k-=a;l-=c;if(0===f||0===d)return s;f=Math.abs(f);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(b*Math.PI/180),s=Math.sin(b*Math.PI/180);b=p*m+s*n;var m=-1*s*m+p*n,n=b*b,t=m*m,q=f*f,u=d*d,v=n/q+t/u;1<v?(f*=Math.sqrt(v),d*=Math.sqrt(v),e=0):(v=1,e===g&&(v=-1),e=v*Math.sqrt((q*u-q*t-u*n)/(q*t+u*n)));n=e*f*m/d;t=-1*e*d*b/f;k=p*n-s*t+k/2;l=s*n+p*t+l/2;q=Math.atan2((m-t)/d,(b-n)/f)-Math.atan2(0,1);e=0<=q?q:2*Math.PI+q;q=Math.atan2((-m-t)/d,(-b-n)/f)-Math.atan2((m-
+t)/d,(b-n)/f);b=0<=q?q:2*Math.PI+q;0==g&&0<b?b-=2*Math.PI:0!=g&&0>b&&(b+=2*Math.PI);g=2*b/Math.PI;g=Math.ceil(0>g?-1*g:g);b/=g;m=8/3*Math.sin(b/4)*Math.sin(b/4)/Math.sin(b/2);n=p*f;p*=d;f*=s;d*=s;for(var x=Math.cos(e),z=Math.sin(e),t=-m*(n*z+d*x),q=-m*(f*z-p*x),s=[],A=0;A<g;++A){e+=b;var x=Math.cos(e),z=Math.sin(e),u=n*x-d*z+k,v=f*x+p*z+l,y=-m*(n*z+d*x),x=-m*(f*z-p*x),z=6*A;s[z]=Number(t+a);s[z+1]=Number(q+c);s[z+2]=Number(u-y+a);s[z+3]=Number(v-x+c);s[z+4]=Number(u+a);s[z+5]=Number(v+c);t=u+y;q=
+v+x}return s},getBoundingBox:function(a,c,f){var d=null;if(null!=a&&null!=c&&0!=c){c=mxUtils.toRadians(c);var d=Math.cos(c),b=Math.sin(c);f=null!=f?f:new mxPoint(a.x+a.width/2,a.y+a.height/2);var e=new mxPoint(a.x,a.y);c=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(c.x,a.y+a.height);a=new mxPoint(a.x,g.y);e=mxUtils.getRotatedPoint(e,d,b,f);c=mxUtils.getRotatedPoint(c,d,b,f);g=mxUtils.getRotatedPoint(g,d,b,f);a=mxUtils.getRotatedPoint(a,d,b,f);d=new mxRectangle(e.x,e.y,0,0);d.add(new mxRectangle(c.x,
+c.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,c,f,d){d=null!=d?d:new mxPoint;var b=a.x-d.x;a=a.y-d.y;return new mxPoint(b*c-a*f+d.x,a*c+b*f+d.y)},getPortConstraints:function(a,c,f,d){c=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==c)return d;d=c.toString();c=mxConstants.DIRECTION_MASK_NONE;f=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(f=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,
+0));a=0;45<f?(a=1,135<=f&&(a=2)):-45>f&&(a=3,-135>=f&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:c|=mxConstants.DIRECTION_MASK_EAST;break;case 2:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:c|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_WEST;break;case 1:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:c|=mxConstants.DIRECTION_MASK_EAST;break;
+case 3:c|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:c|=mxConstants.DIRECTION_MASK_WEST;break;case 2:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:c|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_EAST;break;case 1:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:c|=mxConstants.DIRECTION_MASK_WEST;break;case 3:c|=mxConstants.DIRECTION_MASK_NORTH}return c},
reversePortConstraints:function(a){var c=0,c=(a&mxConstants.DIRECTION_MASK_WEST)<<3,c=c|(a&mxConstants.DIRECTION_MASK_NORTH)<<1,c=c|(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return c|(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,c,f){var d=-1;if(0<a.absolutePoints.length)for(var b=a.absolutePoints[0],e=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],b=mxUtils.ptSegDistSq(b.x,b.y,k.x,k.y,c,f);if(null==e||b<e)e=b,d=g-1;b=k}return d},rectangleIntersectsSegment:function(a,
c,f){var d=a.y,b=a.x,e=d+a.height,g=b+a.width;a=c.x;var k=f.x;c.x>f.x&&(a=f.x,k=c.x);k>g&&(k=g);a<b&&(a=b);if(a>k)return!1;var b=c.y,g=f.y,l=f.x-c.x;1E-7<Math.abs(l)&&(f=(f.y-c.y)/l,c=c.y-f*c.x,b=f*a+c,g=f*k+c);b>g&&(c=g,g=b,b=c);g>e&&(g=e);b<d&&(b=d);return b>g?!1:!0},contains:function(a,c,f){return a.x<=c&&a.x+a.width>=c&&a.y<=f&&a.y+a.height>=f},intersects:function(a,c){var f=a.width,d=a.height,b=c.width,e=c.height;if(0>=b||0>=e||0>=f||0>=d)return!1;var g=a.x,k=a.y,l=c.x,m=c.y,b=b+l,e=e+m,f=f+
g,d=d+k;return(b<l||b>g)&&(e<m||e>k)&&(f<g||f>l)&&(d<k||d>m)},intersectsHotspot:function(a,c,f,d,b,e){d=null!=d?d:1;b=null!=b?b:0;e=null!=e?e:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,m=a.height,n=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<n&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+n/2,m=n):(g=a.x+n/2,l=n));l=Math.max(b,l*d);m=Math.max(b,m*d);0<e&&(l=Math.min(l,e),m=Math.min(m,e));d=new mxRectangle(g-l/2,k-m/2,l,m);g=mxUtils.toRadians(mxUtils.getValue(a.style,
@@ -1652,8 +1652,8 @@ g=this.getAlignmentTolerance();if(0<g){var k=this.graph.view.getState(c);if(null
mxConnectionHandler.prototype.createEdge=function(a,c,f,d){var b=null;null!=this.factoryMethod&&(b=this.factoryMethod(c,f,d));null==b&&(b=new mxCell(a||""),b.setEdge(!0),b.setStyle(d),a=new mxGeometry,a.relative=!0,b.setGeometry(a));return b};
mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.marker&&(this.marker.destroy(),this.marker=null);null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null);null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),
this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null)};
-function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,f){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)&&this.reset()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);mxConstraintHandler.prototype.graph=null;
-mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
+function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,f){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)?this.reset():this.redraw()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);
+mxConstraintHandler.prototype.graph=null;mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null);this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null};mxConstraintHandler.prototype.getTolerance=function(a){return this.graph.getTolerance()};
mxConstraintHandler.prototype.getImageForConstraint=function(a,c,f){return this.pointImage};mxConstraintHandler.prototype.isEventIgnored=function(a,c){return!1};mxConstraintHandler.prototype.isStateIgnored=function(a,c){return!1};mxConstraintHandler.prototype.destroyIcons=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusPoints=this.focusIcons=null}};
mxConstraintHandler.prototype.destroyFocusHighlight=function(){null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)};mxConstraintHandler.prototype.isKeepFocusEvent=function(a){return mxEvent.isShiftDown(a.getEvent())};
@@ -1662,6 +1662,8 @@ mxConstraintHandler.prototype.update=function(a,c,f,d){if(this.isEnabled()&&!thi
d));if(!this.isKeepFocusEvent(a)&&(null==this.currentFocusArea||null==this.currentFocus||null!=k||!this.graph.getModel().isVertex(this.currentFocus.cell)||!mxUtils.intersects(this.currentFocusArea,b))&&k!=this.currentFocus)this.currentFocus=this.currentFocusArea=null,this.setFocus(a,k,c);a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==k||this.currentFocus==k))for(var g=b.getCenterX(),l=b.getCenterY(),m=0;m<this.focusIcons.length;m++){var n=
g-this.focusIcons[m].bounds.getCenterX(),p=l-this.focusIcons[m].bounds.getCenterY(),n=n*n+p*p;if((this.intersects(this.focusIcons[m],b,c,f)||null!=d&&this.intersects(this.focusIcons[m],e,c,f))&&(null==a||n<a)){this.currentConstraint=this.constraints[m];this.currentPoint=this.focusPoints[m];a=n;n=this.focusIcons[m].bounds.clone();n.grow(mxConstants.HIGHLIGHT_SIZE);mxClient.IS_IE&&(n.grow(1),n.width-=1,n.height-=1);if(null==this.focusHighlight){p=this.createHighlightShape();p.dialect=this.graph.dialect==
mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;p.pointerEvents=!1;p.init(this.graph.getView().getOverlayPane());this.focusHighlight=p;var s=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:k});mxEvent.redirectMouseEvents(p.node,this.graph,s)}this.focusHighlight.bounds=n;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
+mxConstraintHandler.prototype.redraw=function(){if(null!=this.currentFocus&&null!=this.constraints&&null!=this.focusIcons){var a=this.graph.view.getState(this.currentFocus.cell);this.currentFocus=a;this.currentFocusArea=new mxRectangle(a.x,a.y,a.width,a.height);for(var c=0;c<this.constraints.length;c++){var f=this.graph.getConnectionPoint(a,this.constraints[c]),d=this.getImageForConstraint(a,this.constraints[c],f),d=new mxRectangle(Math.round(f.x-d.width/2),Math.round(f.y-d.height/2),d.width,d.height);
+this.focusIcons[c].bounds=d;this.focusIcons[c].redraw();this.currentFocusArea.add(this.focusIcons[c].bounds);this.focusPoints[c]=f}}};
mxConstraintHandler.prototype.setFocus=function(a,c,f){this.constraints=null!=c&&!this.isStateIgnored(c,f)&&this.graph.isCellConnectable(c.cell)?this.isEnabled()?this.graph.getAllConnectionConstraints(c,f)||[]:[]:null;if(null!=this.constraints){this.currentFocus=c;this.currentFocusArea=new mxRectangle(c.x,c.y,c.width,c.height);if(null!=this.focusIcons){for(f=0;f<this.focusIcons.length;f++)this.focusIcons[f].destroy();this.focusPoints=this.focusIcons=null}this.focusPoints=[];this.focusIcons=[];for(f=
0;f<this.constraints.length;f++){var d=this.graph.getConnectionPoint(c,this.constraints[f]),b=this.getImageForConstraint(c,this.constraints[f],d),e=b.src,b=new mxRectangle(Math.round(d.x-b.width/2),Math.round(d.y-b.height/2),b.width,b.height),e=new mxImageShape(b,e);e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG;e.preserveImageAspect=!1;e.init(this.graph.getView().getDecoratorPane());(mxClient.IS_QUIRKS||8==document.documentMode)&&mxEvent.addListener(e.node,
"dragstart",function(b){mxEvent.consume(b);return!1});null!=e.node.previousSibling&&e.node.parentNode.insertBefore(e.node,e.node.parentNode.firstChild);b=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:c});e.redraw();mxEvent.redirectMouseEvents(e.node,this.graph,b);this.currentFocusArea.add(e.bounds);this.focusIcons.push(e);this.focusPoints.push(d)}this.currentFocusArea.grow(this.getTolerance(a))}else this.destroyIcons(),this.destroyFocusHighlight()};
@@ -2500,7 +2502,7 @@ b.length-1;0<=f;f--)if(0==f||b[f]!=c[f-1]){b[f].setAttribute("width",a);b[f].set
"_blank");break}}};Graph.prototype.isCellResizable=function(b){var a=mxGraph.prototype.isCellResizable.apply(this,arguments),d=this.view.getState(b),d=null!=d?d.style:this.getCellStyle(b);return a||"0"!=mxUtils.getValue(d,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==d[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(b,a){null==a&&(a=this.getSelectionCells());if(null!=a&&1<a.length){for(var d=[],e=null,c=null,f=0;f<a.length;f++)if(this.getModel().isVertex(a[f])){var g=this.view.getState(a[f]);
if(null!=g){var k=b?g.getCenterX():g.getCenterY(),e=null!=e?Math.max(e,k):k,c=null!=c?Math.min(c,k):k;d.push(g)}}if(2<d.length){d.sort(function(a,d){return b?a.x-d.x:a.y-d.y});g=this.view.translate;k=this.view.scale;c=c/k-(b?g.x:g.y);e=e/k-(b?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(e-c)/(d.length-1),e=c,f=1;f<d.length-1;f++){var m=this.getCellGeometry(d[f].cell),e=e+l;null!=m&&(m=m.clone(),b?m.x=Math.round(e-m.width/2):m.y=Math.round(e-m.height/2),this.getModel().setGeometry(d[f].cell,
m))}}finally{this.getModel().endUpdate()}}}return a};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};Graph.prototype.encodeCells=function(b){for(var a=this.cloneCells(b),d=0;d<a.length;d++){var e=this.view.getState(b[d]);if(null!=e){var c=this.getCellGeometry(a[d]);null!=c&&c.relative&&(c.relative=!1,c.x=e.x/e.view.scale-e.view.translate.x,c.y=e.y/e.view.scale-e.view.translate.y)}}for(var e=new mxCodec,c=new mxGraphModel,f=c.getChildAt(c.getRoot(),
-0),d=0;d<b.length;d++)c.add(f,a[d]);return e.encode(c)};Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,a){return this.getLinkForCell(b.cell)});return b};Graph.prototype.getSvg=function(b,a,d,e,c,f,g){a=null!=a?a:1;d=null!=d?d:1;c=null!=c?c:!0;f=null!=f?f:!0;g=null!=g?g:!0;e=f||e?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==e)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),
+0),d=0;d<b.length;d++)c.add(f,a[d]);return e.encode(c)};Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,a){return this.getLinkForCell(b.cell)});return b};Graph.prototype.getSvg=function(b,a,d,e,c,f,g){a=null!=a?a:1;d=null!=d?d:0;c=null!=c?c:!0;f=null!=f?f:!0;g=null!=g?g:!0;e=f||e?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==e)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),
l=k.drawCellState;k.drawCellState=function(b,a){(f||b.view.graph.isCellSelected(b.cell))&&l.apply(this,arguments)};var m=this.view.scale,n=mxUtils.createXmlDocument(),p=null!=n.createElementNS?n.createElementNS(mxConstants.NS_SVG,"svg"):n.createElement("svg");null!=b&&(null!=p.style?p.style.backgroundColor=b:p.setAttribute("style","background-color:"+b));null==n.createElementNS?(p.setAttribute("xmlns",mxConstants.NS_SVG),p.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/",
"xmlns:xlink",mxConstants.NS_XLINK);b=a/m;p.setAttribute("width",Math.ceil(e.width*b)+2*d+"px");p.setAttribute("height",Math.ceil(e.height*b)+2*d+"px");p.setAttribute("version","1.1");var q=p;c&&(q=null!=n.createElementNS?n.createElementNS(mxConstants.NS_SVG,"g"):n.createElement("g"),q.setAttribute("transform","translate(0.5,0.5)"),p.appendChild(q));n.appendChild(p);n=new mxSvgCanvas2D(q);n.foOffset=c?-0.5:0;n.textOffset=c?-0.5:0;n.translate(Math.floor((d/a-e.x)/m),Math.floor((d/a-e.y)/m));var t=
n.createAlternateContent;n.createAlternateContent=function(b,a,d,e,c,f,g,k,l,m,n,p,q){var s=this.state;if(null!=this.foAltText&&(0==e||0!=s.fontSize&&f.length<5*e/s.fontSize)){var u=this.createElement("text");u.setAttribute("x",Math.round(e/2));u.setAttribute("y",Math.round((c+s.fontSize)/2));u.setAttribute("fill",s.fontColor||"black");u.setAttribute("text-anchor","middle");u.setAttribute("font-size",Math.round(s.fontSize)+"px");u.setAttribute("font-family",s.fontFamily);(s.fontStyle&mxConstants.FONT_BOLD)==
@@ -2793,7 +2795,7 @@ Menubar.prototype.addMenuHandler=function(a,c){if(null!=c){var f=!0,d=mxUtils.bi
b);this.editorUi.setCurrentMenu(d,a)}mxEvent.consume(b)});mxEvent.addListener(a,"mousemove",mxUtils.bind(this,function(b){null!=this.editorUi.currentMenu&&this.editorUi.currentMenuElt!=a&&(this.editorUi.hideCurrentMenu(),d(b))}));mxEvent.addListener(a,"mousedown",mxUtils.bind(this,function(){f=this.currentElt!=a}));mxEvent.addListener(a,"click",mxUtils.bind(this,function(b){d(b);f=!0}))}};Menubar.prototype.destroy=function(){};
function Menu(a,c){mxEventSource.call(this);this.funct=a;this.enabled=null!=c?c:!0}mxUtils.extend(Menu,mxEventSource);Menu.prototype.isEnabled=function(){return this.enabled};Menu.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Menu.prototype.execute=function(a,c){this.funct(a,c)};EditorUi.prototype.createMenus=function(){return new Menus(this)};Format=function(a,c){this.editorUi=a;this.container=c};
Format.prototype.labelIndex=0;Format.prototype.currentIndex=0;
-Format.prototype.init=function(){var a=this.editorUi.editor.graph;this.update=mxUtils.bind(this,function(a,f){this.clearSelectionState();this.refresh()});a.getSelectionModel().addListener(mxEvent.CHANGE,this.update);a.addListener(mxEvent.EDITING_STARTED,this.update);a.addListener(mxEvent.EDITING_STOPPED,this.update);a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.clearSelectionState()}));a.addListener(mxEvent.ROOT,mxUtils.bind(this,function(){this.refresh()}));this.refresh()};
+Format.prototype.init=function(){var a=this.editorUi.editor.graph;this.update=mxUtils.bind(this,function(a,f){this.clearSelectionState();this.refresh()});a.getSelectionModel().addListener(mxEvent.CHANGE,this.update);a.addListener(mxEvent.EDITING_STARTED,this.update);a.addListener(mxEvent.EDITING_STOPPED,this.update);a.getModel().addListener(mxEvent.CHANGE,this.update);a.addListener(mxEvent.ROOT,mxUtils.bind(this,function(){this.refresh()}));this.refresh()};
Format.prototype.clearSelectionState=function(){this.selectionState=null};Format.prototype.getSelectionState=function(){null==this.selectionState&&(this.selectionState=this.createSelectionState());return this.selectionState};Format.prototype.createSelectionState=function(){for(var a=this.editorUi.editor.graph.getSelectionCells(),c=this.initSelectionState(),f=0;f<a.length;f++)this.updateSelectionStateForCell(c,a[f],a);return c};
Format.prototype.initSelectionState=function(){return{vertices:[],edges:[],x:null,y:null,width:null,height:null,style:{},containsImage:!1,containsLabel:!1,fill:!0,glass:!0,rounded:!0,comic:!0,autoSize:!1,image:!0,shadow:!0}};
Format.prototype.updateSelectionStateForCell=function(a,c,f){f=this.editorUi.editor.graph;if(f.getModel().isVertex(c)){a.vertices.push(c);var d=f.getCellGeometry(c);if(null!=d&&(0<d.width?null==a.width?a.width=d.width:a.width!=d.width&&(a.width=""):a.containsLabel=!0,0<d.height?null==a.height?a.height=d.height:a.height!=d.height&&(a.height=""):a.containsLabel=!0,!d.relative||null!=d.offset)){var b=d.relative?d.offset.x:d.x,d=d.relative?d.offset.y:d.y;null==a.x?a.x=b:a.x!=b&&(a.x="");null==a.y?a.y=
@@ -3096,8 +3098,8 @@ document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,m
b.value)window.openFile=new OpenFile(function(){a.hideDialog();window.openFile=null}),window.openFile.setData(d,null),window.open(a.getUrl());else if("replace"==b.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(d).documentElement),a.hideDialog()}catch(c){e=c}finally{a.editor.graph.model.endUpdate()}}else if("import"==b.value){a.editor.graph.model.beginUpdate();try{var m=mxUtils.parseXml(d),n=new mxGraphModel;(new mxCodec(m)).decode(m.documentElement,n);var p=n.getChildren(n.getChildAt(n.getRoot(),
0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(p));a.hideDialog()}catch(s){e=s}finally{a.editor.graph.model.endUpdate()}}null!=e&&mxUtils.alert(e.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(d);this.container=c},ExportDialog=function(a){function c(){var b=n.value,a=b.lastIndexOf(".");n.value=0<a?b.substring(0,a+1)+p.value:b+"."+p.value;"xml"===p.value?(s.setAttribute("disabled","true"),t.setAttribute("disabled","true"),q.setAttribute("disabled",
"true"),v.setAttribute("disabled","true")):(s.removeAttribute("disabled"),t.removeAttribute("disabled"),q.removeAttribute("disabled"),v.removeAttribute("disabled"));"png"===p.value||"svg"===p.value?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}function f(){t.style.backgroundColor=t.value*q.value>MAX_AREA||0>=t.value?"red":"";q.style.backgroundColor=t.value*q.value>MAX_AREA||0>=q.value?"red":""}var d=a.editor.graph,b=d.getGraphBounds(),e=d.view.scale,g=Math.ceil(b.width/e),k=
-Math.ceil(b.height/e),l,e=document.createElement("table"),m=document.createElement("tbody");e.setAttribute("cellpadding","2");b=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";l.style.width="100px";mxUtils.write(l,mxResources.get("filename")+":");b.appendChild(l);var n=document.createElement("input");n.setAttribute("value",a.editor.getOrCreateFilename());n.style.width="180px";l=document.createElement("td");l.appendChild(n);b.appendChild(l);m.appendChild(b);b=document.createElement("tr");
-l=document.createElement("td");l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("format")+":");b.appendChild(l);var p=document.createElement("select");p.style.width="180px";l=document.createElement("option");l.setAttribute("value","png");mxUtils.write(l,mxResources.get("formatPng"));p.appendChild(l);l=document.createElement("option");ExportDialog.showGifOption&&(l.setAttribute("value","gif"),mxUtils.write(l,mxResources.get("formatGif")),p.appendChild(l));l=document.createElement("option");
+Math.ceil(b.height/e),l,e=document.createElement("table"),m=document.createElement("tbody");e.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");b=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";l.style.width="100px";mxUtils.write(l,mxResources.get("filename")+":");b.appendChild(l);var n=document.createElement("input");n.setAttribute("value",a.editor.getOrCreateFilename());n.style.width="180px";l=document.createElement("td");l.appendChild(n);b.appendChild(l);m.appendChild(b);
+b=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("format")+":");b.appendChild(l);var p=document.createElement("select");p.style.width="180px";l=document.createElement("option");l.setAttribute("value","png");mxUtils.write(l,mxResources.get("formatPng"));p.appendChild(l);l=document.createElement("option");ExportDialog.showGifOption&&(l.setAttribute("value","gif"),mxUtils.write(l,mxResources.get("formatGif")),p.appendChild(l));l=document.createElement("option");
l.setAttribute("value","jpg");mxUtils.write(l,mxResources.get("formatJpg"));p.appendChild(l);l=document.createElement("option");l.setAttribute("value","pdf");mxUtils.write(l,mxResources.get("formatPdf"));p.appendChild(l);l=document.createElement("option");l.setAttribute("value","svg");mxUtils.write(l,mxResources.get("formatSvg"));p.appendChild(l);ExportDialog.showXmlOption&&(l=document.createElement("option"),l.setAttribute("value","xml"),mxUtils.write(l,mxResources.get("formatXml")),p.appendChild(l));
l=document.createElement("td");l.appendChild(p);b.appendChild(l);m.appendChild(b);b=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("zoom")+" (%):");b.appendChild(l);var s=document.createElement("input");s.setAttribute("type","number");s.setAttribute("value","100");s.style.width="180px";l=document.createElement("td");l.appendChild(s);b.appendChild(l);m.appendChild(b);b=document.createElement("tr");l=document.createElement("td");l.style.fontSize=
"10pt";mxUtils.write(l,mxResources.get("width")+":");b.appendChild(l);var t=document.createElement("input");t.setAttribute("value",g);t.style.width="180px";l=document.createElement("td");l.appendChild(t);b.appendChild(l);m.appendChild(b);b=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("height")+":");b.appendChild(l);var q=document.createElement("input");q.setAttribute("value",k);q.style.width="180px";l=document.createElement("td");
@@ -7570,7 +7572,7 @@ c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked","0"));null!=
[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=
[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=
[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var t=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,e,f,k,g,l,m){if(null!=c&&null==mxMarker.markers[c]){var n=this.getPackageForType(c);null!=n&&mxStencilRegistry.getStencil(n)}return t.apply(this,arguments)}})();
-(function(){EditorUi.VERSION="6.0.2.12";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.isElectronApp=window&&window.process&&window.process.type;EditorUi.plusImage=!mxClient.IS_SVG?IMAGE_PATH+"/plus.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII\x3d";
+(function(){EditorUi.VERSION="6.0.2.13";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.isElectronApp=window&&window.process&&window.process.type;EditorUi.plusImage=!mxClient.IS_SVG?IMAGE_PATH+"/plus.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII\x3d";
EditorUi.spinImage=!mxClient.IS_SVG?IMAGE_PATH+"/spin.gif":"data:image/gif;base64,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw\x3d\x3d";
EditorUi.prototype.emptyDiagramXml='\x3cmxGraphModel\x3e\x3croot\x3e\x3cmxCell id\x3d"0"/\x3e\x3cmxCell id\x3d"1" parent\x3d"0"/\x3e\x3c/root\x3e\x3c/mxGraphModel\x3e';EditorUi.prototype.emptyLibraryXml="\x3cmxlibrary\x3e[]\x3c/mxlibrary\x3e";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape\x3dstencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE\x3d);whiteSpace\x3dwrap;html\x3d1;";
EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;(function(){EditorUi.prototype.useCanvasForExport=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=c&&6<c.length}catch(d){}};
@@ -7637,126 +7639,127 @@ q.substring(0,2)&&(q=q.substring(2),a+=' \x3ca href\x3d"https://drive.google.com
function(a,b,c,d,e,f,g){a=new ErrorDialog(this,a,b,c,d,e,f,g);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){f();null!=b&&b()},function(){f();null!=c&&c()},d,e)).container,
340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+
btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createPngDataUri=function(a,b){var c=a.toDataURL("image/png");if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/png"))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return c};EditorUi.prototype.saveCanvas=function(a,b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename,d=c.lastIndexOf(".");0<d&&(c=c.substring(0,d));
-c+=".png";d=this.createPngDataUri(a,b);this.saveData(c,"png",d.substring(d.lastIndexOf(",")+1),"image/png",!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d){if(window.MSBlobBuilder&&navigator.msSaveOrOpenBlob)d=
+c+=".png";d=this.createPngDataUri(a,b);this.saveData(c,"png",d.substring(d.lastIndexOf(",")+1),"image/png",!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d,e){if(window.MSBlobBuilder&&navigator.msSaveOrOpenBlob)d=
new MSBlobBuilder,d.append(a),a=d.getBlob(c),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height="380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);
-else if(!this.isOffline()&&mxClient.IS_SF)this.createEchoRequest(a,b,c,d).simulate(document,"_blank");else{var e=document.createElement("a");e.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));e.download=b;document.body.appendChild(e);mxClient.IS_SF&&e.setAttribute("target","_blank");try{e.click(),window.setTimeout(function(){URL.revokeObjectURL(e.href)},0),e.parentNode.removeChild(e)}catch(f){}}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,e,f){a="xml\x3d"+encodeURIComponent(a);
-return new mxXmlRequest(SAVE_URL,a+(null!=c?"\x26mime\x3d"+c:"")+(null!=e?"\x26format\x3d"+e:"")+(null!=f?"\x26base64\x3d"+f:"")+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):"")+(d?"\x26binary\x3d1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),f=Array(e),g=0;g<e;++g){for(var q=1024*g,u=Math.min(q+1024,d),v=Array(u-q),x=0;q<u;++x,++q)v[x]=c[q].charCodeAt(0);f[g]=new Uint8Array(v)}return new Blob(f,{type:b})};EditorUi.prototype.saveLocalFile=
-function(a,b,c,d){var e=!mxClient.IS_IOS||!navigator.standalone,f=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===typeof window.DropboxClient||"function"===typeof window.OneDriveClient);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):null!=c&&"image/"==c.substring(0,6)&&("image/svg"!=c.substring(0,9)||mxClient.IS_SVG)?!d||mxClient.IS_EDGE||11==document.documentMode||
-10==document.documentMode?(f.document.write('\x3chtml\x3e\x3cimg src\x3d"data:'+c+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a))+'"/\x3e\x3c/html\x3e'),f.document.close()):f.location.replace("data:"+c+";base64,"+a):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else e==App.MODE_DEVICE?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(f){this.exportFile(a,b,c,d,e,f)}))}catch(g){this.handleError(g)}}),mxUtils.bind(this,function(){this.hideDialog()}),
-mxResources.get("saveAs"),mxResources.get("download"),!1,!1,e);this.showDialog(b.container,380,f?280:160,!0,!0);b.init()};EditorUi.prototype.saveData=function(a,b,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}))};EditorUi.prototype.saveRequest=function(a,b,c){var d=!mxClient.IS_IOS||!navigator.standalone,e=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===
-typeof window.DropboxClient||"function"===typeof window.OneDriveClient);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var e=c("_blank"==d?null:a,d==App.MODE_DEVICE||null==d||"_blank"==d?"0":"1");null!=e&&(d==App.MODE_DEVICE||"_blank"==d?e.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(c){this.spinner.spin(document.body,mxResources.get("saving"))&&e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200>e.getStatus()||
-299<e.getStatus())this.handleError({message:mxResources.get("errorSavingFile")});else try{var f="pdf"==b?"application/pdf":"image/"+b;this.exportFile(e.getText(),a,f,!0,d,c)}catch(g){this.handleError(g)}}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,d);this.showDialog(a.container,380,e?280:160,!0,!0);a.init()};EditorUi.prototype.exportFile=function(a,b,c,d,e,f){};EditorUi.prototype.pickFolder=
-function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,e,f,g){if(this.spinner.spin(document.body,mxResources.get("export"))){var q=this.editor.graph.isSelectionEmpty();c=null!=c?c:q;q=b?null:this.editor.graph.background;q==mxConstants.NONE&&(q=null);null==q&&!1==b&&(q="#ffffff");var u=this.editor.graph.getSvg(q,a,null,g,null,c);d&&this.editor.addSvgShadow(u);a=this.getCurrentFile();var v=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;a=v.lastIndexOf(".");0<a&&(v=v.substring(0,
-a));var v=v+".svg",x=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,null,null,null,c));var b='\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(v,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});
-this.convertMath(this.editor.graph,u,!1,mxUtils.bind(this,function(){f?this.convertImages(u,x):x(u)}))}};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";f.setAttribute("type","checkbox");d.isSelectionEmpty()&&f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));mxUtils.br(e);var g=document.createElement("input");
-g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),null,a,b);this.showDialog(a.container,300,120,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e){var f=this.editor.graph,g=document.createElement("div");g.style.paddingTop="20px";g.style.paddingRight=
-"8px";var q=240,u=document.createElement("input");u.style.marginRight="8px";u.setAttribute("type","checkbox");if(f.background==mxConstants.NONE||null==f.background)u.setAttribute("checked","checked"),u.defaultChecked=!0;g.appendChild(u);mxUtils.write(g,mxResources.get("transparentBackground"));mxUtils.br(g);var v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");g.appendChild(v);mxUtils.write(g,mxResources.get("selectionOnly"));mxUtils.br(g);
-var x=document.createElement("input");x.style.marginTop="16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");e&&(g.appendChild(x),mxUtils.write(g,mxResources.get("crop")),mxUtils.br(g),q+=26);f.isSelectionEmpty()&&(v.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"));var z=document.createElement("input");z.style.marginTop="16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");g.appendChild(z);mxUtils.write(g,mxResources.get("shadow"));mxUtils.br(g);
-f.shadowVisible&&(z.setAttribute("checked","checked"),z.defaultChecked=!0);var A=document.createElement("input");A.style.marginTop="16px";A.style.marginRight="8px";A.setAttribute("type","checkbox");(this.isOffline()||!this.canvasSupported)&&A.setAttribute("disabled","disabled");a&&(g.appendChild(A),mxUtils.write(g,mxResources.get("embedImages")),mxUtils.br(g),q+=26);var y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight="8px";y.setAttribute("type","checkbox");y.style.marginBottom=
-"8px";y.setAttribute("checked","checked");y.defaultChecked=!0;g.appendChild(y);mxUtils.write(g,mxResources.get("includeCopyOfMyDiagram"));a=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,u.checked,!v.checked,z.checked,y.checked,A.checked,x.checked)}),mxResources.get("zoom")+" (%)",null,g,!this.isOffline()?c:null);this.showDialog(a.container,320,q,!0,!0);a.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop=
-"20px";c.style.paddingRight="8px";var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),q=document.createElement("td"),u=document.createElement("input");u.setAttribute("type","text");mxUtils.write(q,"Username:");g.appendChild(q);q=q.cloneNode(!1);q.appendChild(u);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),v=document.createElement("input");v.setAttribute("type","password");mxUtils.write(q,"Password:");g=g.cloneNode(!1);g.appendChild(q);
-q=q.cloneNode(!1);q.appendChild(v);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),x=document.createElement("input");x.setAttribute("type","text");mxUtils.write(q,"Organisation:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(x);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),z=document.createElement("input");z.setAttribute("type","text");mxUtils.write(q,"Repository:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(z);g.appendChild(q);f.appendChild(g);
-var q=q.cloneNode(!1),A=document.createElement("input");A.setAttribute("type","text");mxUtils.write(q,"Path:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(A);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var y=a.lastIndexOf(".");0<y&&(a=a.substring(0,y));A.value=a+".png";var D=document.createElement("input");D.setAttribute("type","text");mxUtils.write(q,"Branch/Tag:");D.value="master";
-g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(D);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),B=document.createElement("input");B.setAttribute("type","text");mxUtils.write(q,"Message:");B.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(B);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+
-x.value+"/"+z.value+"/contents/"+A.value+"?ref\x3d"+encodeURIComponent(D.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());var e={path:A.value,message:B.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+x.value+"/"+z.value+"/blob/"+D.value+"/"+A.value;
-var b=new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+
-btoa(u.value+":"+v.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause();c=!1;var f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+
-b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,g=f.lastIndexOf("."),s=f;0<g&&(s=f=s.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:s+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),v=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};
-try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();
-var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),
-function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var l=new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");l.send(mxUtils.bind(this,function(){200==l.getStatus()?k():v(l)}),mxUtils.bind(this,function(){v(l)}))}else k()}catch(p){this.handleError(p)}else v(a)}),mxUtils.bind(this,function(a){v(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,
-b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,q){d=parseInt(d);if(!isNaN(d)&&0<d){d/=100;var u=this.editor.graph.isSelectionEmpty();f=null!=f?f:u;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=q?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,
-e);a(c,g.substring(g.lastIndexOf(",")+1),q,b)}catch(n){this.handleError(n)}}),null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(v){this.handleError(v)}}})):this.showRemoteExportDialog(mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*
-f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var q=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));q.send(mxUtils.bind(this,function(){200==q.getStatus()?a(c,q.getText(),e,b):this.handleError(q)}))}catch(u){this.handleError(u)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);
-if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&
-(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':
-"")+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,f){if(this.spinner.spin(document.body,mxResources.get("exporting"))){var g=this.editor.graph.isSelectionEmpty();c=null!=c?c:g;try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c):null)}catch(b){"Invalid image"==b.message?this.downloadFile("png"):this.handleError(b)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),
-null,c,a||1,b,d,null,null,null,f)}catch(q){this.spinner.stop(),this.handleError(q)}}};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,q,u,v,x,z,A,y){f=null!=f?f:!0;z=null!=z?z:this.editor.graph;A=null!=A?A:0;var D=u?null:z.background;D==mxConstants.NONE&&(D=null);null==D&&(D=d);null==D&&!1==u&&(D="#ffffff");this.convertImages(z.getSvg(D,null,null,y,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),
-g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));q=null!=q?q:1;null!=b&&(q=!f?b/g:Math.min(1,Math.min(3*b/(4*m),b/g)));g=Math.ceil(q*g)+2*A;m=Math.ceil(q*m)+2*A;e.setAttribute("width",g);e.setAttribute("height",m);var n=e.getContext("2d");null!=D&&(n.beginPath(),n.rect(0,0,g,m),n.fillStyle=D,n.fill());n.scale(q,q);n.drawImage(d,A/q,A/q);a(e)});d.onerror=function(a){null!=e&&e(a)};try{v&&this.editor.addSvgShadow(c),this.convertMath(z,c,!0,mxUtils.bind(this,function(){d.src=
-this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,x)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,
-b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var m=a.getElementsByTagName(c),v=0;v<m.length;v++)mxUtils.bind(this,function(c){var m=d.convert(c.getAttribute(g));if(null!=m&&"data:"!=m.substring(0,5)){var t=f[m];null==t?(e++,this.convertImageToDataUri(m,function(d){null!=d&&(f[m]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,t)}})(m[v])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=
-function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var q=mxUtils.parseXml(a),
-u=this.editor.extractGraphModel(q.documentElement,null!=this.pages);if(null!=u&&"mxfile"==u.nodeName&&null!=this.pages){var v=u.getElementsByTagName("diagram");if(1==v.length)u=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(v[0]))).documentElement;else if(1<v.length){g.model.beginUpdate();try{for(var x=0;x<v.length;x++){var z=this.updatePageRoot(new DiagramPage(v[x])),A=this.pages.length;null==z.getName()&&z.setName(mxResources.get("pageWithNumber",[A+1]));g.model.execute(new ChangePage(this,
-z,z,A))}}finally{g.model.endUpdate()}}}if(null!=u&&"mxGraphModel"===u.nodeName){var y=new mxGraphModel;(new mxCodec(u.ownerDocument)).decode(u,y);var D=y.getChildCount(y.getRoot());g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};for(x=0;x<D;x++){var B=y.getChildAt(y.getRoot(),x);if(1==D&&!g.isCellLocked(g.getDefaultParent()))var C=y.getChildren(B),f=f.concat(g.importCells(C,b,c,g.getDefaultParent(),null,a));else B=g.importCells([B],0,0,g.model.getRoot(),null,a)[0],C=g.model.getChildren(B),
-g.moveCells(C,b,c),f=f.concat(C)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var E=g.getBoundingBoxFromGeometry(f,!0);null!=E&&g.moveCells(f,b-E.x,c-E.y)}}finally{g.model.endUpdate()}}}}catch(G){throw e||this.handleError(G,mxResources.get("invalidOrMissingFile")),G;}return f};EditorUi.prototype.insertLucidChart=function(a,b,c,d){var e=mxUtils.bind(this,function(){if(this.pasteLucidChart)try{this.pasteLucidChart(a,b,c,d)}catch(e){}});!this.pasteLucidChart&&!this.loadingExtensions&&!this.isOffline()?
-(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("/js/diagramly/Extensions.js",e):mxscript("/js/extensions.min.js",e)):window.setTimeout(e,0)};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,
-b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var q=this.extractGraphModelFromPng(a),u=this.importXml(q,b,c,f,!0);if(0<u.length)return u}if("data:image/svg+xml;"==a.substring(0,19))try{if(q=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(q=a.substring(a.indexOf(",")+1),q=window.atob&&!mxClient.IS_SF?atob(q):Base64.decode(q,!0)):q=decodeURIComponent(a.substring(a.indexOf(",")+
-1)),u=this.importXml(q,b,c,f,!0),0<u.length)return u}catch(v){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/
-d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),
-g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length)if('{"state":"{\\"Properties\\":'==a.substring(0,26)){e=JSON.parse(JSON.parse(a).state);var q=null,x;for(x in e.Pages)if(u=e.Pages[x],null!=u&&"0"==u.Properties.Order){q=u;break}null!=q&&this.insertLucidChart(q,b,c,f)}else{g=this.editor.graph;f=null;g.getModel().beginUpdate();
-try{f=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[f])),f.value=a,g.updateCellSize(f),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(f.value)&&g.setLinkForCell(f,f.value),f.geometry.width+=g.gridSize,f.geometry.height+=
-g.gridSize}finally{g.getModel().endUpdate()}return[f]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||
-null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,q,u,v,x){v=null!=v?v:!0;var z=!1,A=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=x?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(A=this.importXml(b,c,d,v),g=!0)),g||(A=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),v&&A.isGridEnabled()&&(c=A.snap(c),d=A.snap(d)),A=[A.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+
-a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(z=!0,this.parseFile(null!=u?u:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,c,d,v));null!=q&&q(b)}}),g)):/(\.vsd)($|\?)/i.test(g)||(A=this.insertTextAt(this.validateFileData(a),c,d,!0,null,v));!z&&null!=q&&q(A);return A};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=
-a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&
-15)<<2);b+="\x3d";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,q,u,v,x,z){var A=null!=b&&null!=
-c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;v=null!=v?v:this.maxImageBytes;u=null!=u?u:!0;var y=this.editor.graph,D=y.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):this.importFile(a,b,c,d,e,f,g,k,l,A,z)});f=null!=f?f:mxUtils.bind(this,function(a){y.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var B=
-a.length,C=B,E=[],G=mxUtils.bind(this,function(a,b){E[a]=b;if(0==--C){this.spinner.stop();if(null!=q)q(E);else{var c=[];y.getModel().beginUpdate();try{for(var d=0;d<E.length;d++){var e=E[d]();null!=e&&(c=c.concat(e))}}finally{y.getModel().endUpdate()}}f(c)}}),H=0;H<B;H++)mxUtils.bind(this,function(f){var q=a[f],s=new FileReader;s.onload=mxUtils.bind(this,function(a){if(null==g||g(q))if("image/"==q.type.substring(0,6))if("image/svg"==q.type.substring(0,9)){var k=a.target.result,s=k.indexOf(","),y=
-atob(k.substring(s+1)),A=mxUtils.parseXml(y),y=A.getElementsByTagName("svg");if(0<y.length){var y=y[0],B=z?null:y.getAttribute("content");null!=B&&"\x3c"!=B.charAt(0)&&"%"!=B.charAt(0)&&(B=unescape(window.atob?atob(B):Base64.decode(B,!0)));null!=B&&"%"==B.charAt(0)&&(B=decodeURIComponent(B));null!=B&&("\x3cmxfile "===B.substring(0,8)||"\x3cmxGraphModel "===B.substring(0,14))?G(f,mxUtils.bind(this,function(){return e(B,"text/xml",b+f*D,c+f*D,0,0,q.name)})):G(f,mxUtils.bind(this,function(){try{if(k.substring(0,
-s+1),null!=A){var a=A.getElementsByTagName("svg");if(0<a.length){var g=a[0],t=parseFloat(g.getAttribute("width")),u=parseFloat(g.getAttribute("height")),v=g.getAttribute("viewBox");if(null==v||0==v.length)g.setAttribute("viewBox","0 0 "+t+" "+u);else if(isNaN(t)||isNaN(u)){var x=v.split(" ");3<x.length&&(t=parseFloat(x[2]),u=parseFloat(x[3]))}k=this.createSvgDataUri(mxUtils.getXml(a[0]));var z=Math.min(1,Math.min(d/Math.max(1,t)),d/Math.max(1,u));return e(k,q.type,b+f*D,c+f*D,Math.max(1,Math.round(t*
-z)),Math.max(1,Math.round(u*z)),q.name)}}}catch(y){}return null}))}}else{y=!1;if("image/png"==q.type){var C=z?null:this.extractGraphModelFromPng(a.target.result);if(null!=C&&0<C.length){var E=new Image;E.src=a.target.result;G(f,mxUtils.bind(this,function(){return e(C,"text/xml",b+f*D,c+f*D,E.width,E.height,q.name)}));y=!0}}y||(null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),
-mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,k,s){G(f,mxUtils.bind(this,function(){if(null!=g&&g.length<v){var t=!u||!this.isResampleImage(a.target.result)?1:Math.min(1,Math.min(d/k,d/s));return e(g,q.type,b+f*D,c+f*D,Math.round(k*t),Math.round(s*t),q.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),u,d,x)})))}else e(a.target.result,q.type,b+f*D,c+f*D,240,160,q.name,function(a){G(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(q.name)?e(null,q.type,b+f*D,c+f*D,240,160,q.name,function(a){G(f,function(){return a})},q):"image"==q.type.substring(0,5)?s.readAsDataURL(q):s.readAsText(q)})(H)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=
-function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),q=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var u=Math.max(g/e,q/e);if(1<u){var v=Math.round(g/u),x=Math.round(q/u),z=document.createElement("canvas");z.width=v;z.height=x;z.getContext("2d").drawImage(a,0,0,v,x);var A=z.toDataURL();if(A.length<b.length){var y=
-document.createElement("canvas");y.width=v;y.height=x;var D=y.toDataURL();A!==D&&(b=A,g=v,q=x)}}}catch(B){}c(b,g,q)};EditorUi.prototype.crcTable=[];for(var c=0;256>c;c++)for(var f=c,d=0;8>d;d++)f=1==(f&1)?3988292384^f>>>1:f>>>1,EditorUi.prototype.crcTable[c]=f;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=q;q+=b;return a.substring(c,q)}
-function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var q=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,q);do{var u=g(a);if("IDAT"==f(a,4)){e=a.substring(0,q-8);u=4294967295;u=this.updateCRC(u,b,0,4);u=this.updateCRC(u,d,0,d.length);e+=String.fromCharCode(c.length+
-d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((u^4294967295)>>24&255,(u^4294967295)>>16&255,(u^4294967295)>>8&255,(u^4294967295)&255);e+=a.substring(q-8,a.length);break}e+=a.substring(q-8,q-4+u);d=f(a,u);f(a,4)}while(u);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=
-function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||
-"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var b=EditorUi.prototype.init;EditorUi.prototype.init=function(){b.apply(this,arguments);var a=this.editor.graph,c=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");
-var d=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=c.currentPage?c.currentPage.getName():"pagenumber"==a?null!=c.currentPage&&null!=c.pages?mxUtils.indexOf(c.pages,c.currentPage)+1:1:d.apply(this,arguments)};this.editor.getOrCreateFilename=function(){var a=c.defaultFilename,b=c.getCurrentFile();null!=b&&(a=null!=b.getTitle()?b.getTitle():a);return a};var e=this.actions.get("print");e.setEnabled(!mxClient.IS_IOS||!navigator.standalone);e.visible=e.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(70,
-!0,"find");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);mxClient.IS_IE||a.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,
-d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(l){}}),
-!1);var f=document.createElement("div");f.style.position="absolute";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.display="block";f.contentEditable=!0;mxUtils.setOpacity(f,0);f.style.width="1px";f.style.height="1px";f.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);if(null!=a.container&&
-a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var t=function(){window.setTimeout(function(){f.innerHTML=
-"\x26nbsp;";f.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&null==this.dialog&&null!=a.container&&a.container.focus(),f.parentNode.removeChild(f)}),0)}));mxEvent.addListener(f,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(f),t())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,
-function(b){a.isEnabled()&&(this.copyCells(f,!0),t())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML="\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var q=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:q.apply(this,arguments)}}e=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||
-0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,e,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||10<document.documentMode))d=this.highlightElement(c);
-a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");
-/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,
-"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){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(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility=
-"hidden"})));var u=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:u.apply(this,arguments)}}e=document.getElementById("geInfo");null!=e&&e.parentNode.removeChild(e);if(Graph.fileSupport){var v=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=v&&(v.parentNode.removeChild(v),v=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==v&&
-(!mxClient.IS_IE||10<document.documentMode))v=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,"drop",mxUtils.bind(this,function(b){null!=v&&(v.parentNode.removeChild(v),v=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,
-f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b));else{var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,m=e.getElementsByTagName("img");null!=
-m&&1==m.length?(c=m[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,
-null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+l+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(l,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,g,!0))}}b.stopPropagation();b.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode()};
-EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");
-if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d=c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.insertLucidChart(JSON.parse(d)),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var g=e.lastIndexOf("%3E");0<=g&&g<e.length-3&&(e=e.substring(0,g+3))}catch(q){}try{var c=b.getElementsByTagName("span"),u=null!=c&&0<c.length?
-mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(u)&&(f=!0,e=u)}catch(v){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))),!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());
-null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(x){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=
-this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:
-a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==
-c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&this.openLocalFile(d)),!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();
-a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=
-c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,
-c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){var c=b.target.result,d=a.name;if(null!=d&&0<d.length)if(/(\.png)$/i.test(d)&&(d=d.substring(0,d.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,d))d=0<=d.lastIndexOf(".")?d.substring(0,d.lastIndexOf("."))+
-".xml":d+".xml",this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200==a.status?this.openLocalFile(a.responseText,d):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if("\x3cmxlibrary"==b.target.result.substring(0,10)){this.spinner.stop();try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}}else"image/png"==
-a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,d)});b.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?b.readAsDataURL(a):b.readAsText(a)})(a[b])};EditorUi.prototype.openLocalFile=function(a,b){var c=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);
-null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename))});null!=a&&0<a.length&&(null!=this.getCurrentFile()&&!this.isDiagramEmpty()?(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,c)):c())};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),
-this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var d=a.lastIndexOf(".");0<d&&(a=a.substring(d+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),
-c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.initializeEmbedMode=function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.editor.graph.setEnabled(!1);if((window.opener||window.parent)!=window)("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,
-function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.diagramContainer.style.visibility="";this.formatContainer.style.visibility="";this.editor.graph.setEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.showLayersDialog()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};
-EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=
-function(a){var b=null,c=!1,d=!1,e=null,f=mxUtils.bind(this,function(a,b){!this.editor.modified||"0"==urlParams.modified?this.editor.setStatus(""):null!=urlParams.modified&&this.editor.setStatus(mxResources.get(urlParams.modified))});this.editor.graph.model.addListener(mxEvent.CHANGE,f);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){function u(a){if(null!=a&&"function"===typeof a.charAt&&"\x3c"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):
-"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"\x3c"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(b){}return a}var s=f.data;if("json"==urlParams.proto){try{s=JSON.parse(s)}catch(x){s=null}if(null==s)return;if("dialog"==s.action){this.showError(null!=s.titleKey?mxResources.get(s.titleKey):s.title,null!=s.messageKey?mxResources.get(s.messageKey):s.message,null!=s.buttonKey?mxResources.get(s.buttonKey):s.button);null!=
-s.modified&&(this.editor.modified=s.modified);return}if("prompt"==s.action){var z=new FilenameDialog(this,s.defaultValue||"",null!=s.okKey?mxResources.get(s.okKey):null,function(a){null!=a&&g.postMessage(JSON.stringify({event:"prompt",value:a,message:s}),"*")},null!=s.titleKey?mxResources.get(s.titleKey):s.title);this.showDialog(z.container,300,80,!0,!1);z.init();return}if("draft"==s.action){z=null;z="data:image/png;base64,"==s.xml.substring(0,22)?this.extractGraphModelFromPng(s.xml):u(s.xml);z=new DraftDialog(this,
-mxResources.get("draftFound",[s.name||this.defaultFilename]),z,mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"edit",message:s}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"discard",message:s}),"*")}),s.editKey?mxResources.get(s.editKey):null,s.discardKey?mxResources.get(s.discardKey):null);this.showDialog(z.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
-try{z.init()}catch(A){g.postMessage(JSON.stringify({event:"draft",error:A.toString(),message:s}),"*")}return}if("template"==s.action){z=new NewDialog(this,!1,null!=s.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=s.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}));this.showDialog(z.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&
-this.actions.get("exit").funct()}));z.init();return}if("status"==s.action){null!=s.messageKey?this.editor.setStatus(mxResources.get(s.messageKey)):null!=s.message&&this.editor.setStatus(s.message);null!=s.modified&&(this.editor.modified=s.modified);return}if("spinner"==s.action){var y=null!=s.messageKey?mxResources.get(s.messageKey):s.message;null!=s.show&&!s.show?this.spinner.stop():this.spinner.spin(document.body,y);return}if("export"==s.action){if("png"==s.format||"xmlpng"==s.format){if(null==
-s.spin&&null==s.spinKey||this.spinner.spin(document.body,null!=s.spinKey?mxResources.get(s.spinKey):s.spin)){var D=null!=s.xml?s.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var B=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=s.format;b.xml=encodeURIComponent(D);b.data="data:image/png;base64,"+a;g.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var C=this.editor.graph;if(null!=this.pages&&this.currentPage!=
-this.pages[0]){var C=this.createTemporaryGraph(C.getStylesheet()),E=C.getGlobalVariable,G=this.pages[0];C.getGlobalVariable=function(a){return"page"==a?G.getName():"pagenumber"==a?1:E.apply(this,arguments)};document.body.appendChild(C.container);C.model.setRoot(G.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");"xmlpng"==s.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(D))));C!=this.editor.graph&&C.container.parentNode.removeChild(C.container);
-B(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,null,null,C)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==s.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(D)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();200==a.getStatus()&&B(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=s.xml&&0<s.xml.length&&this.setFileData(s.xml);y=this.createLoadMessage("export");
-if("html2"==s.format||"html"==s.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))z=this.getXmlFileData(),y.xml=mxUtils.getXml(z),y.data=this.getFileData(null,null,!0,null,null,null,z),y.format=s.format;else if("html"==s.format)D=this.editor.getGraphXml(),y.data=this.getHtml(D,this.editor.graph),y.xml=mxUtils.getXml(D),y.format=s.format;else{mxSvgCanvas2D.prototype.foAltText=null;z=this.editor.graph.background;z==mxConstants.NONE&&(z=null);y.xml=this.getFileData(!0);y.format="svg";
-if(s.embedImages||null==s.embedImages){if(null==s.spin&&null==s.spinKey||this.spinner.spin(document.body,null!=s.spinKey?mxResources.get(s.spinKey):s.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==s.format?this.getEmbeddedSvg(y.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();y.data=this.createSvgDataUri(a);g.postMessage(JSON.stringify(y),"*")})):this.convertImages(this.editor.graph.getSvg(z),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();y.data=this.createSvgDataUri(mxUtils.getXml(a));g.postMessage(JSON.stringify(y),"*")}));return}z="xmlsvg"==s.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(z));y.data=this.createSvgDataUri(z)}g.postMessage(JSON.stringify(y),"*")}return}if("load"==s.action)d=1==s.autosave,this.hideDialog(),null!=s.modified&&null==urlParams.modified&&(urlParams.modified=s.modified),null!=s.saveAndExit&&null==urlParams.saveAndExit&&
-(urlParams.saveAndExit=s.saveAndExit),null!=s.title&&null!=this.buttonContainer&&(z=document.createElement("span"),mxUtils.write(z,s.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),this.buttonContainer.appendChild(z)),s=null!=s.xmlpng?this.extractGraphModelFromPng(s.xmlpng):null!=s.xml&&"data:image/png;base64,"==s.xml.substring(0,22)?this.extractGraphModelFromPng(s.xml):
-s.xml;else{g.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(s)}),"*");return}}s=u(s);c=!0;try{a(s,f)}catch(H){this.handleError(H)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var I=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=I();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=I();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;
-d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",
-b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));("1"==urlParams.returnbounds||"json"==urlParams.proto)&&g.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}));var g=window.opener||window.parent,f="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";g.postMessage(f,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position=
-"absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" (Ctrl+S)");b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&
-(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft=
-"6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px";"atlas"==uiTheme&&(this.statusContainer.style.color="#707070",this.statusContainer.style.paddingLeft="26px",this.toolbar.staticElements.push(this.statusContainer),this.toolbar.container.appendChild(this.statusContainer))}};
-EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"\x3d"+urlParams[d],c="\x26")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),
+else{var f=document.createElement("a");if("undefined"!==typeof f.download||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));"undefined"!==typeof f.download?f.download=b:f.setAttribute("target","_blank");document.body.appendChild(f);try{f.click(),window.setTimeout(function(){URL.revokeObjectURL(f.href)},0),f.parentNode.removeChild(f)}catch(g){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,
+b,c,d,e,f){a="xml\x3d"+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"\x26mime\x3d"+c:"")+(null!=e?"\x26format\x3d"+e:"")+(null!=f?"\x26base64\x3d"+f:"")+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):"")+(d?"\x26binary\x3d1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),f=Array(e),g=0;g<e;++g){for(var q=1024*g,u=Math.min(q+1024,d),v=Array(u-q),x=0;q<u;++x,++q)v[x]=c[q].charCodeAt(0);f[g]=new Uint8Array(v)}return new Blob(f,
+{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,e){var f=!mxClient.IS_IOS||!navigator.standalone;e=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===typeof window.DropboxClient||"function"===typeof window.OneDriveClient);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):null!=c&&"image/"==c.substring(0,6)&&("image/svg"!=c.substring(0,9)||mxClient.IS_SVG)?
+mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode?(f.document.write('\x3chtml\x3e\x3cimg src\x3d"data:'+c+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a))+'"/\x3e\x3c/html\x3e'),f.document.close()):f.location.replace("data:"+c+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a))):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else e==App.MODE_DEVICE?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(f){this.exportFile(a,
+b,c,d,e,f)}))}catch(g){this.handleError(g)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,f);this.showDialog(b.container,380,e?280:160,!0,!0);b.init()};EditorUi.prototype.saveData=function(a,b,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}))};EditorUi.prototype.saveRequest=function(a,b,c){var d=!mxClient.IS_IOS||!navigator.standalone,
+e=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===typeof window.DropboxClient||"function"===typeof window.OneDriveClient);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var e=c("_blank"==d?null:a,d==App.MODE_DEVICE||null==d||"_blank"==d?"0":"1");null!=e&&(d==App.MODE_DEVICE||"_blank"==d?e.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(c){this.spinner.spin(document.body,mxResources.get("saving"))&&
+e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200>e.getStatus()||299<e.getStatus())this.handleError({message:mxResources.get("errorSavingFile")});else try{var f="pdf"==b?"application/pdf":"image/"+b;this.exportFile(e.getText(),a,f,!0,d,c)}catch(g){this.handleError(g)}}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,d);this.showDialog(a.container,380,e?280:160,!0,
+!0);a.init()};EditorUi.prototype.exportFile=function(a,b,c,d,e,f){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,e,f,g){if(this.spinner.spin(document.body,mxResources.get("export"))){var q=this.editor.graph.isSelectionEmpty();c=null!=c?c:q;q=b?null:this.editor.graph.background;q==mxConstants.NONE&&(q=null);null==q&&!1==b&&(q="#ffffff");var u=this.editor.graph.getSvg(q,a,null,g,null,c);d&&this.editor.addSvgShadow(u);a=this.getCurrentFile();var v=
+null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;a=v.lastIndexOf(".");0<a&&(v=v.substring(0,a));var v=v+".svg",x=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,null,null,null,c));var b='\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(v,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},
+mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,u,!1,mxUtils.bind(this,function(){f?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(u,x,this.thumbImageCache)):x(u)}))}};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";f.setAttribute("type","checkbox");d.isSelectionEmpty()&&
+f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));mxUtils.br(e);var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),null,a,b);this.showDialog(a.container,300,120,
+!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e){var f=this.editor.graph,g=document.createElement("div");g.style.paddingTop="20px";g.style.paddingRight="8px";var q=240,u=document.createElement("input");u.style.marginRight="8px";u.setAttribute("type","checkbox");if(f.background==mxConstants.NONE||null==f.background)u.setAttribute("checked","checked"),u.defaultChecked=!0;g.appendChild(u);mxUtils.write(g,mxResources.get("transparentBackground"));mxUtils.br(g);var v=document.createElement("input");
+v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");g.appendChild(v);mxUtils.write(g,mxResources.get("selectionOnly"));mxUtils.br(g);var x=document.createElement("input");x.style.marginTop="16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");e&&(g.appendChild(x),mxUtils.write(g,mxResources.get("crop")),mxUtils.br(g),q+=26);f.isSelectionEmpty()&&(v.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"));var z=document.createElement("input");
+z.style.marginTop="16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");g.appendChild(z);mxUtils.write(g,mxResources.get("shadow"));mxUtils.br(g);f.shadowVisible&&(z.setAttribute("checked","checked"),z.defaultChecked=!0);var A=document.createElement("input");A.style.marginTop="16px";A.style.marginRight="8px";A.setAttribute("type","checkbox");(this.isOffline()||!this.canvasSupported)&&A.setAttribute("disabled","disabled");a&&(g.appendChild(A),mxUtils.write(g,mxResources.get("embedImages")),
+mxUtils.br(g),q+=26);var y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight="8px";y.setAttribute("type","checkbox");y.style.marginBottom="8px";y.setAttribute("checked","checked");y.defaultChecked=!0;g.appendChild(y);mxUtils.write(g,mxResources.get("includeCopyOfMyDiagram"));a=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,u.checked,!v.checked,z.checked,y.checked,A.checked,x.checked)}),mxResources.get("zoom")+" (%)",null,g,!this.isOffline()?c:null);this.showDialog(a.container,
+320,q,!0,!0);a.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop="20px";c.style.paddingRight="8px";var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),q=document.createElement("td"),u=document.createElement("input");u.setAttribute("type","text");mxUtils.write(q,"Username:");g.appendChild(q);q=q.cloneNode(!1);q.appendChild(u);g.appendChild(q);f.appendChild(g);var q=
+q.cloneNode(!1),v=document.createElement("input");v.setAttribute("type","password");mxUtils.write(q,"Password:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(v);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),x=document.createElement("input");x.setAttribute("type","text");mxUtils.write(q,"Organisation:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(x);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),z=document.createElement("input");z.setAttribute("type",
+"text");mxUtils.write(q,"Repository:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(z);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),A=document.createElement("input");A.setAttribute("type","text");mxUtils.write(q,"Path:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(A);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var y=a.lastIndexOf(".");0<y&&(a=a.substring(0,
+y));A.value=a+".png";var D=document.createElement("input");D.setAttribute("type","text");mxUtils.write(q,"Branch/Tag:");D.value="master";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(D);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),B=document.createElement("input");B.setAttribute("type","text");mxUtils.write(q,"Message:");B.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(B);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);
+e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+x.value+"/"+z.value+"/contents/"+A.value+"?ref\x3d"+encodeURIComponent(D.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());var e={path:A.value,message:B.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==
+f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+x.value+"/"+z.value+"/blob/"+D.value+"/"+A.value;var b=new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,
+170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+btoa(u.value+":"+v.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};
+EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause();c=!1;var f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,
+g=f.lastIndexOf("."),s=f;0<g&&(s=f=s.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:s+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),v=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+
+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+
+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var l=new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");l.send(mxUtils.bind(this,
+function(){200==l.getStatus()?k():v(l)}),mxUtils.bind(this,function(){v(l)}))}else k()}catch(p){this.handleError(p)}else v(a)}),mxUtils.bind(this,function(a){v(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,q){d=parseInt(d);
+if(!isNaN(d)&&0<d){d/=100;var u=this.editor.graph.isSelectionEmpty();f=null!=f?f:u;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=q?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,e);a(c,g.substring(g.lastIndexOf(",")+1),q,b)}catch(n){this.handleError(n)}}),null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(v){this.handleError(v)}}})):this.showRemoteExportDialog(mxResources.get("publish"),
+"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var q=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));q.send(mxUtils.bind(this,function(){200==q.getStatus()?a(c,q.getText(),
+e,b):this.handleError(q)}))}catch(u){this.handleError(u)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");
+b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':
+"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,f){if(this.spinner.spin(document.body,mxResources.get("exporting"))){var g=this.editor.graph.isSelectionEmpty();c=null!=c?c:g;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();
+try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c):null)}catch(b){"Invalid image"==b.message?this.downloadFile("png"):this.handleError(b)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,d,null,null,null,f)}catch(q){this.spinner.stop(),this.handleError(q)}}};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,q,u,v,x,z,A,y){f=null!=f?f:!0;z=null!=z?z:this.editor.graph;A=null!=A?A:0;var D=u?null:z.background;D==
+mxConstants.NONE&&(D=null);null==D&&(D=d);null==D&&!1==u&&(D="#ffffff");this.convertImages(z.getSvg(D,null,null,y,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));q=null!=q?q:1;null!=b&&(q=!f?b/g:Math.min(1,Math.min(3*b/(4*m),b/g)));g=Math.ceil(q*g)+2*A;m=Math.ceil(q*m)+2*A;e.setAttribute("width",g);e.setAttribute("height",m);var n=e.getContext("2d");
+null!=D&&(n.beginPath(),n.rect(0,0,g,m),n.fillStyle=D,n.fill());n.scale(q,q);n.drawImage(d,A/q,A/q);a(e)});d.onerror=function(a){null!=e&&e(a)};try{v&&this.editor.addSvgShadow(c),this.convertMath(z,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,x)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==
+c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var m=a.getElementsByTagName(c),v=0;v<m.length;v++)mxUtils.bind(this,function(c){var m=d.convert(c.getAttribute(g));if(null!=m&&"data:"!=m.substring(0,5)){var t=
+f[m];null==t?(e++,this.convertImageToDataUri(m,function(d){null!=d&&(f[m]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,t)}})(m[v])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=
+c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var q=mxUtils.parseXml(a),u=this.editor.extractGraphModel(q.documentElement,null!=this.pages);if(null!=u&&"mxfile"==u.nodeName&&null!=this.pages){var v=u.getElementsByTagName("diagram");if(1==v.length)u=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(v[0]))).documentElement;else if(1<
+v.length){g.model.beginUpdate();try{for(var x=0;x<v.length;x++){var z=this.updatePageRoot(new DiagramPage(v[x])),A=this.pages.length;null==z.getName()&&z.setName(mxResources.get("pageWithNumber",[A+1]));g.model.execute(new ChangePage(this,z,z,A))}}finally{g.model.endUpdate()}}}if(null!=u&&"mxGraphModel"===u.nodeName){var y=new mxGraphModel;(new mxCodec(u.ownerDocument)).decode(u,y);var D=y.getChildCount(y.getRoot());g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};for(x=0;x<
+D;x++){var B=y.getChildAt(y.getRoot(),x);if(1==D&&!g.isCellLocked(g.getDefaultParent()))var C=y.getChildren(B),f=f.concat(g.importCells(C,b,c,g.getDefaultParent(),null,a));else B=g.importCells([B],0,0,g.model.getRoot(),null,a)[0],C=g.model.getChildren(B),g.moveCells(C,b,c),f=f.concat(C)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var E=g.getBoundingBoxFromGeometry(f,!0);null!=E&&g.moveCells(f,b-E.x,c-E.y)}}finally{g.model.endUpdate()}}}}catch(G){throw e||this.handleError(G,mxResources.get("invalidOrMissingFile")),
+G;}return f};EditorUi.prototype.insertLucidChart=function(a,b,c,d){var e=mxUtils.bind(this,function(){if(this.pasteLucidChart)try{this.pasteLucidChart(a,b,c,d)}catch(e){}});!this.pasteLucidChart&&!this.loadingExtensions&&!this.isOffline()?(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("/js/diagramly/Extensions.js",e):mxscript("/js/extensions.min.js",e)):window.setTimeout(e,0)};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&
+(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var q=this.extractGraphModelFromPng(a),u=this.importXml(q,
+b,c,f,!0);if(0<u.length)return u}if("data:image/svg+xml;"==a.substring(0,19))try{if(q=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(q=a.substring(a.indexOf(",")+1),q=window.atob&&!mxClient.IS_SF?atob(q):Base64.decode(q,!0)):q=decodeURIComponent(a.substring(a.indexOf(",")+1)),u=this.importXml(q,b,c,f,!0),0<u.length)return u}catch(v){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,
+null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+
+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length)if('{"state":"{\\"Properties\\":'==a.substring(0,26)){e=
+JSON.parse(JSON.parse(a).state);var q=null,x;for(x in e.Pages)if(u=e.Pages[x],null!=u&&"0"==u.Properties.Order){q=u;break}null!=q&&this.insertLucidChart(q,b,c,f)}else{g=this.editor.graph;f=null;g.getModel().beginUpdate();try{f=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[f])),f.value=a,g.updateCellSize(f),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(f.value)&&
+g.setLinkForCell(f,f.value),f.geometry.width+=g.gridSize,f.geometry.height+=g.gridSize}finally{g.getModel().endUpdate()}return[f]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=
+function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,q,u,v,x){v=null!=v?v:!0;var z=!1,A=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=x?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(A=this.importXml(b,c,d,v),g=!0)),g||(A=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+
+1))),v&&A.isGridEnabled()&&(c=A.snap(c),d=A.snap(d)),A=[A.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(z=!0,this.parseFile(null!=u?u:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,
+c,d,v));null!=q&&q(b)}}),g)):/(\.vsd)($|\?)/i.test(g)||(A=this.insertTextAt(this.validateFileData(a),c,d,!0,null,v));!z&&null!=q&&q(A);return A};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);b+="\x3d";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>
+6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,q,u,v,x,z){var A=null!=b&&null!=c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;v=null!=v?v:this.maxImageBytes;u=null!=u?u:!0;var y=this.editor.graph,D=y.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):
+this.importFile(a,b,c,d,e,f,g,k,l,A,z)});f=null!=f?f:mxUtils.bind(this,function(a){y.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var B=a.length,C=B,E=[],G=mxUtils.bind(this,function(a,b){E[a]=b;if(0==--C){this.spinner.stop();if(null!=q)q(E);else{var c=[];y.getModel().beginUpdate();try{for(var d=0;d<E.length;d++){var e=E[d]();null!=e&&(c=c.concat(e))}}finally{y.getModel().endUpdate()}}f(c)}}),H=0;H<B;H++)mxUtils.bind(this,function(f){var q=a[f],s=new FileReader;
+s.onload=mxUtils.bind(this,function(a){if(null==g||g(q))if("image/"==q.type.substring(0,6))if("image/svg"==q.type.substring(0,9)){var k=a.target.result,s=k.indexOf(","),y=atob(k.substring(s+1)),A=mxUtils.parseXml(y),y=A.getElementsByTagName("svg");if(0<y.length){var y=y[0],B=z?null:y.getAttribute("content");null!=B&&"\x3c"!=B.charAt(0)&&"%"!=B.charAt(0)&&(B=unescape(window.atob?atob(B):Base64.decode(B,!0)));null!=B&&"%"==B.charAt(0)&&(B=decodeURIComponent(B));null!=B&&("\x3cmxfile "===B.substring(0,
+8)||"\x3cmxGraphModel "===B.substring(0,14))?G(f,mxUtils.bind(this,function(){return e(B,"text/xml",b+f*D,c+f*D,0,0,q.name)})):G(f,mxUtils.bind(this,function(){try{if(k.substring(0,s+1),null!=A){var a=A.getElementsByTagName("svg");if(0<a.length){var g=a[0],t=parseFloat(g.getAttribute("width")),u=parseFloat(g.getAttribute("height")),v=g.getAttribute("viewBox");if(null==v||0==v.length)g.setAttribute("viewBox","0 0 "+t+" "+u);else if(isNaN(t)||isNaN(u)){var x=v.split(" ");3<x.length&&(t=parseFloat(x[2]),
+u=parseFloat(x[3]))}k=this.createSvgDataUri(mxUtils.getXml(a[0]));var z=Math.min(1,Math.min(d/Math.max(1,t)),d/Math.max(1,u));return e(k,q.type,b+f*D,c+f*D,Math.max(1,Math.round(t*z)),Math.max(1,Math.round(u*z)),q.name)}}}catch(y){}return null}))}}else{y=!1;if("image/png"==q.type){var C=z?null:this.extractGraphModelFromPng(a.target.result);if(null!=C&&0<C.length){var E=new Image;E.src=a.target.result;G(f,mxUtils.bind(this,function(){return e(C,"text/xml",b+f*D,c+f*D,E.width,E.height,q.name)}));y=
+!0}}y||(null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,k,s){G(f,mxUtils.bind(this,function(){if(null!=
+g&&g.length<v){var t=!u||!this.isResampleImage(a.target.result)?1:Math.min(1,Math.min(d/k,d/s));return e(g,q.type,b+f*D,c+f*D,Math.round(k*t),Math.round(s*t),q.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),u,d,x)})))}else e(a.target.result,q.type,b+f*D,c+f*D,240,160,q.name,function(a){G(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(q.name)?e(null,q.type,b+f*D,c+f*D,240,160,q.name,function(a){G(f,function(){return a})},q):"image"==q.type.substring(0,5)?s.readAsDataURL(q):
+s.readAsText(q)})(H)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),q=Math.max(1,a.height);if(d&&this.isResampleImage(b,
+f))try{var u=Math.max(g/e,q/e);if(1<u){var v=Math.round(g/u),x=Math.round(q/u),z=document.createElement("canvas");z.width=v;z.height=x;z.getContext("2d").drawImage(a,0,0,v,x);var A=z.toDataURL();if(A.length<b.length){var y=document.createElement("canvas");y.width=v;y.height=x;var D=y.toDataURL();A!==D&&(b=A,g=v,q=x)}}}catch(B){}c(b,g,q)};EditorUi.prototype.crcTable=[];for(var c=0;256>c;c++)for(var f=c,d=0;8>d;d++)f=1==(f&1)?3988292384^f>>>1:f>>>1,EditorUi.prototype.crcTable[c]=f;EditorUi.prototype.updateCRC=
+function(a,b,c,d){for(var e=0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=q;q+=b;return a.substring(c,q)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var q=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,
+4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,q);do{var u=g(a);if("IDAT"==f(a,4)){e=a.substring(0,q-8);u=4294967295;u=this.updateCRC(u,b,0,4);u=this.updateCRC(u,d,0,d.length);e+=String.fromCharCode(c.length+d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((u^4294967295)>>24&255,(u^4294967295)>>
+16&255,(u^4294967295)>>8&255,(u^4294967295)&255);e+=a.substring(q-8,a.length);break}e+=a.substring(q-8,q-4+u);d=f(a,u);f(a,4)}while(u);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),
+"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=
+c);d.src=a};var b=EditorUi.prototype.init;EditorUi.prototype.init=function(){b.apply(this,arguments);var a=this.editor.graph,c=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");var d=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=c.currentPage?c.currentPage.getName():"pagenumber"==a?null!=c.currentPage&&null!=c.pages?mxUtils.indexOf(c.pages,c.currentPage)+1:1:d.apply(this,arguments)};
+this.editor.getOrCreateFilename=function(){var a=c.defaultFilename,b=c.getCurrentFile();null!=b&&(a=null!=b.getTitle()?b.getTitle():a);return a};var e=this.actions.get("print");e.setEnabled(!mxClient.IS_IOS||!navigator.standalone);e.visible=e.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(70,!0,"find");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);mxClient.IS_IE||a.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],
+0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(l){}}),!1);var f=document.createElement("div");f.style.position="absolute";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.display="block";f.contentEditable=!0;mxUtils.setOpacity(f,
+0);f.style.width="1px";f.style.height="1px";f.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);if(null!=a.container&&a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&
+!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var t=function(){window.setTimeout(function(){f.innerHTML="\x26nbsp;";f.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,
+function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&null==this.dialog&&null!=a.container&&a.container.focus(),f.parentNode.removeChild(f)}),0)}));mxEvent.addListener(f,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(f),t())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,function(b){a.isEnabled()&&(this.copyCells(f,!0),t())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML=
+"\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var q=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:q.apply(this,arguments)}}e=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,e,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=
+this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||10<document.documentMode))d=this.highlightElement(c);a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,
+0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,
+Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){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(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var u=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:u.apply(this,arguments)}}e=document.getElementById("geInfo");
+null!=e&&e.parentNode.removeChild(e);if(Graph.fileSupport){var v=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=v&&(v.parentNode.removeChild(v),v=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==v&&(!mxClient.IS_IE||10<document.documentMode))v=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,
+"drop",mxUtils.bind(this,function(b){null!=v&&(v.parentNode.removeChild(v),v=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b));else{var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?
+b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,m=e.getElementsByTagName("img");null!=m&&1==m.length?(c=m[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));
+a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+
+l+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(l,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,g,!0))}}b.stopPropagation();b.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode()};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),
+e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d=c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&
+(this.insertLucidChart(JSON.parse(d)),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var g=e.lastIndexOf("%3E");0<=g&&g<e.length-3&&(e=e.substring(0,g+3))}catch(q){}try{var c=b.getElementsByTagName("span"),u=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(u)&&(f=!0,e=u)}catch(v){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=
+e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))),!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(x){}}}}};
+EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,
+function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=
+null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&this.openLocalFile(d)),
+!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=
+0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,
+e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,
+mxResources.get("loading")))for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){var c=b.target.result,d=a.name;if(null!=d&&0<d.length)if(/(\.png)$/i.test(d)&&(d=d.substring(0,d.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,d))d=0<=d.lastIndexOf(".")?d.substring(0,d.lastIndexOf("."))+".xml":d+".xml",this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),
+200==a.status?this.openLocalFile(a.responseText,d):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if("\x3cmxlibrary"==b.target.result.substring(0,10)){this.spinner.stop();try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,
+d)});b.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?b.readAsDataURL(a):b.readAsText(a)})(a[b])};EditorUi.prototype.openLocalFile=function(a,b){var c=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,
+a,b||this.defaultFilename))});null!=a&&0<a.length&&(null!=this.getCurrentFile()&&!this.isDiagramEmpty()?(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,c)):c())};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);
+var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var d=a.lastIndexOf(".");0<d&&(a=a.substring(d+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=
+0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.initializeEmbedMode=function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.editor.graph.setEnabled(!1);if((window.opener||window.parent)!=window)("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.diagramContainer.style.visibility=
+"";this.formatContainer.style.visibility="";this.editor.graph.setEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.showLayersDialog()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&
+(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,f=mxUtils.bind(this,function(a,b){!this.editor.modified||"0"==urlParams.modified?
+this.editor.setStatus(""):null!=urlParams.modified&&this.editor.setStatus(mxResources.get(urlParams.modified))});this.editor.graph.model.addListener(mxEvent.CHANGE,f);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){function u(a){if(null!=a&&"function"===typeof a.charAt&&"\x3c"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):
+"\x3c"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(b){}return a}var s=f.data;if("json"==urlParams.proto){try{s=JSON.parse(s)}catch(x){s=null}if(null==s)return;if("dialog"==s.action){this.showError(null!=s.titleKey?mxResources.get(s.titleKey):s.title,null!=s.messageKey?mxResources.get(s.messageKey):s.message,null!=s.buttonKey?mxResources.get(s.buttonKey):s.button);null!=s.modified&&(this.editor.modified=s.modified);return}if("prompt"==s.action){var z=new FilenameDialog(this,s.defaultValue||
+"",null!=s.okKey?mxResources.get(s.okKey):null,function(a){null!=a&&g.postMessage(JSON.stringify({event:"prompt",value:a,message:s}),"*")},null!=s.titleKey?mxResources.get(s.titleKey):s.title);this.showDialog(z.container,300,80,!0,!1);z.init();return}if("draft"==s.action){z=null;z="data:image/png;base64,"==s.xml.substring(0,22)?this.extractGraphModelFromPng(s.xml):u(s.xml);z=new DraftDialog(this,mxResources.get("draftFound",[s.name||this.defaultFilename]),z,mxUtils.bind(this,function(){this.hideDialog();
+g.postMessage(JSON.stringify({event:"draft",result:"edit",message:s}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"discard",message:s}),"*")}),s.editKey?mxResources.get(s.editKey):null,s.discardKey?mxResources.get(s.discardKey):null);this.showDialog(z.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{z.init()}catch(A){g.postMessage(JSON.stringify({event:"draft",error:A.toString(),message:s}),
+"*")}return}if("template"==s.action){z=new NewDialog(this,!1,null!=s.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=s.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}));this.showDialog(z.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));z.init();return}if("status"==s.action){null!=s.messageKey?
+this.editor.setStatus(mxResources.get(s.messageKey)):null!=s.message&&this.editor.setStatus(s.message);null!=s.modified&&(this.editor.modified=s.modified);return}if("spinner"==s.action){var y=null!=s.messageKey?mxResources.get(s.messageKey):s.message;null!=s.show&&!s.show?this.spinner.stop():this.spinner.spin(document.body,y);return}if("export"==s.action){if("png"==s.format||"xmlpng"==s.format){if(null==s.spin&&null==s.spinKey||this.spinner.spin(document.body,null!=s.spinKey?mxResources.get(s.spinKey):
+s.spin)){var D=null!=s.xml?s.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var B=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=s.format;b.xml=encodeURIComponent(D);b.data="data:image/png;base64,"+a;g.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var C=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var C=this.createTemporaryGraph(C.getStylesheet()),E=C.getGlobalVariable,G=this.pages[0];
+C.getGlobalVariable=function(a){return"page"==a?G.getName():"pagenumber"==a?1:E.apply(this,arguments)};document.body.appendChild(C.container);C.model.setRoot(G.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");"xmlpng"==s.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(D))));C!=this.editor.graph&&C.container.parentNode.removeChild(C.container);B(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,
+null,null,C)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==s.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(D)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();200==a.getStatus()&&B(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=s.xml&&0<s.xml.length&&this.setFileData(s.xml);y=this.createLoadMessage("export");if("html2"==s.format||"html"==s.format&&("0"!=urlParams.pages||
+null!=this.pages&&1<this.pages.length))z=this.getXmlFileData(),y.xml=mxUtils.getXml(z),y.data=this.getFileData(null,null,!0,null,null,null,z),y.format=s.format;else if("html"==s.format)D=this.editor.getGraphXml(),y.data=this.getHtml(D,this.editor.graph),y.xml=mxUtils.getXml(D),y.format=s.format;else{mxSvgCanvas2D.prototype.foAltText=null;z=this.editor.graph.background;z==mxConstants.NONE&&(z=null);y.xml=this.getFileData(!0);y.format="svg";if(s.embedImages||null==s.embedImages){if(null==s.spin&&null==
+s.spinKey||this.spinner.spin(document.body,null!=s.spinKey?mxResources.get(s.spinKey):s.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==s.format?this.getEmbeddedSvg(y.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();y.data=this.createSvgDataUri(a);g.postMessage(JSON.stringify(y),"*")})):this.convertImages(this.editor.graph.getSvg(z),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();y.data=this.createSvgDataUri(mxUtils.getXml(a));
+g.postMessage(JSON.stringify(y),"*")}));return}z="xmlsvg"==s.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(z));y.data=this.createSvgDataUri(z)}g.postMessage(JSON.stringify(y),"*")}return}if("load"==s.action)d=1==s.autosave,this.hideDialog(),null!=s.modified&&null==urlParams.modified&&(urlParams.modified=s.modified),null!=s.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=s.saveAndExit),null!=s.title&&null!=this.buttonContainer&&
+(z=document.createElement("span"),mxUtils.write(z,s.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),this.buttonContainer.appendChild(z)),s=null!=s.xmlpng?this.extractGraphModelFromPng(s.xmlpng):null!=s.xml&&"data:image/png;base64,"==s.xml.substring(0,22)?this.extractGraphModelFromPng(s.xml):s.xml;else{g.postMessage(JSON.stringify({error:"unknownMessage",
+data:JSON.stringify(s)}),"*");return}}s=u(s);c=!0;try{a(s,f)}catch(H){this.handleError(H)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var I=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=I();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=I();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,
+"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",
+b),this.addListener("pageViewChanged",b));("1"==urlParams.returnbounds||"json"==urlParams.proto)&&g.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}));var g=window.opener||window.parent,f="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";g.postMessage(f,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?
+"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" (Ctrl+S)");b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,
+mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding=
+"4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px";"atlas"==uiTheme&&(this.statusContainer.style.color="#707070",this.statusContainer.style.paddingLeft="26px",this.toolbar.staticElements.push(this.statusContainer),this.toolbar.container.appendChild(this.statusContainer))}};EditorUi.prototype.getSearch=
+function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"\x3d"+urlParams[d],c="\x26")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),
d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"\x26",null!=urlParams[d]&&(a+=d+"\x3d"+urlParams[d],b++))}return a};var e=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=e.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-
2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var f=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return f.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&
null!=this.source.minimumGraphSize){var d=this.source.getPagePadding(),e=Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2),f=Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2);return new mxPoint(Math.round(e-d.x),Math.round(f-d.y-5/a))}return new mxPoint(8/a,8/a)};var g=b.init;b.init=function(){g.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*
diff --git a/war/js/diagramly/EditorUi.js b/war/js/diagramly/EditorUi.js
index adbe2f0c..b57bc59f 100644
--- a/war/js/diagramly/EditorUi.js
+++ b/war/js/diagramly/EditorUi.js
@@ -2396,7 +2396,7 @@
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
- EditorUi.prototype.doSaveLocalFile = function(data, filename, mimeType, base64Encoded)
+ EditorUi.prototype.doSaveLocalFile = function(data, filename, mimeType, base64Encoded, format)
{
// Newer versions of IE
if (window.MSBlobBuilder && navigator.msSaveOrOpenBlob)
@@ -2433,40 +2433,48 @@
dlg.init();
document.execCommand('selectall', false, null);
}
- else if (!this.isOffline() && mxClient.IS_SF)
- {
- var req = this.createEchoRequest(data, filename, mimeType, base64Encoded);
-
- req.simulate(document, '_blank');
- }
else
{
var a = document.createElement('a');
- a.href = URL.createObjectURL((base64Encoded) ?
- this.base64ToBlob(data, mimeType) :
- new Blob([data], {type: mimeType}));
- a.download = filename;
- document.body.appendChild(a);
- // Workaround for link opens in same window in Safari
- if (mxClient.IS_SF)
+ if (typeof a.download !== 'undefined' || this.isOffline())
{
- a.setAttribute('target', '_blank');
- }
-
- try
- {
- a.click();
+ a.href = URL.createObjectURL((base64Encoded) ?
+ this.base64ToBlob(data, mimeType) :
+ new Blob([data], {type: mimeType}));
- window.setTimeout(function()
+ if (typeof a.download !== 'undefined')
{
- URL.revokeObjectURL(a.href);
- }, 0);
- a.parentNode.removeChild(a);
+ a.download = filename;
+ }
+ else
+ {
+ // Workaround for same window in Safari
+ a.setAttribute('target', '_blank');
+ }
+
+ document.body.appendChild(a);
+
+ try
+ {
+ a.click();
+
+ window.setTimeout(function()
+ {
+ URL.revokeObjectURL(a.href);
+ }, 0);
+ a.parentNode.removeChild(a);
+ }
+ catch (e)
+ {
+ // ignore
+ }
}
- catch (e)
+ else
{
- // ignore
+ var req = this.createEchoRequest(data, filename, mimeType, base64Encoded, format);
+
+ req.simulate(document, '_blank');
}
}
};
@@ -2529,7 +2537,7 @@
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
- EditorUi.prototype.saveLocalFile = function(data, filename, mimeType, base64Encoded)
+ EditorUi.prototype.saveLocalFile = function(data, filename, mimeType, base64Encoded, format)
{
var allowTab = !mxClient.IS_IOS || !navigator.standalone;
var backends = !this.isOfflineApp() && !this.isOffline() &&
@@ -2556,8 +2564,7 @@
else if (mimeType != null && mimeType.substring(0, 6) == 'image/' &&
(mimeType.substring(0, 9) != 'image/svg' || mxClient.IS_SVG))
{
- // IMG performance is better for large SVG in Chrome
- if (!base64Encoded || mxClient.IS_EDGE || document.documentMode == 11 || document.documentMode == 10)
+ if (mxClient.IS_EDGE || document.documentMode == 11 || document.documentMode == 10)
{
win.document.write('<html><img src="data:' +
mimeType + ((base64Encoded) ? ';base64,' +
@@ -2568,7 +2575,8 @@
else
{
// Enables page refresh and drag and drop of URL
- win.location.replace('data:' + mimeType + ';base64,' + data);
+ win.location.replace('data:' + mimeType + ((base64Encoded) ? ';base64,' +
+ data : ';charset=utf8,' + encodeURIComponent(data)));
}
}
else
@@ -2611,7 +2619,7 @@
{
if (this.isLocalFileSave())
{
- this.saveLocalFile(data, filename, mime, base64Encoded);
+ this.saveLocalFile(data, filename, mime, base64Encoded, format);
}
else
{
@@ -2783,7 +2791,13 @@
{
if (embedImages)
{
- this.convertImages(svgRoot, doSave);
+ // Caches images
+ if (this.thumbImageCache == null)
+ {
+ this.thumbImageCache = new Object();
+ }
+
+ this.convertImages(svgRoot, doSave, this.thumbImageCache);
}
else
{
@@ -3568,6 +3582,12 @@
var selectionEmpty = this.editor.graph.isSelectionEmpty();
ignoreSelection = (ignoreSelection != null) ? ignoreSelection : selectionEmpty;
+ // Caches images
+ if (this.thumbImageCache == null)
+ {
+ this.thumbImageCache = new Object();
+ }
+
try
{
this.exportToCanvas(mxUtils.bind(this, function(canvas)
@@ -3591,7 +3611,7 @@
this.handleError(e);
}
}
- }), null, null, null, mxUtils.bind(this, function(e)
+ }), null, this.thumbImageCache, null, mxUtils.bind(this, function(e)
{
this.spinner.stop();
this.handleError(e);
diff --git a/war/js/embed-static.min.js b/war/js/embed-static.min.js
index f3389b1f..a10e384c 100644
--- a/war/js/embed-static.min.js
+++ b/war/js/embed-static.min.js
@@ -184,7 +184,7 @@ f)+"\n"+u+"}":"{"+v.join(",")+"}";f=u;return r}}"function"!==typeof Date.prototy
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();var mxBasePath="https://www.draw.io/mxgraph/",mxLoadStylesheets=mxLoadResources=!1,mxLanguage="en";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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"6.0.2.12",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"6.0.2.13",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@@ -224,25 +224,25 @@ null;if("object"==typeof b)for(var d=mxUtils.indexOf(b,a);0<=d;)b.splice(d,1),c=
b&&c.push(d),d=d.nextSibling;return c},importNode:function(a,b,c){if(mxClient.IS_IE&&(null==document.documentMode||10>document.documentMode))switch(b.nodeType){case 1:var d=a.createElement(b.nodeName);if(b.attributes&&0<b.attributes.length){for(var e=0;e<b.attributes.length;e++)d.setAttribute(b.attributes[e].nodeName,b.getAttribute(b.attributes[e].nodeName));if(c&&b.childNodes&&0<b.childNodes.length)for(e=0;e<b.childNodes.length;e++)d.appendChild(mxUtils.importNode(a,b.childNodes[e],c))}return d;
case 3:case 4:case 8:return a.createTextNode(b.value)}else return a.importNode(b,c)},createXmlDocument:function(){var a=null;document.implementation&&document.implementation.createDocument?a=document.implementation.createDocument("","",null):window.ActiveXObject&&(a=new ActiveXObject("Microsoft.XMLDOM"));return a},parseXml:function(){return window.DOMParser?function(a){return(new DOMParser).parseFromString(a,"text/xml")}:function(a){var b=mxUtils.createXmlDocument();b.async=!1;b.validateOnParse=!1;
b.resolveExternals=!1;b.loadXML(a);return b}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:function(){}}(),getPrettyXml:function(a,b,c){var d=[];if(null!=a)if(b=b||" ",c=c||"",a.nodeType==mxConstants.NODETYPE_TEXT)d.push(a.value);else{d.push(c+"\x3c"+a.nodeName);var e=a.attributes;if(null!=e)for(var f=0;f<e.length;f++){var g=mxUtils.htmlEntities(e[f].value);d.push(" "+e[f].nodeName+
-'\x3d"'+g+'"')}e=a.firstChild;if(null!=e){for(d.push("\x3e\n");null!=e;)d.push(mxUtils.getPrettyXml(e,b,c+b)),e=e.nextSibling;d.push(c+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=(a||"").replace(/&/g,
-"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==b||b)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return c=c.replace(/\n/g,b||"\x26#xa;")},extractTextWithWhitespace:function(a){for(var b=
-!1,c=[],d=0;a[d];d++){var e=a[d];if(3===e.nodeType||4===e.nodeType){if(11==document.documentMode&&d==a.length-1&&0==e.nodeValue.length)break;c.push(e.nodeValue+(null==e.nextSibling||3!=e.nextSibling.nodeType?"\n":""));b=!0}else 8!==e.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==e.nodeName&&0==e.innerHTML.length||!b&&"BR"==e.nodeName||"DIV"==e.nodeName&&"\x3cbr\x3e"==e.innerHTML?c.push("\n"):c.push(mxUtils.extractTextWithWhitespace(e.childNodes)),b=!1)}return c.join("")},replaceTrailingNewlines:function(a,
-b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),
-getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("\x3c"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('\x3d"'),b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/\x3e"):(b.push("\x3e"),b.push(a.innerHTML),b.push("\x3c/"+a.nodeName+"\x3e"));return b.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):
-""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});
-return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=
-document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},fit:function(a){var b=parseInt(a.offsetLeft),c=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),e=d.x,d=d.y,f=document.body,g=document.documentElement,h=e+(f.clientWidth||g.clientWidth);b+c>h&&(a.style.left=Math.max(e,h-c)+"px");b=parseInt(a.offsetTop);
-c=parseInt(a.offsetHeight);f=d+Math.max(f.clientHeight||0,g.clientHeight);b+c>f&&(a.style.top=Math.max(d,f-c)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},h=0;h<a.length;h++)(function(a,c){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&
-b(e))},g)})(a[h],h);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==
-a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)if(e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e)))d[e]=!c&&"object"==typeof a[e]?mxUtils.clone(a[e]):a[e]}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(a[c]==b[c]||null!=a[c]&&!a[c].equals(b[c]))return!1;
-return!0},equalEntries:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){var c=0,d;for(d in b)c++;for(d in a)if(c--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(b[d]))&&a[d]!=b[d])return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=
-b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" \x3d [null]\n";else if("function"==typeof a[c])b+=c+" \x3d\x3e [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" \x3d\x3e ["+d+"]\n");else b+=c+" \x3d "+a[c]+"\n"}catch(e){b+=c+"\x3d"+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,
-h,k){h-=a;k-=b;if(0===c||0===d)return p;c=Math.abs(c);d=Math.abs(d);var l=-h/2,m=-k/2,n=Math.cos(e*Math.PI/180),p=Math.sin(e*Math.PI/180);e=n*l+p*m;var l=-1*p*l+n*m,m=e*e,r=l*l,q=c*c,u=d*d,v=m/q+r/u;1<v?(c*=Math.sqrt(v),d*=Math.sqrt(v),f=0):(v=1,f===g&&(v=-1),f=v*Math.sqrt((q*u-q*r-u*m)/(q*r+u*m)));m=f*c*l/d;r=-1*f*d*e/c;h=n*m-p*r+h/2;k=p*m+n*r+k/2;q=Math.atan2((l-r)/d,(e-m)/c)-Math.atan2(0,1);f=0<=q?q:2*Math.PI+q;q=Math.atan2((-l-r)/d,(-e-m)/c)-Math.atan2((l-r)/d,(e-m)/c);e=0<=q?q:2*Math.PI+q;0==
-g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;l=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);m=n*c;n*=d;c*=p;d*=p;for(var t=Math.cos(f),y=Math.sin(f),r=-l*(m*y+d*t),q=-l*(c*y-n*t),v=u=0,p=[],z=0;z<g;++z){f+=e;var t=Math.cos(f),y=Math.sin(f),u=m*t-d*y+h,v=c*t+n*y+k,w=-l*(m*y+d*t),t=-l*(c*y-n*t),y=6*z;p[y]=Number(r+a);p[y+1]=Number(q+b);p[y+2]=Number(u-w+a);p[y+3]=Number(v-t+b);p[y+4]=Number(u+a);p[y+5]=Number(v+b);r=u+w;q=v+t}return p},getBoundingBox:function(a,
-b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,
-g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<
-c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=
-mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},
+'\x3d"'+g+'"')}e=a.firstChild;if(null!=e){for(d.push("\x3e\n");null!=e;)d.push(mxUtils.getPrettyXml(e,b,c+b)),e=e.nextSibling;d.push(c+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=String(a||"");
+a=a.replace(/&/g,"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==b||b)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return c=c.replace(/\n/g,b||
+"\x26#xa;")},extractTextWithWhitespace:function(a){for(var b=!1,c=[],d=0;a[d];d++){var e=a[d];if(3===e.nodeType||4===e.nodeType){if(11==document.documentMode&&d==a.length-1&&0==e.nodeValue.length)break;c.push(e.nodeValue+(null==e.nextSibling||3!=e.nextSibling.nodeType?"\n":""));b=!0}else 8!==e.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==e.nodeName&&0==e.innerHTML.length||!b&&"BR"==e.nodeName||"DIV"==e.nodeName&&"\x3cbr\x3e"==e.innerHTML?c.push("\n"):c.push(mxUtils.extractTextWithWhitespace(e.childNodes)),
+b=!1)}return c.join("")},replaceTrailingNewlines:function(a,b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=
+a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("\x3c"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('\x3d"'),b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/\x3e"):(b.push("\x3e"),b.push(a.innerHTML),b.push("\x3c/"+a.nodeName+"\x3e"));return b.join("")}return""}:
+function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");
+mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,
+b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},fit:function(a){var b=parseInt(a.offsetLeft),c=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),e=d.x,d=d.y,f=document.body,g=document.documentElement,h=e+(f.clientWidth||g.clientWidth);
+b+c>h&&(a.style.left=Math.max(e,h-c)+"px");b=parseInt(a.offsetTop);c=parseInt(a.offsetHeight);f=d+Math.max(f.clientHeight||0,g.clientHeight);b+c>f&&(a.style.top=Math.max(d,f-c)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},h=0;h<a.length;h++)(function(a,c){mxUtils.get(a,
+function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&b(e))},g)})(a[h],h);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||
+0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)if(e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e)))d[e]=!c&&"object"==typeof a[e]?mxUtils.clone(a[e]):a[e]}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=
+a&&null!=b)for(var c=0;c<a.length;c++)if(a[c]==b[c]||null!=a[c]&&!a[c].equals(b[c]))return!1;return!0},equalEntries:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){var c=0,d;for(d in b)c++;for(d in a)if(c--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(b[d]))&&a[d]!=b[d])return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==
+typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" \x3d [null]\n";else if("function"==typeof a[c])b+=c+" \x3d\x3e [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" \x3d\x3e ["+d+"]\n");else b+=c+" \x3d "+a[c]+"\n"}catch(e){b+=c+"\x3d"+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*
+a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,h,k){h-=a;k-=b;if(0===c||0===d)return p;c=Math.abs(c);d=Math.abs(d);var l=-h/2,m=-k/2,n=Math.cos(e*Math.PI/180),p=Math.sin(e*Math.PI/180);e=n*l+p*m;var l=-1*p*l+n*m,m=e*e,r=l*l,q=c*c,u=d*d,v=m/q+r/u;1<v?(c*=Math.sqrt(v),d*=Math.sqrt(v),f=0):(v=1,f===g&&(v=-1),f=v*Math.sqrt((q*u-q*r-u*m)/(q*r+u*m)));m=f*c*l/d;r=-1*f*d*e/c;h=n*m-p*r+h/2;k=p*m+n*r+k/2;q=Math.atan2((l-r)/d,(e-m)/c)-Math.atan2(0,1);f=0<=q?q:2*Math.PI+q;q=Math.atan2((-l-r)/d,(-e-m)/c)-Math.atan2((l-
+r)/d,(e-m)/c);e=0<=q?q:2*Math.PI+q;0==g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;l=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);m=n*c;n*=d;c*=p;d*=p;for(var t=Math.cos(f),y=Math.sin(f),r=-l*(m*y+d*t),q=-l*(c*y-n*t),v=u=0,p=[],z=0;z<g;++z){f+=e;var t=Math.cos(f),y=Math.sin(f),u=m*t-d*y+h,v=c*t+n*y+k,w=-l*(m*y+d*t),t=-l*(c*y-n*t),y=6*z;p[y]=Number(r+a);p[y+1]=Number(q+b);p[y+2]=Number(u-w+a);p[y+3]=Number(v-t+b);p[y+4]=Number(u+a);p[y+5]=Number(v+b);r=
+u+w;q=v+t}return p},getBoundingBox:function(a,b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,
+b.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,
+0));a=0;45<c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;
+case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},
reversePortConstraints:function(a){var b=0,b=(a&mxConstants.DIRECTION_MASK_WEST)<<3,b=b|(a&mxConstants.DIRECTION_MASK_NORTH)<<1,b=b|(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|=(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var h=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,h.x,h.y,b,c);if(null==f||e<f)f=e,d=g-1;e=h}return d},rectangleIntersectsSegment:function(a,
b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var h=c.x;b.x>c.x&&(a=c.x,h=b.x);h>g&&(h=g);a<e&&(a=e);if(a>h)return!1;var e=b.y,g=c.y,k=c.x-b.x;1E-7<Math.abs(k)&&(c=(c.y-b.y)/k,b=b.y-c*b.x,e=c*a+b,g=c*h+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,h=a.y,k=b.x,l=b.y,e=e+k,f=f+l,c=c+
g,d=d+h;return(e<k||e>g)&&(f<l||f>h)&&(c<g||c>k)&&(d<h||d>l)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),h=a.getCenterY(),k=a.width,l=a.height,m=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<m&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(h=a.y+m/2,l=m):(g=a.x+m/2,k=m));k=Math.max(e,k*d);l=Math.max(e,l*d);0<f&&(k=Math.min(k,f),l=Math.min(l,f));d=new mxRectangle(g-k/2,h-l/2,k,l);g=mxUtils.toRadians(mxUtils.getValue(a.style,
@@ -1184,7 +1184,8 @@ mxGraph.prototype.cellsResized=function(a,b,c){c=null!=c?c:!1;if(null!=a&&null!=
mxGraph.prototype.cellResized=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e&&(e.x!=b.x||e.y!=b.y||e.width!=b.width||e.height!=b.height)){e=e.clone();!c&&e.relative?(c=e.offset,null!=c&&(c.x+=b.x-e.x,c.y+=b.y-e.y)):(e.x=b.x,e.y=b.y);e.width=b.width;e.height=b.height;!e.relative&&(this.model.isVertex(a)&&!this.isAllowNegativeCoordinates())&&(e.x=Math.max(0,e.x),e.y=Math.max(0,e.y));this.model.beginUpdate();try{d&&this.resizeChildCells(a,e),this.model.setGeometry(a,e),this.constrainChildCells(a)}finally{this.model.endUpdate()}}};
mxGraph.prototype.resizeChildCells=function(a,b){for(var c=this.model.getGeometry(a),d=b.width/c.width,c=b.height/c.height,e=this.model.getChildCount(a),f=0;f<e;f++)this.scaleCell(this.model.getChildAt(a,f),d,c,!0)};mxGraph.prototype.constrainChildCells=function(a){for(var b=this.model.getChildCount(a),c=0;c<b;c++)this.constrainChild(this.model.getChildAt(a,c))};
mxGraph.prototype.scaleCell=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e){var f=this.view.getState(a),f=null!=f?f.style:this.getCellStyle(a),e=e.clone(),g=e.x,h=e.y,k=e.width,l=e.height;e.scale(b,c,"fixed"==f[mxConstants.STYLE_ASPECT]);"1"==f[mxConstants.STYLE_RESIZE_WIDTH]?e.width=k*b:"0"==f[mxConstants.STYLE_RESIZE_WIDTH]&&(e.width=k);"1"==f[mxConstants.STYLE_RESIZE_HEIGHT]?e.height=l*c:"0"==f[mxConstants.STYLE_RESIZE_HEIGHT]&&(e.height=l);this.isCellMovable(a)||(e.x=g,e.y=h);this.isCellResizable(a)||
-(e.width=k,e.height=l);this.model.isVertex(a)?this.cellResized(a,e,!0,d):this.model.setGeometry(a,e)}};mxGraph.prototype.extendParent=function(a){if(null!=a){var b=this.model.getParent(a),c=this.getCellGeometry(b);if(null!=b&&(null!=c&&!this.isCellCollapsed(b))&&(a=this.getCellGeometry(a),null!=a&&!a.relative&&(c.width<a.x+a.width||c.height<a.y+a.height)))c=c.clone(),c.width=Math.max(c.width,a.x+a.width),c.height=Math.max(c.height,a.y+a.height),this.cellsResized([b],[c],!1)}};
+(e.width=k,e.height=l);this.model.isVertex(a)?this.cellResized(a,e,!0,d):this.model.setGeometry(a,e)}};
+mxGraph.prototype.extendParent=function(a){if(null!==a){var b=this.model.getParent(a),c=this.getCellGeometry(b);b&&(c&&!this.isCellCollapsed(b))&&(a=this.getCellGeometry(a),null!==a&&!a.relative&&(c=c.clone(),c.width<a.x+a.width?c.width=a.x+a.width:0>a.x&&(c.width=0>a.x+a.width?-a.x+c.width:0===c.width?a.width:-a.x+c.width),c.height<a.y+a.height?c.height=a.y+a.height:0>a.y&&(c.height=0>a.y+a.height?-a.y+c.height:0===c.height?a.height:-a.y+c.height),this.cellsResized([b],[c],!1)))}};
mxGraph.prototype.importCells=function(a,b,c,d,e,f){return this.moveCells(a,b,c,!0,d,e,f)};
mxGraph.prototype.moveCells=function(a,b,c,d,e,f,g){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:!1;if(null!=a&&(0!=b||0!=c||d||null!=e)){a=this.model.getTopmostCells(a);this.model.beginUpdate();try{for(var h=new mxDictionary,k=0;k<a.length;k++)h.put(a[k],!0);for(var l=mxUtils.bind(this,function(a){for(;null!=a;){if(h.get(a))return!0;a=this.model.getParent(a)}return!1}),m=[],k=0;k<a.length;k++){var n=this.getCellGeometry(a[k]),p=this.model.getParent(a[k]);(null==n||!n.relative||!this.model.isEdge(p)||
!l(this.model.getTerminal(p,!0))&&!l(this.model.getTerminal(p,!1)))&&m.push(a[k])}a=m;d&&(a=this.cloneCells(a,this.isCloneInvalidEdges(),g),null==e&&(e=this.getDefaultParent()));var r=this.isAllowNegativeCoordinates();null!=e&&this.setAllowNegativeCoordinates(!0);this.cellsMoved(a,b,c,!d&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==e,this.isExtendParentsOnMove()&&null==e);this.setAllowNegativeCoordinates(r);if(null!=e){var q=this.model.getChildCount(e);this.cellsAdded(a,e,q,null,
@@ -1441,8 +1442,8 @@ g=this.getAlignmentTolerance();if(0<g){var h=this.graph.view.getState(b);if(null
mxConnectionHandler.prototype.createEdge=function(a,b,c,d){var e=null;null!=this.factoryMethod&&(e=this.factoryMethod(b,c,d));null==e&&(e=new mxCell(a||""),e.setEdge(!0),e.setStyle(d),a=new mxGeometry,a.relative=!0,e.setGeometry(a));return e};
mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.marker&&(this.marker.destroy(),this.marker=null);null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null);null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),
this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null)};
-function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,c){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)&&this.reset()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);mxConstraintHandler.prototype.graph=null;
-mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
+function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,c){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)?this.reset():this.redraw()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);
+mxConstraintHandler.prototype.graph=null;mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null);this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null};mxConstraintHandler.prototype.getTolerance=function(a){return this.graph.getTolerance()};
mxConstraintHandler.prototype.getImageForConstraint=function(a,b,c){return this.pointImage};mxConstraintHandler.prototype.isEventIgnored=function(a,b){return!1};mxConstraintHandler.prototype.isStateIgnored=function(a,b){return!1};mxConstraintHandler.prototype.destroyIcons=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusPoints=this.focusIcons=null}};
mxConstraintHandler.prototype.destroyFocusHighlight=function(){null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)};mxConstraintHandler.prototype.isKeepFocusEvent=function(a){return mxEvent.isShiftDown(a.getEvent())};
@@ -1451,6 +1452,8 @@ mxConstraintHandler.prototype.update=function(a,b,c,d){if(this.isEnabled()&&!thi
d));if(!this.isKeepFocusEvent(a)&&(null==this.currentFocusArea||null==this.currentFocus||null!=h||!this.graph.getModel().isVertex(this.currentFocus.cell)||!mxUtils.intersects(this.currentFocusArea,e))&&h!=this.currentFocus)this.currentFocus=this.currentFocusArea=null,this.setFocus(a,h,b);a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==h||this.currentFocus==h))for(var g=e.getCenterX(),k=e.getCenterY(),l=0;l<this.focusIcons.length;l++){var m=
g-this.focusIcons[l].bounds.getCenterX(),n=k-this.focusIcons[l].bounds.getCenterY(),m=m*m+n*n;if((this.intersects(this.focusIcons[l],e,b,c)||null!=d&&this.intersects(this.focusIcons[l],f,b,c))&&(null==a||m<a)){this.currentConstraint=this.constraints[l];this.currentPoint=this.focusPoints[l];a=m;m=this.focusIcons[l].bounds.clone();m.grow(mxConstants.HIGHLIGHT_SIZE);mxClient.IS_IE&&(m.grow(1),m.width-=1,m.height-=1);if(null==this.focusHighlight){n=this.createHighlightShape();n.dialect=this.graph.dialect==
mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;n.pointerEvents=!1;n.init(this.graph.getView().getOverlayPane());this.focusHighlight=n;var p=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:h});mxEvent.redirectMouseEvents(n.node,this.graph,p)}this.focusHighlight.bounds=m;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
+mxConstraintHandler.prototype.redraw=function(){if(null!=this.currentFocus&&null!=this.constraints&&null!=this.focusIcons){var a=this.graph.view.getState(this.currentFocus.cell);this.currentFocus=a;this.currentFocusArea=new mxRectangle(a.x,a.y,a.width,a.height);for(var b=0;b<this.constraints.length;b++){var c=this.graph.getConnectionPoint(a,this.constraints[b]),d=this.getImageForConstraint(a,this.constraints[b],c),d=new mxRectangle(Math.round(c.x-d.width/2),Math.round(c.y-d.height/2),d.width,d.height);
+this.focusIcons[b].bounds=d;this.focusIcons[b].redraw();this.currentFocusArea.add(this.focusIcons[b].bounds);this.focusPoints[b]=c}}};
mxConstraintHandler.prototype.setFocus=function(a,b,c){this.constraints=null!=b&&!this.isStateIgnored(b,c)&&this.graph.isCellConnectable(b.cell)?this.isEnabled()?this.graph.getAllConnectionConstraints(b,c)||[]:[]:null;if(null!=this.constraints){this.currentFocus=b;this.currentFocusArea=new mxRectangle(b.x,b.y,b.width,b.height);if(null!=this.focusIcons){for(c=0;c<this.focusIcons.length;c++)this.focusIcons[c].destroy();this.focusPoints=this.focusIcons=null}this.focusPoints=[];this.focusIcons=[];for(c=
0;c<this.constraints.length;c++){var d=this.graph.getConnectionPoint(b,this.constraints[c]),e=this.getImageForConstraint(b,this.constraints[c],d),f=e.src,e=new mxRectangle(Math.round(d.x-e.width/2),Math.round(d.y-e.height/2),e.width,e.height),f=new mxImageShape(e,f);f.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG;f.preserveImageAspect=!1;f.init(this.graph.getView().getDecoratorPane());(mxClient.IS_QUIRKS||8==document.documentMode)&&mxEvent.addListener(f.node,
"dragstart",function(a){mxEvent.consume(a);return!1});null!=f.node.previousSibling&&f.node.parentNode.insertBefore(f.node,f.node.parentNode.firstChild);e=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:b});f.redraw();mxEvent.redirectMouseEvents(f.node,this.graph,e);this.currentFocusArea.add(f.bounds);this.focusIcons.push(f);this.focusPoints.push(d)}this.currentFocusArea.grow(this.getTolerance(a))}else this.destroyIcons(),this.destroyFocusHighlight()};
@@ -1655,7 +1658,7 @@ a.length-1;0<=f;f--)if(0==f||a[f]!=e[f-1]){a[f].setAttribute("width",b);a[f].set
"_blank");break}}};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);
if(null!=g){var h=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,h):h,e=null!=e?Math.min(e,h):h;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;h=this.view.scale;e=e/h-(a?g.x:g.y);d=d/h-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var k=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var l=this.getCellGeometry(c[f].cell),d=d+k;null!=l&&(l=l.clone(),a?l.x=Math.round(d-l.width/2):l.y=Math.round(d-l.height/2),this.getModel().setGeometry(c[f].cell,
l))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var b=this.cloneCells(a),c=0;c<b.length;c++){var d=this.view.getState(a[c]);if(null!=d){var e=this.getCellGeometry(b[c]);null!=e&&e.relative&&(e.relative=!1,e.x=d.x/d.view.scale-d.view.translate.x,e.y=d.y/d.view.scale-d.view.translate.y)}}for(var d=new mxCodec,e=new mxGraphModel,f=e.getChildAt(e.getRoot(),
-0),c=0;c<a.length;c++)e.add(f,b[c]);return d.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:1;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;d=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var h=this.createSvgImageExport(),
+0),c=0;c<a.length;c++)e.add(f,b[c]);return d.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;d=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var h=this.createSvgImageExport(),
k=h.drawCellState;h.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&k.apply(this,arguments)};var l=this.view.scale,m=mxUtils.createXmlDocument(),n=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=a&&(null!=n.style?n.style.backgroundColor=a:n.setAttribute("style","background-color:"+a));null==m.createElementNS?(n.setAttribute("xmlns",mxConstants.NS_SVG),n.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):n.setAttributeNS("http://www.w3.org/2000/xmlns/",
"xmlns:xlink",mxConstants.NS_XLINK);a=b/l;n.setAttribute("width",Math.ceil(d.width*a)+2*c+"px");n.setAttribute("height",Math.ceil(d.height*a)+2*c+"px");n.setAttribute("version","1.1");var p=n;e&&(p=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),p.setAttribute("transform","translate(0.5,0.5)"),n.appendChild(p));m.appendChild(n);m=new mxSvgCanvas2D(p);m.foOffset=e?-0.5:0;m.textOffset=e?-0.5:0;m.translate(Math.floor((c/b-d.x)/l),Math.floor((c/b-d.y)/l));var q=
m.createAlternateContent;m.createAlternateContent=function(a,b,c,d,e,f,g,h,k,l,m,n,p){var s=this.state;if(null!=this.foAltText&&(0==d||0!=s.fontSize&&f.length<5*d/s.fontSize)){var r=this.createElement("text");r.setAttribute("x",Math.round(d/2));r.setAttribute("y",Math.round((e+s.fontSize)/2));r.setAttribute("fill",s.fontColor||"black");r.setAttribute("text-anchor","middle");r.setAttribute("font-size",Math.round(s.fontSize)+"px");r.setAttribute("font-family",s.fontFamily);(s.fontStyle&mxConstants.FONT_BOLD)==
diff --git a/war/js/mxgraph/Dialogs.js b/war/js/mxgraph/Dialogs.js
index 43bc2a1d..c40794db 100644
--- a/war/js/mxgraph/Dialogs.js
+++ b/war/js/mxgraph/Dialogs.js
@@ -1704,7 +1704,7 @@ var ExportDialog = function(editorUi)
var table = document.createElement('table');
var tbody = document.createElement('tbody');
- table.setAttribute('cellpadding', '2');
+ table.setAttribute('cellpadding', (mxClient.IS_SF) ? '0' : '2');
row = document.createElement('tr');
diff --git a/war/js/mxgraph/Format.js b/war/js/mxgraph/Format.js
index 9966f86b..0885d489 100644
--- a/war/js/mxgraph/Format.js
+++ b/war/js/mxgraph/Format.js
@@ -35,10 +35,7 @@ Format.prototype.init = function()
graph.getSelectionModel().addListener(mxEvent.CHANGE, this.update);
graph.addListener(mxEvent.EDITING_STARTED, this.update);
graph.addListener(mxEvent.EDITING_STOPPED, this.update);
- graph.getModel().addListener(mxEvent.CHANGE, mxUtils.bind(this, function()
- {
- this.clearSelectionState();
- }));
+ graph.getModel().addListener(mxEvent.CHANGE, this.update);
graph.addListener(mxEvent.ROOT, mxUtils.bind(this, function()
{
this.refresh();
diff --git a/war/js/mxgraph/Graph.js b/war/js/mxgraph/Graph.js
index 94dde920..804a0909 100644
--- a/war/js/mxgraph/Graph.js
+++ b/war/js/mxgraph/Graph.js
@@ -4927,7 +4927,7 @@ if (typeof mxVertexHandler != 'undefined')
Graph.prototype.getSvg = function(background, scale, border, nocrop, crisp, ignoreSelection, showText)
{
scale = (scale != null) ? scale : 1;
- border = (border != null) ? border : 1;
+ border = (border != null) ? border : 0;
crisp = (crisp != null) ? crisp : true;
ignoreSelection = (ignoreSelection != null) ? ignoreSelection : true;
showText = (showText != null) ? showText : true;
diff --git a/war/js/reader.min.js b/war/js/reader.min.js
index 7a02002a..be356e79 100644
--- a/war/js/reader.min.js
+++ b/war/js/reader.min.js
@@ -184,7 +184,7 @@ f)+"\n"+u+"}":"{"+v.join(",")+"}";f=u;return r}}"function"!==typeof Date.prototy
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();var mxBasePath="https://www.draw.io/mxgraph/",mxLoadStylesheets=mxLoadResources=!1,mxLanguage="en";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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"6.0.2.12",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"6.0.2.13",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@@ -224,25 +224,25 @@ null;if("object"==typeof b)for(var d=mxUtils.indexOf(b,a);0<=d;)b.splice(d,1),c=
b&&c.push(d),d=d.nextSibling;return c},importNode:function(a,b,c){if(mxClient.IS_IE&&(null==document.documentMode||10>document.documentMode))switch(b.nodeType){case 1:var d=a.createElement(b.nodeName);if(b.attributes&&0<b.attributes.length){for(var e=0;e<b.attributes.length;e++)d.setAttribute(b.attributes[e].nodeName,b.getAttribute(b.attributes[e].nodeName));if(c&&b.childNodes&&0<b.childNodes.length)for(e=0;e<b.childNodes.length;e++)d.appendChild(mxUtils.importNode(a,b.childNodes[e],c))}return d;
case 3:case 4:case 8:return a.createTextNode(b.value)}else return a.importNode(b,c)},createXmlDocument:function(){var a=null;document.implementation&&document.implementation.createDocument?a=document.implementation.createDocument("","",null):window.ActiveXObject&&(a=new ActiveXObject("Microsoft.XMLDOM"));return a},parseXml:function(){return window.DOMParser?function(a){return(new DOMParser).parseFromString(a,"text/xml")}:function(a){var b=mxUtils.createXmlDocument();b.async=!1;b.validateOnParse=!1;
b.resolveExternals=!1;b.loadXML(a);return b}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:function(){}}(),getPrettyXml:function(a,b,c){var d=[];if(null!=a)if(b=b||" ",c=c||"",a.nodeType==mxConstants.NODETYPE_TEXT)d.push(a.value);else{d.push(c+"\x3c"+a.nodeName);var e=a.attributes;if(null!=e)for(var f=0;f<e.length;f++){var g=mxUtils.htmlEntities(e[f].value);d.push(" "+e[f].nodeName+
-'\x3d"'+g+'"')}e=a.firstChild;if(null!=e){for(d.push("\x3e\n");null!=e;)d.push(mxUtils.getPrettyXml(e,b,c+b)),e=e.nextSibling;d.push(c+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=(a||"").replace(/&/g,
-"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==b||b)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return c=c.replace(/\n/g,b||"\x26#xa;")},extractTextWithWhitespace:function(a){for(var b=
-!1,c=[],d=0;a[d];d++){var e=a[d];if(3===e.nodeType||4===e.nodeType){if(11==document.documentMode&&d==a.length-1&&0==e.nodeValue.length)break;c.push(e.nodeValue+(null==e.nextSibling||3!=e.nextSibling.nodeType?"\n":""));b=!0}else 8!==e.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==e.nodeName&&0==e.innerHTML.length||!b&&"BR"==e.nodeName||"DIV"==e.nodeName&&"\x3cbr\x3e"==e.innerHTML?c.push("\n"):c.push(mxUtils.extractTextWithWhitespace(e.childNodes)),b=!1)}return c.join("")},replaceTrailingNewlines:function(a,
-b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),
-getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("\x3c"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('\x3d"'),b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/\x3e"):(b.push("\x3e"),b.push(a.innerHTML),b.push("\x3c/"+a.nodeName+"\x3e"));return b.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):
-""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});
-return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=
-document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},fit:function(a){var b=parseInt(a.offsetLeft),c=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),e=d.x,d=d.y,f=document.body,g=document.documentElement,h=e+(f.clientWidth||g.clientWidth);b+c>h&&(a.style.left=Math.max(e,h-c)+"px");b=parseInt(a.offsetTop);
-c=parseInt(a.offsetHeight);f=d+Math.max(f.clientHeight||0,g.clientHeight);b+c>f&&(a.style.top=Math.max(d,f-c)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},h=0;h<a.length;h++)(function(a,c){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&
-b(e))},g)})(a[h],h);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==
-a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)if(e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e)))d[e]=!c&&"object"==typeof a[e]?mxUtils.clone(a[e]):a[e]}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(a[c]==b[c]||null!=a[c]&&!a[c].equals(b[c]))return!1;
-return!0},equalEntries:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){var c=0,d;for(d in b)c++;for(d in a)if(c--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(b[d]))&&a[d]!=b[d])return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=
-b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" \x3d [null]\n";else if("function"==typeof a[c])b+=c+" \x3d\x3e [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" \x3d\x3e ["+d+"]\n");else b+=c+" \x3d "+a[c]+"\n"}catch(e){b+=c+"\x3d"+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,
-h,k){h-=a;k-=b;if(0===c||0===d)return p;c=Math.abs(c);d=Math.abs(d);var l=-h/2,m=-k/2,n=Math.cos(e*Math.PI/180),p=Math.sin(e*Math.PI/180);e=n*l+p*m;var l=-1*p*l+n*m,m=e*e,r=l*l,q=c*c,u=d*d,v=m/q+r/u;1<v?(c*=Math.sqrt(v),d*=Math.sqrt(v),f=0):(v=1,f===g&&(v=-1),f=v*Math.sqrt((q*u-q*r-u*m)/(q*r+u*m)));m=f*c*l/d;r=-1*f*d*e/c;h=n*m-p*r+h/2;k=p*m+n*r+k/2;q=Math.atan2((l-r)/d,(e-m)/c)-Math.atan2(0,1);f=0<=q?q:2*Math.PI+q;q=Math.atan2((-l-r)/d,(-e-m)/c)-Math.atan2((l-r)/d,(e-m)/c);e=0<=q?q:2*Math.PI+q;0==
-g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;l=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);m=n*c;n*=d;c*=p;d*=p;for(var t=Math.cos(f),y=Math.sin(f),r=-l*(m*y+d*t),q=-l*(c*y-n*t),v=u=0,p=[],z=0;z<g;++z){f+=e;var t=Math.cos(f),y=Math.sin(f),u=m*t-d*y+h,v=c*t+n*y+k,w=-l*(m*y+d*t),t=-l*(c*y-n*t),y=6*z;p[y]=Number(r+a);p[y+1]=Number(q+b);p[y+2]=Number(u-w+a);p[y+3]=Number(v-t+b);p[y+4]=Number(u+a);p[y+5]=Number(v+b);r=u+w;q=v+t}return p},getBoundingBox:function(a,
-b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,
-g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<
-c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=
-mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},
+'\x3d"'+g+'"')}e=a.firstChild;if(null!=e){for(d.push("\x3e\n");null!=e;)d.push(mxUtils.getPrettyXml(e,b,c+b)),e=e.nextSibling;d.push(c+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=String(a||"");
+a=a.replace(/&/g,"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==b||b)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return c=c.replace(/\n/g,b||
+"\x26#xa;")},extractTextWithWhitespace:function(a){for(var b=!1,c=[],d=0;a[d];d++){var e=a[d];if(3===e.nodeType||4===e.nodeType){if(11==document.documentMode&&d==a.length-1&&0==e.nodeValue.length)break;c.push(e.nodeValue+(null==e.nextSibling||3!=e.nextSibling.nodeType?"\n":""));b=!0}else 8!==e.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==e.nodeName&&0==e.innerHTML.length||!b&&"BR"==e.nodeName||"DIV"==e.nodeName&&"\x3cbr\x3e"==e.innerHTML?c.push("\n"):c.push(mxUtils.extractTextWithWhitespace(e.childNodes)),
+b=!1)}return c.join("")},replaceTrailingNewlines:function(a,b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=
+a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("\x3c"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('\x3d"'),b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/\x3e"):(b.push("\x3e"),b.push(a.innerHTML),b.push("\x3c/"+a.nodeName+"\x3e"));return b.join("")}return""}:
+function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");
+mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,
+b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},fit:function(a){var b=parseInt(a.offsetLeft),c=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),e=d.x,d=d.y,f=document.body,g=document.documentElement,h=e+(f.clientWidth||g.clientWidth);
+b+c>h&&(a.style.left=Math.max(e,h-c)+"px");b=parseInt(a.offsetTop);c=parseInt(a.offsetHeight);f=d+Math.max(f.clientHeight||0,g.clientHeight);b+c>f&&(a.style.top=Math.max(d,f-c)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},h=0;h<a.length;h++)(function(a,c){mxUtils.get(a,
+function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&b(e))},g)})(a[h],h);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||
+0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)if(e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e)))d[e]=!c&&"object"==typeof a[e]?mxUtils.clone(a[e]):a[e]}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=
+a&&null!=b)for(var c=0;c<a.length;c++)if(a[c]==b[c]||null!=a[c]&&!a[c].equals(b[c]))return!1;return!0},equalEntries:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){var c=0,d;for(d in b)c++;for(d in a)if(c--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(b[d]))&&a[d]!=b[d])return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==
+typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" \x3d [null]\n";else if("function"==typeof a[c])b+=c+" \x3d\x3e [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" \x3d\x3e ["+d+"]\n");else b+=c+" \x3d "+a[c]+"\n"}catch(e){b+=c+"\x3d"+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*
+a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,h,k){h-=a;k-=b;if(0===c||0===d)return p;c=Math.abs(c);d=Math.abs(d);var l=-h/2,m=-k/2,n=Math.cos(e*Math.PI/180),p=Math.sin(e*Math.PI/180);e=n*l+p*m;var l=-1*p*l+n*m,m=e*e,r=l*l,q=c*c,u=d*d,v=m/q+r/u;1<v?(c*=Math.sqrt(v),d*=Math.sqrt(v),f=0):(v=1,f===g&&(v=-1),f=v*Math.sqrt((q*u-q*r-u*m)/(q*r+u*m)));m=f*c*l/d;r=-1*f*d*e/c;h=n*m-p*r+h/2;k=p*m+n*r+k/2;q=Math.atan2((l-r)/d,(e-m)/c)-Math.atan2(0,1);f=0<=q?q:2*Math.PI+q;q=Math.atan2((-l-r)/d,(-e-m)/c)-Math.atan2((l-
+r)/d,(e-m)/c);e=0<=q?q:2*Math.PI+q;0==g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;l=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);m=n*c;n*=d;c*=p;d*=p;for(var t=Math.cos(f),y=Math.sin(f),r=-l*(m*y+d*t),q=-l*(c*y-n*t),v=u=0,p=[],z=0;z<g;++z){f+=e;var t=Math.cos(f),y=Math.sin(f),u=m*t-d*y+h,v=c*t+n*y+k,w=-l*(m*y+d*t),t=-l*(c*y-n*t),y=6*z;p[y]=Number(r+a);p[y+1]=Number(q+b);p[y+2]=Number(u-w+a);p[y+3]=Number(v-t+b);p[y+4]=Number(u+a);p[y+5]=Number(v+b);r=
+u+w;q=v+t}return p},getBoundingBox:function(a,b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,
+b.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,
+0));a=0;45<c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;
+case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},
reversePortConstraints:function(a){var b=0,b=(a&mxConstants.DIRECTION_MASK_WEST)<<3,b=b|(a&mxConstants.DIRECTION_MASK_NORTH)<<1,b=b|(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|=(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var h=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,h.x,h.y,b,c);if(null==f||e<f)f=e,d=g-1;e=h}return d},rectangleIntersectsSegment:function(a,
b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var h=c.x;b.x>c.x&&(a=c.x,h=b.x);h>g&&(h=g);a<e&&(a=e);if(a>h)return!1;var e=b.y,g=c.y,k=c.x-b.x;1E-7<Math.abs(k)&&(c=(c.y-b.y)/k,b=b.y-c*b.x,e=c*a+b,g=c*h+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,h=a.y,k=b.x,l=b.y,e=e+k,f=f+l,c=c+
g,d=d+h;return(e<k||e>g)&&(f<l||f>h)&&(c<g||c>k)&&(d<h||d>l)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),h=a.getCenterY(),k=a.width,l=a.height,m=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<m&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(h=a.y+m/2,l=m):(g=a.x+m/2,k=m));k=Math.max(e,k*d);l=Math.max(e,l*d);0<f&&(k=Math.min(k,f),l=Math.min(l,f));d=new mxRectangle(g-k/2,h-l/2,k,l);g=mxUtils.toRadians(mxUtils.getValue(a.style,
@@ -1184,7 +1184,8 @@ mxGraph.prototype.cellsResized=function(a,b,c){c=null!=c?c:!1;if(null!=a&&null!=
mxGraph.prototype.cellResized=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e&&(e.x!=b.x||e.y!=b.y||e.width!=b.width||e.height!=b.height)){e=e.clone();!c&&e.relative?(c=e.offset,null!=c&&(c.x+=b.x-e.x,c.y+=b.y-e.y)):(e.x=b.x,e.y=b.y);e.width=b.width;e.height=b.height;!e.relative&&(this.model.isVertex(a)&&!this.isAllowNegativeCoordinates())&&(e.x=Math.max(0,e.x),e.y=Math.max(0,e.y));this.model.beginUpdate();try{d&&this.resizeChildCells(a,e),this.model.setGeometry(a,e),this.constrainChildCells(a)}finally{this.model.endUpdate()}}};
mxGraph.prototype.resizeChildCells=function(a,b){for(var c=this.model.getGeometry(a),d=b.width/c.width,c=b.height/c.height,e=this.model.getChildCount(a),f=0;f<e;f++)this.scaleCell(this.model.getChildAt(a,f),d,c,!0)};mxGraph.prototype.constrainChildCells=function(a){for(var b=this.model.getChildCount(a),c=0;c<b;c++)this.constrainChild(this.model.getChildAt(a,c))};
mxGraph.prototype.scaleCell=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e){var f=this.view.getState(a),f=null!=f?f.style:this.getCellStyle(a),e=e.clone(),g=e.x,h=e.y,k=e.width,l=e.height;e.scale(b,c,"fixed"==f[mxConstants.STYLE_ASPECT]);"1"==f[mxConstants.STYLE_RESIZE_WIDTH]?e.width=k*b:"0"==f[mxConstants.STYLE_RESIZE_WIDTH]&&(e.width=k);"1"==f[mxConstants.STYLE_RESIZE_HEIGHT]?e.height=l*c:"0"==f[mxConstants.STYLE_RESIZE_HEIGHT]&&(e.height=l);this.isCellMovable(a)||(e.x=g,e.y=h);this.isCellResizable(a)||
-(e.width=k,e.height=l);this.model.isVertex(a)?this.cellResized(a,e,!0,d):this.model.setGeometry(a,e)}};mxGraph.prototype.extendParent=function(a){if(null!=a){var b=this.model.getParent(a),c=this.getCellGeometry(b);if(null!=b&&(null!=c&&!this.isCellCollapsed(b))&&(a=this.getCellGeometry(a),null!=a&&!a.relative&&(c.width<a.x+a.width||c.height<a.y+a.height)))c=c.clone(),c.width=Math.max(c.width,a.x+a.width),c.height=Math.max(c.height,a.y+a.height),this.cellsResized([b],[c],!1)}};
+(e.width=k,e.height=l);this.model.isVertex(a)?this.cellResized(a,e,!0,d):this.model.setGeometry(a,e)}};
+mxGraph.prototype.extendParent=function(a){if(null!==a){var b=this.model.getParent(a),c=this.getCellGeometry(b);b&&(c&&!this.isCellCollapsed(b))&&(a=this.getCellGeometry(a),null!==a&&!a.relative&&(c=c.clone(),c.width<a.x+a.width?c.width=a.x+a.width:0>a.x&&(c.width=0>a.x+a.width?-a.x+c.width:0===c.width?a.width:-a.x+c.width),c.height<a.y+a.height?c.height=a.y+a.height:0>a.y&&(c.height=0>a.y+a.height?-a.y+c.height:0===c.height?a.height:-a.y+c.height),this.cellsResized([b],[c],!1)))}};
mxGraph.prototype.importCells=function(a,b,c,d,e,f){return this.moveCells(a,b,c,!0,d,e,f)};
mxGraph.prototype.moveCells=function(a,b,c,d,e,f,g){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:!1;if(null!=a&&(0!=b||0!=c||d||null!=e)){a=this.model.getTopmostCells(a);this.model.beginUpdate();try{for(var h=new mxDictionary,k=0;k<a.length;k++)h.put(a[k],!0);for(var l=mxUtils.bind(this,function(a){for(;null!=a;){if(h.get(a))return!0;a=this.model.getParent(a)}return!1}),m=[],k=0;k<a.length;k++){var n=this.getCellGeometry(a[k]),p=this.model.getParent(a[k]);(null==n||!n.relative||!this.model.isEdge(p)||
!l(this.model.getTerminal(p,!0))&&!l(this.model.getTerminal(p,!1)))&&m.push(a[k])}a=m;d&&(a=this.cloneCells(a,this.isCloneInvalidEdges(),g),null==e&&(e=this.getDefaultParent()));var r=this.isAllowNegativeCoordinates();null!=e&&this.setAllowNegativeCoordinates(!0);this.cellsMoved(a,b,c,!d&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==e,this.isExtendParentsOnMove()&&null==e);this.setAllowNegativeCoordinates(r);if(null!=e){var q=this.model.getChildCount(e);this.cellsAdded(a,e,q,null,
@@ -1441,8 +1442,8 @@ g=this.getAlignmentTolerance();if(0<g){var h=this.graph.view.getState(b);if(null
mxConnectionHandler.prototype.createEdge=function(a,b,c,d){var e=null;null!=this.factoryMethod&&(e=this.factoryMethod(b,c,d));null==e&&(e=new mxCell(a||""),e.setEdge(!0),e.setStyle(d),a=new mxGeometry,a.relative=!0,e.setGeometry(a));return e};
mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.marker&&(this.marker.destroy(),this.marker=null);null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null);null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),
this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null)};
-function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,c){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)&&this.reset()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);mxConstraintHandler.prototype.graph=null;
-mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
+function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,c){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)?this.reset():this.redraw()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);
+mxConstraintHandler.prototype.graph=null;mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null);this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null};mxConstraintHandler.prototype.getTolerance=function(a){return this.graph.getTolerance()};
mxConstraintHandler.prototype.getImageForConstraint=function(a,b,c){return this.pointImage};mxConstraintHandler.prototype.isEventIgnored=function(a,b){return!1};mxConstraintHandler.prototype.isStateIgnored=function(a,b){return!1};mxConstraintHandler.prototype.destroyIcons=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusPoints=this.focusIcons=null}};
mxConstraintHandler.prototype.destroyFocusHighlight=function(){null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)};mxConstraintHandler.prototype.isKeepFocusEvent=function(a){return mxEvent.isShiftDown(a.getEvent())};
@@ -1451,6 +1452,8 @@ mxConstraintHandler.prototype.update=function(a,b,c,d){if(this.isEnabled()&&!thi
d));if(!this.isKeepFocusEvent(a)&&(null==this.currentFocusArea||null==this.currentFocus||null!=h||!this.graph.getModel().isVertex(this.currentFocus.cell)||!mxUtils.intersects(this.currentFocusArea,e))&&h!=this.currentFocus)this.currentFocus=this.currentFocusArea=null,this.setFocus(a,h,b);a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==h||this.currentFocus==h))for(var g=e.getCenterX(),k=e.getCenterY(),l=0;l<this.focusIcons.length;l++){var m=
g-this.focusIcons[l].bounds.getCenterX(),n=k-this.focusIcons[l].bounds.getCenterY(),m=m*m+n*n;if((this.intersects(this.focusIcons[l],e,b,c)||null!=d&&this.intersects(this.focusIcons[l],f,b,c))&&(null==a||m<a)){this.currentConstraint=this.constraints[l];this.currentPoint=this.focusPoints[l];a=m;m=this.focusIcons[l].bounds.clone();m.grow(mxConstants.HIGHLIGHT_SIZE);mxClient.IS_IE&&(m.grow(1),m.width-=1,m.height-=1);if(null==this.focusHighlight){n=this.createHighlightShape();n.dialect=this.graph.dialect==
mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;n.pointerEvents=!1;n.init(this.graph.getView().getOverlayPane());this.focusHighlight=n;var p=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:h});mxEvent.redirectMouseEvents(n.node,this.graph,p)}this.focusHighlight.bounds=m;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
+mxConstraintHandler.prototype.redraw=function(){if(null!=this.currentFocus&&null!=this.constraints&&null!=this.focusIcons){var a=this.graph.view.getState(this.currentFocus.cell);this.currentFocus=a;this.currentFocusArea=new mxRectangle(a.x,a.y,a.width,a.height);for(var b=0;b<this.constraints.length;b++){var c=this.graph.getConnectionPoint(a,this.constraints[b]),d=this.getImageForConstraint(a,this.constraints[b],c),d=new mxRectangle(Math.round(c.x-d.width/2),Math.round(c.y-d.height/2),d.width,d.height);
+this.focusIcons[b].bounds=d;this.focusIcons[b].redraw();this.currentFocusArea.add(this.focusIcons[b].bounds);this.focusPoints[b]=c}}};
mxConstraintHandler.prototype.setFocus=function(a,b,c){this.constraints=null!=b&&!this.isStateIgnored(b,c)&&this.graph.isCellConnectable(b.cell)?this.isEnabled()?this.graph.getAllConnectionConstraints(b,c)||[]:[]:null;if(null!=this.constraints){this.currentFocus=b;this.currentFocusArea=new mxRectangle(b.x,b.y,b.width,b.height);if(null!=this.focusIcons){for(c=0;c<this.focusIcons.length;c++)this.focusIcons[c].destroy();this.focusPoints=this.focusIcons=null}this.focusPoints=[];this.focusIcons=[];for(c=
0;c<this.constraints.length;c++){var d=this.graph.getConnectionPoint(b,this.constraints[c]),e=this.getImageForConstraint(b,this.constraints[c],d),f=e.src,e=new mxRectangle(Math.round(d.x-e.width/2),Math.round(d.y-e.height/2),e.width,e.height),f=new mxImageShape(e,f);f.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG;f.preserveImageAspect=!1;f.init(this.graph.getView().getDecoratorPane());(mxClient.IS_QUIRKS||8==document.documentMode)&&mxEvent.addListener(f.node,
"dragstart",function(a){mxEvent.consume(a);return!1});null!=f.node.previousSibling&&f.node.parentNode.insertBefore(f.node,f.node.parentNode.firstChild);e=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:b});f.redraw();mxEvent.redirectMouseEvents(f.node,this.graph,e);this.currentFocusArea.add(f.bounds);this.focusIcons.push(f);this.focusPoints.push(d)}this.currentFocusArea.grow(this.getTolerance(a))}else this.destroyIcons(),this.destroyFocusHighlight()};
@@ -1655,7 +1658,7 @@ a.length-1;0<=f;f--)if(0==f||a[f]!=e[f-1]){a[f].setAttribute("width",b);a[f].set
"_blank");break}}};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);
if(null!=g){var h=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,h):h,e=null!=e?Math.min(e,h):h;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;h=this.view.scale;e=e/h-(a?g.x:g.y);d=d/h-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var k=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var l=this.getCellGeometry(c[f].cell),d=d+k;null!=l&&(l=l.clone(),a?l.x=Math.round(d-l.width/2):l.y=Math.round(d-l.height/2),this.getModel().setGeometry(c[f].cell,
l))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var b=this.cloneCells(a),c=0;c<b.length;c++){var d=this.view.getState(a[c]);if(null!=d){var e=this.getCellGeometry(b[c]);null!=e&&e.relative&&(e.relative=!1,e.x=d.x/d.view.scale-d.view.translate.x,e.y=d.y/d.view.scale-d.view.translate.y)}}for(var d=new mxCodec,e=new mxGraphModel,f=e.getChildAt(e.getRoot(),
-0),c=0;c<a.length;c++)e.add(f,b[c]);return d.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:1;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;d=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var h=this.createSvgImageExport(),
+0),c=0;c<a.length;c++)e.add(f,b[c]);return d.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;d=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var h=this.createSvgImageExport(),
k=h.drawCellState;h.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&k.apply(this,arguments)};var l=this.view.scale,m=mxUtils.createXmlDocument(),n=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=a&&(null!=n.style?n.style.backgroundColor=a:n.setAttribute("style","background-color:"+a));null==m.createElementNS?(n.setAttribute("xmlns",mxConstants.NS_SVG),n.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):n.setAttributeNS("http://www.w3.org/2000/xmlns/",
"xmlns:xlink",mxConstants.NS_XLINK);a=b/l;n.setAttribute("width",Math.ceil(d.width*a)+2*c+"px");n.setAttribute("height",Math.ceil(d.height*a)+2*c+"px");n.setAttribute("version","1.1");var p=n;e&&(p=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),p.setAttribute("transform","translate(0.5,0.5)"),n.appendChild(p));m.appendChild(n);m=new mxSvgCanvas2D(p);m.foOffset=e?-0.5:0;m.textOffset=e?-0.5:0;m.translate(Math.floor((c/b-d.x)/l),Math.floor((c/b-d.y)/l));var q=
m.createAlternateContent;m.createAlternateContent=function(a,b,c,d,e,f,g,h,k,l,m,n,p){var s=this.state;if(null!=this.foAltText&&(0==d||0!=s.fontSize&&f.length<5*d/s.fontSize)){var r=this.createElement("text");r.setAttribute("x",Math.round(d/2));r.setAttribute("y",Math.round((e+s.fontSize)/2));r.setAttribute("fill",s.fontColor||"black");r.setAttribute("text-anchor","middle");r.setAttribute("font-size",Math.round(s.fontSize)+"px");r.setAttribute("font-family",s.fontFamily);(s.fontStyle&mxConstants.FONT_BOLD)==
diff --git a/war/js/viewer.min.js b/war/js/viewer.min.js
index 04ecf89b..b91a1262 100644
--- a/war/js/viewer.min.js
+++ b/war/js/viewer.min.js
@@ -4,7 +4,7 @@ var mxBasePath="https://www.draw.io/mxgraph/",mxLoadStylesheets=!1;
c[d])}return a}function g(a){this.opts=f(a||{},g.defaults,s)}function k(){function c(b,d){return a("\x3c"+b+' xmlns\x3d"urn:schemas-microsoft.com:vml" class\x3d"spin-vml"\x3e',d)}p.addRule(".spin-vml","behavior:url(#default#VML)");g.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:n+" "+n,coordorigin:-l+" "+-l}),{width:n,height:n})}function k(a,g,n){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~g}),b(e(c("roundrect",{arcsize:d.corners}),{width:l,height:d.width,left:d.radius,
top:-d.width>>1,filter:n}),c("fill",{color:"string"==typeof d.color?d.color:d.color[a%d.color.length],opacity:d.opacity}),c("stroke",{opacity:0}))))}var g,l=d.length+d.width,n=2*l;g=2*-(d.width+d.length)+"px";var m=e(f(),{position:"absolute",top:g,left:g});if(d.shadow)for(g=1;g<=d.lines;g++)k(g,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius\x3d2,makeshadow\x3d1,shadowopacity\x3d.3)");for(g=1;g<=d.lines;g++)k(g);return b(a,m)};g.prototype.opacity=function(a,b,c,d){a=a.firstChild;d=d.shadow&&
d.lines||0;a&&b+d<a.childNodes.length&&(a=a.childNodes[b+d],a=a&&a.firstChild,a=a&&a.firstChild,a&&(a.opacity=c))}}var l,n=["webkit","Moz","ms","O"],m={},p=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),s={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:0.25,fps:20,zIndex:2E9,className:"spinner",top:"50%",left:"50%",position:"absolute"};g.defaults={};f(g.prototype,
-{spin:function(b){this.stop();var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width;if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!l){var g,k=0,n=(d.lines-1)*(1-d.direction)/2,m=d.fps,p=m/d.speed,r=(1-d.opacity)/(p*d.trail/100),s=p/d.lines;!function G(){k++;for(var a=0;a<d.lines;a++)g=Math.max(1-(k+(d.lines-a)*s)%p*r,d.opacity),c.opacity(f,
+{spin:function(b){this.stop();var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width;if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!l){var g,k=0,n=(d.lines-1)*(1-d.direction)/2,m=d.fps,p=m/d.speed,s=(1-d.opacity)/(p*d.trail/100),r=p/d.lines;!function G(){k++;for(var a=0;a<d.lines;a++)g=Math.max(1-(k+(d.lines-a)*r)%p*s,d.opacity),c.opacity(f,
a*d.direction+n,g,d);c.timeout=c.el&&setTimeout(G,~~(1E3/m))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function g(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*n+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var k,
n=0,m=(f.lines-1)*(1-f.direction)/2;n<f.lines;n++)k=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:l&&c(f.opacity,f.trail,m+n*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(k,e(g("#000","0 0 4px #000"),{top:"2px"})),b(d,b(k,g("string"==typeof f.color?f.color:f.color[n%f.color.length],"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});
var r=e(a("group"),{behavior:"url(#default#VML)"});return!d(r,"transform")&&r.adj?k():l=d(r,"animation"),g});
@@ -36,7 +36,7 @@ cssLitGroup:[e[36],e[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[e[0]
"rect()":{cssPropBits:5,cssLitGroup:[e[48],e[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[e[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius","rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius",
"scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay","translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},g;for(g in f)"string"===typeof f[g]&&Object.hasOwnProperty.call(f,g)&&(f[g]=f[f[g]]);"undefined"!==typeof window&&(window.cssSchema=f);var k,l;(function(){function a(b){var c=
parseInt(b.substring(1),16);return 65535<c?(c-=65536,String.fromCharCode(55296+(c>>10),56320+(c&1023))):c==c?String.fromCharCode(c):" ">b[1]?"":b[1]}function b(a,c){return'"'+a.replace(/[\u0000-\u001f\\\"<>]/g,c)+'"'}function c(a){return e[a]||(e[a]="\\"+a.charCodeAt(0).toString(16)+" ")}function d(a){return f[a]||(f[a]=("\u0010">a?"%0":"%")+a.charCodeAt(0).toString(16))}var e={"\\":"\\\\"},f={"\\":"%5c"},g=RegExp("\\uFEFF|U[+][0-9A-F?]{1,6}(?:-[0-9A-F]{1,6})?|url[(][\\t\\n\\f ]*(?:\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|(?:[\\t\\x21\\x23-\\x26\\x28-\\x5b\\x5d-\\x7e]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)[\\t\\n\\f ]*[)]|(?!url[(])-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*[(]|(?:@?-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))|#)(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*|\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|[-+]?(?:[0-9]+(?:[.][0-9]+)?|[.][0-9]+)(?:%|-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)?|\x3c!--|--\x3e|[\\t\\n\\f ]+|/(?:[*][^*]*[*]+(?:[^/][^*]*[*]+)*/|/[^\\n\\f]*)|[~|^$*]\x3d|[^\"'\\\\/]|/(?![/*])",
-"gi"),n=RegExp("\\\\(?:(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff])|[\\n\\f])","g"),m=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");l=function(b){return b.replace(n,a)};k=function(a){a=(""+a).replace(/\r\n?/g,"\n").match(g)||[];for(var e=0,f=" ",k=0,n=a.length;k<n;++k){var p=l(a[k]),q=p.length,r=p.charCodeAt(0),p=34==r||39==r?b(p.substring(1,q-1),c):47==r&&1<q||"\\"==p||"--\x3e"==p||"\x3c!--"==p||"\ufeff"==
+"gi"),n=RegExp("\\\\(?:(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff])|[\\n\\f])","g"),m=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");l=function(b){return b.replace(n,a)};k=function(a){a=(""+a).replace(/\r\n?/g,"\n").match(g)||[];for(var e=0,f=" ",k=0,n=a.length;k<n;++k){var p=l(a[k]),s=p.length,r=p.charCodeAt(0),p=34==r||39==r?b(p.substring(1,s-1),c):47==r&&1<s||"\\"==p||"--\x3e"==p||"\x3c!--"==p||"\ufeff"==
p||32>=r?" ":/url\(/i.test(p)?"url("+b(p.replace(m,""),d)+")":p;if(f!=p||" "!=p)a[e++]=f=p}a.length=e;return a}})();"undefined"!==typeof window&&(window.lexCss=k,window.decodeCss=l);var n=function(){function a(b){b=(""+b).match(m);return!b?c:new k(g(b[1]),g(b[2]),g(b[3]),g(b[4]),g(b[5]),g(b[6]),g(b[7]))}function b(a,e){return"string"==typeof a?encodeURI(a).replace(e,d):c}function d(a){a=a.charCodeAt(0);return"%"+"0123456789ABCDEF".charAt(a>>4&15)+"0123456789ABCDEF".charAt(a&15)}function e(a){if(a===
c)return c;a=a.replace(/(^|\/)\.(?:\/|$)/g,"$1").replace(/\/{2,}/g,"/");for(var b=l,d;(d=a.replace(b,"$1"))!=a;a=d);return a}function f(a,b){var c=a.T(),d=b.K();d?c.ga(b.j):d=b.X();d?c.da(b.n):d=b.Y();d?c.ea(b.k):d=b.$();var k=b.g,g=e(k);if(d)c.ca(b.V()),g=g&&g.replace(n,"");else if(d=!!k){if(47!==g.charCodeAt(0))var g=e(c.g||"").replace(n,""),l=g.lastIndexOf("/")+1,g=e((l?g.substring(0,l):"")+e(k)).replace(n,"")}else g=g&&g.replace(n,""),g!==k&&c.G(g);d?c.G(g):d=b.aa();d?c.O(b.l):d=b.Z();d&&c.fa(b.o);
return c}function k(a,b,c,d,e,f,g){this.j=a;this.n=b;this.k=c;this.h=d;this.g=e;this.l=f;this.o=g}function g(a){return"string"==typeof a&&0<a.length?a:c}var l=RegExp(/(\/|^)(?:[^./][^/]*|\.{2,}(?:[^./][^/]*)|\.{3,}[^/]*)\/\.\.(?:\/|$)/),n=/^(?:\.\.\/)*(?:\.\.$)?/;k.prototype.toString=function(){var a=[];c!==this.j&&a.push(this.j,":");c!==this.k&&(a.push("//"),c!==this.n&&a.push(this.n,"@"),a.push(this.k),c!==this.h&&a.push(":",this.h.toString()));c!==this.g&&a.push(this.g);c!==this.l&&a.push("?",
@@ -45,21 +45,21 @@ function(){return this.h&&decodeURIComponent(this.h)};k.prototype.ca=function(a)
!(a instanceof Array)&&(a instanceof Object||"[object Array]"!==Object.prototype.toString.call(a))){var b=[],c=-1,d;for(d in a){var e=a[d];"string"===typeof e&&(b[++c]=d,b[++c]=e)}a=b}for(var b=[],c="",f=0;f<a.length;)d=a[f++],e=a[f++],b.push(c,encodeURIComponent(d.toString())),c="\x26",e&&b.push("\x3d",encodeURIComponent(e.toString()));this.l=b.join("")};k.prototype.fa=function(a){this.o=a?a:c};k.prototype.Z=function(){return c!==this.o};var m=/^(?:([^:/?#]+):)?(?:\/\/(?:([^/?#]*)@)?([^/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/,
p=/[#\/\?@]/g,r=/[\#\?]/g;k.parse=a;k.create=function(a,e,f,g,l,n,m){a=new k(b(a,p),b(e,p),"string"==typeof f?encodeURIComponent(f):c,0<g?g.toString():c,b(l,r),c,"string"==typeof m?encodeURIComponent(m):c);n&&("string"===typeof n?a.O(n.replace(/[^?&=0-9A-Za-z_\-~.%]/g,d)):a.ba(n));return a};k.N=f;k.ma=e;k.ha={ua:function(b){return/\.html$/.test(a(b).U())?"text/html":"application/javascript"},N:function(b,c){return b?f(a(b),a(c)).toString():""+c}};return k}();"undefined"!==typeof window&&(window.URI=
n);var m=a,p=a,s=a,r=a;(function(){function e(a){return"string"===typeof a?'url("'+a.replace(A,k)+'")':'url("about:blank")'}function k(a){return D[a]}function g(a,b){return a?n.ha.N(a,b):b}function t(a,b,d){if(!d)return c;var e=(""+a).match(C);return e&&(!e[1]||F.test(e[1]))?d(a,b):c}function E(a){return a.replace(/^-(?:apple|css|epub|khtml|moz|mso?|o|rim|wap|webkit|xv)-(?=[a-z])/,"")}var A=/[\n\f\r\"\'()*<>]/g,D={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a",
-"\x3c":"%3c","\x3e":"%3e"},C=/^(?:([^:/?# ]+):)?/,F=/^(?:https?|mailto|data)$/i;m=function(){var a={};return function S(b,c,d,k,n){b=E(b);var m=f[b];if(!m||"object"!==typeof m)c.length=0;else{for(var p=m.cssPropBits,r=p&80,q=p&1536,s=NaN,G=0,u=0;G<c.length;++G){var C=c[G].toLowerCase(),v=C.charCodeAt(0),F,H,D,A,Q,ha;if(32===v)C="";else if(34===v)C=16===r?d?e(t(g(k,l(c[G].substring(1,C.length-1))),b,d)):"":p&8&&!(r&r-1)?C:"";else if("inherit"!==C){if(Q=m.cssLitGroup){var ea;if(!(ea=m.cssLitMap)){ea=
+"\x3c":"%3c","\x3e":"%3e"},C=/^(?:([^:/?# ]+):)?/,F=/^(?:https?|mailto|data)$/i;m=function(){var a={};return function S(b,c,d,k,n){b=E(b);var m=f[b];if(!m||"object"!==typeof m)c.length=0;else{for(var p=m.cssPropBits,r=p&80,s=p&1536,q=NaN,G=0,u=0;G<c.length;++G){var C=c[G].toLowerCase(),v=C.charCodeAt(0),F,H,D,A,Q,ha;if(32===v)C="";else if(34===v)C=16===r?d?e(t(g(k,l(c[G].substring(1,C.length-1))),b,d)):"":p&8&&!(r&r-1)?C:"";else if("inherit"!==C){if(Q=m.cssLitGroup){var ea;if(!(ea=m.cssLitMap)){ea=
{};for(var V=Q.length;0<=--V;)for(var ga=Q[V],ka=ga.length;0<=--ka;)ea[ga[ka]]=a;ea=m.cssLitMap=ea}Q=ea}else Q=a;if(!(ha=Q,ha[E(C)]===a))if(35===v&&/^#(?:[0-9a-f]{3}){1,2}$/.test(C))C=p&2?C:"";else if(48<=v&&57>=v)C=p&1?C:"";else if(F=C.charCodeAt(1),H=C.charCodeAt(2),D=48<=F&&57>=F,A=48<=H&&57>=H,43===v&&(D||46===F&&A))C=p&1?(D?"":"0")+C.substring(1):"";else if(45===v&&(D||46===F&&A))C=p&4?(D?"-":"-0")+C.substring(1):p&1?"0":"";else if(46===v&&D)C=p&1?"0"+C:"";else if('url("'===C.substring(0,5))C=
-d&&p&16?e(t(g(k,c[G].substring(5,C.length-2)),b,d)):"";else if("("===C.charAt(C.length-1))a:{Q=c;ea=G;C=1;V=ea+1;for(v=Q.length;V<v&&C;)ga=Q[V++],C+=")"===ga?-1:/^[^"']*\($/.test(ga);if(!C){C=Q[ea].toLowerCase();v=E(C);Q=Q.splice(ea,V-ea,"");ea=m.cssFns;V=0;for(ga=ea.length;V<ga;++V)if(ea[V].substring(0,v.length)==v){Q[0]=Q[Q.length-1]="";S(ea[V],Q,d,k);C=C+Q.join(" ")+")";break a}}C=""}else C=q&&/^-?[a-z_][\w\-]*$/.test(C)&&!/__$/.test(C)?n&&512===q?c[G]+n:1024===q&&f[C]&&"number"===typeof f[C].oa?
-C:"":/^\w+$/.test(C)&&64===r&&p&8?s+1===u?(c[s]=c[s].substring(0,c[s].length-1)+" "+C+'"',""):(s=u,'"'+C+'"'):""}C&&(c[u++]=C)}1===u&&'url("about:blank")'===c[0]&&(u=0);c.length=u}}}();var G=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),
-H={};H["\x3e"]=H["+"]=H["~"]=H;p=function(a,e,f){function k(p,r){function q(c,f,k){var g,m,p,r,t,C=b;g="";if(c<f)if(t=a[c],"*"===t)++c,g=t;else if(/^[a-zA-Z]/.test(t)&&(m=n(t.toLowerCase(),[])))"tagName"in m&&(t=m.tagName),++c,g=t;for(r=p=m="";C&&c<f;++c)if(t=a[c],"#"===t.charAt(0))/^#_|__$|[^\w#:\-]/.test(t)?C=d:m+=t+l;else if("."===t)++c<f&&/^[0-9A-Za-z:_\-]+$/.test(t=a[c])&&!/^_|__$/.test(t)?m+="."+t:C=d;else if(c+1<f&&"["===a[c]){++c;var x=a[c++].toLowerCase();t=u.m[g+"::"+x];t!==+t&&(t=u.m["*::"+
+d&&p&16?e(t(g(k,c[G].substring(5,C.length-2)),b,d)):"";else if("("===C.charAt(C.length-1))a:{Q=c;ea=G;C=1;V=ea+1;for(v=Q.length;V<v&&C;)ga=Q[V++],C+=")"===ga?-1:/^[^"']*\($/.test(ga);if(!C){C=Q[ea].toLowerCase();v=E(C);Q=Q.splice(ea,V-ea,"");ea=m.cssFns;V=0;for(ga=ea.length;V<ga;++V)if(ea[V].substring(0,v.length)==v){Q[0]=Q[Q.length-1]="";S(ea[V],Q,d,k);C=C+Q.join(" ")+")";break a}}C=""}else C=s&&/^-?[a-z_][\w\-]*$/.test(C)&&!/__$/.test(C)?n&&512===s?c[G]+n:1024===s&&f[C]&&"number"===typeof f[C].oa?
+C:"":/^\w+$/.test(C)&&64===r&&p&8?q+1===u?(c[q]=c[q].substring(0,c[q].length-1)+" "+C+'"',""):(q=u,'"'+C+'"'):""}C&&(c[u++]=C)}1===u&&'url("about:blank")'===c[0]&&(u=0);c.length=u}}}();var G=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),
+H={};H["\x3e"]=H["+"]=H["~"]=H;p=function(a,e,f){function k(p,r){function s(c,f,k){var g,m,p,r,t,C=b;g="";if(c<f)if(t=a[c],"*"===t)++c,g=t;else if(/^[a-zA-Z]/.test(t)&&(m=n(t.toLowerCase(),[])))"tagName"in m&&(t=m.tagName),++c,g=t;for(r=p=m="";C&&c<f;++c)if(t=a[c],"#"===t.charAt(0))/^#_|__$|[^\w#:\-]/.test(t)?C=d:m+=t+l;else if("."===t)++c<f&&/^[0-9A-Za-z:_\-]+$/.test(t=a[c])&&!/^_|__$/.test(t)?m+="."+t:C=d;else if(c+1<f&&"["===a[c]){++c;var x=a[c++].toLowerCase();t=u.m[g+"::"+x];t!==+t&&(t=u.m["*::"+
x]);var v;e.ia?(v=e.ia(g,x),"string"!==typeof v&&(C=d,v=x),C&&t!==+t&&(t=u.d.NONE)):(v=x,t!==+t&&(C=d));var F=x="",y=d;/^[~^$*|]?=$/.test(a[c])&&(x=a[c++],F=a[c++],/^[0-9A-Za-z:_\-]+$/.test(F)?F='"'+F+'"':"]"===F&&(F='""',--c),/^"([^\"\\]|\\.)*"$/.test(F)||(C=d),(y="i"===a[c])&&++c);"]"!==a[c]&&(++c,C=d);switch(t){case u.d.CLASSES:case u.d.LOCAL_NAME:case u.d.NONE:break;case u.d.GLOBAL_NAME:case u.d.ID:case u.d.IDREF:("\x3d"===x||"~\x3d"===x||"$\x3d"===x)&&'""'!=F&&!y?F='"'+F.substring(1,F.length-
-1)+l+'"':"|\x3d"===x||""===x||(C=d);break;case u.d.URI:case u.d.URI_FRAGMENT:""!==x&&(C=d);break;default:C=d}C&&(p+="["+v.replace(/[^\w-]/g,"\\$\x26")+x+F+(y?" i]":"]"))}else if(c<f&&":"===a[c])if(t=a[++c],G.test(t))r+=":"+t;else break;else break;c!==f&&(C=d);C&&(c=(g+m).replace(/[^ .*#\w-]/g,"\\$\x26")+p+r+k)&&s.push(c);return C}" "===a[p]&&++p;r-1!==p&&" "===a[r]&&--r;for(var s=[],t=p,C=b,x=p;C&&x<r;++x){var v=a[x];if(H[v]===H||" "===v)q(t,x,v)?t=x+1:C=d}q(t,r,"")||(C=d);return C?(s.length&&(t=
-s.join(""),g!==c&&(t="."+g+" "+t),m.push(t)),b):!f||f(a.slice(p,r))}var g=e.na,l=e.L,n=e.Aa,m=[],p=0,r,q=0,s;for(r=0;r<a.length;++r)if(s=a[r],"("==s||"["==s?(++q,b):")"==s||"]"==s?(q&&--q,b):!(" "==a[r]&&(q||H[a[r-1]]===H||H[a[r+1]]===H)))a[p++]=a[r];a.length=p;p=a.length;for(r=q=0;r<p;++r)if(","===a[r]){if(!k(q,r))return c;q=r+1}return!k(q,p)?c:m};(function(){var a=/^\w/,b=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
+1)+l+'"':"|\x3d"===x||""===x||(C=d);break;case u.d.URI:case u.d.URI_FRAGMENT:""!==x&&(C=d);break;default:C=d}C&&(p+="["+v.replace(/[^\w-]/g,"\\$\x26")+x+F+(y?" i]":"]"))}else if(c<f&&":"===a[c])if(t=a[++c],G.test(t))r+=":"+t;else break;else break;c!==f&&(C=d);C&&(c=(g+m).replace(/[^ .*#\w-]/g,"\\$\x26")+p+r+k)&&q.push(c);return C}" "===a[p]&&++p;r-1!==p&&" "===a[r]&&--r;for(var q=[],t=p,C=b,x=p;C&&x<r;++x){var v=a[x];if(H[v]===H||" "===v)s(t,x,v)?t=x+1:C=d}s(t,r,"")||(C=d);return C?(q.length&&(t=
+q.join(""),g!==c&&(t="."+g+" "+t),m.push(t)),b):!f||f(a.slice(p,r))}var g=e.na,l=e.L,n=e.Aa,m=[],p=0,r,s=0,q;for(r=0;r<a.length;++r)if(q=a[r],"("==q||"["==q?(++s,b):")"==q||"]"==q?(s&&--s,b):!(" "==a[r]&&(s||H[a[r-1]]===H||H[a[r+1]]===H)))a[p++]=a[r];a.length=p;p=a.length;for(r=s=0;r<p;++r)if(","===a[r]){if(!k(s,r))return c;s=r+1}return!k(s,p)?c:m};(function(){var a=/^\w/,b=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
"i");r=function(c){c=c.slice();for(var d=c.length,e=0,f=0;f<d;++f){var k=c[f];" "!=k&&(c[e++]=k)}c.length=e;c=c.join(" ");return!c.length?"":!b.test(c)?"not all":a.test(c)?c:"not all , "+c}})();(function(){function e(a){var b=/^\s*[']([^']*)[']\s*$/,d=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,f=/^\s*url\s*[(][']([^']*)['][)]\s*$/,k=/^\s*url\s*[(]([^)]*)[)]\s*$/,g;return(g=/^\s*["]([^"]*)["]\s*$/.exec(a))||(g=b.exec(a))||(g=d.exec(a))||(g=f.exec(a))||(g=k.exec(a))?g[1]:c}function f(k,l,n,s,G,u,C){function x(){D=
H.length&&H[H.length-1]===c}var v=a,F=C||[0],H=[],D=d;q(l,{startStylesheet:function(){v=[]},endStylesheet:function(){},startAtrule:function(a,b){if(D)a=c;else if("@media"===a)v.push("@media"," ",r(b));else if("@keyframes"===a||"@-webkit-keyframes"===a){var d=b[0];1===b.length&&!/__$|[^\w\-]/.test(d)?(v.push(a," ",d+n.L),a="@keyframes"):a=c}else if("@import"===a&&0<b.length)if(a=c,"function"===typeof u){var l=r(b.slice(1));if("not all"!==l){++F[0];var m=[];v.push(m);var p=t(g(k,e(b[0])),function(a){var b=
f(p,a.qa,n,s,G,u,F);--F[0];a=l?{toString:function(){return"@media "+l+" {"+b.result+"}"}}:b.result;m[0]=a;u(a,!!F[0])},G)}}else window.console&&window.console.log("@import "+b.join(" ")+" elided");D=!a;H.push(a)},endAtrule:function(){H.pop();D||v.push(";");x()},startBlock:function(){D||v.push("{")},endBlock:function(){D||(v.push("}"),D=b)},startRuleset:function(d){if(!D){var e=a;"@keyframes"===H[H.length-1]?(e=d.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
D=!e,e&&(e=e[0].replace(/ +/g,""))):(d=p(d,n),!d||!d.length?D=b:e=d.join(", "));D||v.push(e,"{")}H.push(c)},endRuleset:function(){H.pop();D||v.push("}");x()},declaration:function(a,c){if(!D){var e=d,f=c.length;2<=f&&"!"===c[f-2]&&"important"===c[f-1].toLowerCase()&&(e=b,c.length-=2);m(a,c,s,k,n.L);c.length&&v.push(a,":",c.join(" "),e?" !important;":";")}}});return{result:{toString:function(){return v.join("")}},va:!!F[0]}}s=function(b,c,d,e){return f(b,c,d,e,a,a).result.toString()}})()})();"undefined"!==
typeof window&&(window.sanitizeCssProperty=m,window.sanitizeCssSelectorList=p,window.sanitizeStylesheet=s,window.sanitizeMediaQuery=r);var q,t;(function(){function a(b,d,e,f,k){for(var g=d++;d<e&&"{"!==b[d]&&";"!==b[d];)++d;if(d<e&&(k||";"===b[d])){k=g+1;var l=d;k<e&&" "===b[k]&&++k;l>k&&" "===b[l-1]&&--l;f.startAtrule&&f.startAtrule(b[g].toLowerCase(),b.slice(k,l));d="{"===b[d]?c(b,d,e,f):d+1;f.endAtrule&&f.endAtrule()}return d}function c(b,f,k,g){++f;for(g.startBlock&&g.startBlock();f<k;){var l=
b[f].charAt(0);if("}"==l){++f;break}f=" "===l||";"===l?f+1:"@"===l?a(b,f,k,g,d):"{"===l?c(b,f,k,g):e(b,f,k,g)}g.endBlock&&g.endBlock();return f}function e(a,c,d,k){var g=c,n=f(a,c,d,b);if(0>n)return n=~n,n===g?n+1:n;var m=a[n];if("{"!==m)return n===g?n+1:n;c=n+1;n>g&&" "===a[n-1]&&--n;for(k.startRuleset&&k.startRuleset(a.slice(g,n));c<d;){m=a[c];if("}"===m){++c;break}c=" "===m?c+1:l(a,c,d,k)}k.endRuleset&&k.endRuleset();return c}function f(a,b,c,d){for(var e,k=[],g=-1;b<c;++b)if(e=a[b].charAt(0),
-"["===e||"("===e)k[++g]=e;else if("]"===e&&"["===k[g]||")"===e&&"("===k[g])--g;else if("{"===e||"}"===e||";"===e||"@"===e||":"===e&&!d)break;0<=g&&(b=~(b+1));return b}function g(a,b,c){for(;b<c&&";"!==a[b]&&"}"!==a[b];)++b;return b<c&&";"===a[b]?b+1:b}function l(a,b,c,e){var k=a[b++];if(!n.test(k))return g(a,b,c);b<c&&" "===a[b]&&++b;if(b==c||":"!==a[b])return g(a,b,c);++b;b<c&&" "===a[b]&&++b;var m=f(a,b,c,d);if(0>m)m=~m;else{for(var p=[],r=0,q=b;q<m;++q)b=a[q]," "!==b&&(p[r++]=b);if(m<c){do{b=a[m];
+"["===e||"("===e)k[++g]=e;else if("]"===e&&"["===k[g]||")"===e&&"("===k[g])--g;else if("{"===e||"}"===e||";"===e||"@"===e||":"===e&&!d)break;0<=g&&(b=~(b+1));return b}function g(a,b,c){for(;b<c&&";"!==a[b]&&"}"!==a[b];)++b;return b<c&&";"===a[b]?b+1:b}function l(a,b,c,e){var k=a[b++];if(!n.test(k))return g(a,b,c);b<c&&" "===a[b]&&++b;if(b==c||":"!==a[b])return g(a,b,c);++b;b<c&&" "===a[b]&&++b;var m=f(a,b,c,d);if(0>m)m=~m;else{for(var p=[],r=0,s=b;s<m;++s)b=a[s]," "!==b&&(p[r++]=b);if(m<c){do{b=a[m];
if(";"===b||"}"===b)break;r=0}while(++m<c);";"===b&&++m}r&&e.declaration&&e.declaration(k.toLowerCase(),p)}return m}q=function(c,d){var f=k(c);d.startStylesheet&&d.startStylesheet();for(var g=0,l=f.length;g<l;)g=" "===f[g]?g+1:g<l?"@"===f[g].charAt(0)?a(f,g,l,d,b):e(f,g,l,d):g;d.endStylesheet&&d.endStylesheet()};var n=/^-?[a-z]/i;t=function(a,b){for(var c=k(a),d=0,e=c.length;d<e;)d=" "!==c[d]?l(c,d,e,b):d+1}})();"undefined"!==typeof window&&(window.parseCssStylesheet=q,window.parseCssDeclarations=
t);var u={d:{NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,HTML:12,ID:4,IDREF:5,IDREFS:6,GLOBAL_NAME:7,LOCAL_NAME:8,CLASSES:9,FRAME_TARGET:10,MEDIA_QUERY:13}};u.atype=u.d;u.m={"*::class":9,"*::dir":0,"*::draggable":0,"*::hidden":0,"*::id":4,"*::inert":0,"*::itemprop":0,"*::itemref":6,"*::itemscope":0,"*::lang":0,"*::onblur":2,"*::onchange":2,"*::onclick":2,"*::ondblclick":2,"*::onerror":2,"*::onfocus":2,"*::onkeydown":2,"*::onkeypress":2,"*::onkeyup":2,"*::onload":2,"*::onmousedown":2,"*::onmousemove":2,
"*::onmouseout":2,"*::onmouseover":2,"*::onmouseup":2,"*::onreset":2,"*::onscroll":2,"*::onselect":2,"*::onsubmit":2,"*::ontouchcancel":2,"*::ontouchend":2,"*::ontouchenter":2,"*::ontouchleave":2,"*::ontouchmove":2,"*::ontouchstart":2,"*::onunload":2,"*::spellcheck":0,"*::style":3,"*::tabindex":0,"*::title":0,"*::translate":0,"a::accesskey":0,"a::coords":0,"a::href":1,"a::hreflang":0,"a::name":7,"a::onblur":2,"a::onfocus":2,"a::shape":0,"a::target":10,"a::type":0,"area::accesskey":0,"area::alt":0,
@@ -83,16 +83,16 @@ time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"
u.URIEFFECTS=u.J;u.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};u.ltypes=u.M;u.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};u.LOADERTYPES=u.I;"undefined"!==typeof window&&(window.html4=u);e=function(e){function f(a,b){var c;if(L.hasOwnProperty(b))c=L[b];else{var d=b.match(I);c=d?String.fromCharCode(parseInt(d[1],10)):(d=b.match(aa))?String.fromCharCode(parseInt(d[1],
16)):J&&M.test(b)?(J.innerHTML="\x26"+b+";",d=J.textContent,L[b]=d):"\x26"+b+";"}return c}function g(a){return a.replace(R,f)}function k(a){return(""+a).replace($,"\x26amp;").replace(X,"\x26lt;").replace(Z,"\x26gt;").replace(T,"\x26#34;")}function l(a){return a.replace(P,"\x26amp;$1").replace(X,"\x26lt;").replace(Z,"\x26gt;")}function m(a){var b={z:a.z||a.cdata,A:a.A||a.comment,B:a.B||a.endDoc,t:a.t||a.endTag,e:a.e||a.pcdata,F:a.F||a.rcdata,H:a.H||a.startDoc,w:a.w||a.startTag};return function(a,e){var f,
g=/(<\/|<\!--|<[!?]|[&<>])/g;f=a+"";if(ha)f=f.split(g);else{for(var k=[],l=0,n;(n=g.exec(f))!==c;)k.push(f.substring(l,n.index)),k.push(n[0]),l=n.index+n[0].length;k.push(f.substring(l));f=k}r(b,f,0,{r:d,C:d},e)}}function p(a,b,c,d,e){return function(){r(a,b,c,d,e)}}function r(a,c,d,f,g){try{a.H&&0==d&&a.H(g);for(var k,l,n,m=c.length;d<m;){var t=c[d++],u=c[d];switch(t){case "\x26":ca.test(u)?(a.e&&a.e("\x26"+u,g,V,p(a,c,d,f,g)),d++):a.e&&a.e("\x26amp;",g,V,p(a,c,d,f,g));break;case "\x3c/":if(k=/^([-\w:]+)[^\'\"]*/.exec(u))if(k[0].length===
-u.length&&"\x3e"===c[d+1])d+=2,n=k[1].toLowerCase(),a.t&&a.t(n,g,V,p(a,c,d,f,g));else{var B=c,C=d,v=a,Q=g,y=V,z=f,Y=s(B,C);Y?(v.t&&v.t(Y.name,Q,y,p(v,B,C,z,Q)),d=Y.next):d=B.length}else a.e&&a.e("\x26lt;/",g,V,p(a,c,d,f,g));break;case "\x3c":if(k=/^([-\w:]+)\s*\/?/.exec(u))if(k[0].length===u.length&&"\x3e"===c[d+1]){d+=2;n=k[1].toLowerCase();a.w&&a.w(n,[],g,V,p(a,c,d,f,g));var H=e.f[n];H&ea&&(d=q(c,{name:n,next:d,c:H},a,g,V,f))}else{var B=c,C=a,v=g,Q=V,y=f,L=s(B,d);L?(C.w&&C.w(L.name,L.R,v,Q,p(C,
-B,L.next,y,v)),d=L.c&ea?q(B,L,C,v,Q,y):L.next):d=B.length}else a.e&&a.e("\x26lt;",g,V,p(a,c,d,f,g));break;case "\x3c!--":if(!f.C){for(l=d+1;l<m&&!("\x3e"===c[l]&&/--$/.test(c[l-1]));l++);if(l<m){if(a.A){var I=c.slice(d,l).join("");a.A(I.substr(0,I.length-2),g,V,p(a,c,l+1,f,g))}d=l+1}else f.C=b}f.C&&a.e&&a.e("\x26lt;!--",g,V,p(a,c,d,f,g));break;case "\x3c!":if(/^\w/.test(u)){if(!f.r){for(l=d+1;l<m&&"\x3e"!==c[l];l++);l<m?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;!",g,V,p(a,c,d,f,g))}else a.e&&a.e("\x26lt;!",
-g,V,p(a,c,d,f,g));break;case "\x3c?":if(!f.r){for(l=d+1;l<m&&"\x3e"!==c[l];l++);l<m?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;?",g,V,p(a,c,d,f,g));break;case "\x3e":a.e&&a.e("\x26gt;",g,V,p(a,c,d,f,g));break;case "":break;default:a.e&&a.e(t,g,V,p(a,c,d,f,g))}}a.B&&a.B(g)}catch(E){if(E!==V)throw E;}}function q(a,b,c,d,f,g){var k=a.length;ga.hasOwnProperty(b.name)||(ga[b.name]=RegExp("^"+b.name+"(?:[\\s\\/]|$)","i"));for(var n=ga[b.name],m=b.next,r=b.next+1;r<k&&!("\x3c/"===a[r-1]&&n.test(a[r]));r++);r<k&&
-(r-=1);k=a.slice(m,r).join("");if(b.c&e.c.CDATA)c.z&&c.z(k,d,f,p(c,a,r,g,d));else if(b.c&e.c.RCDATA)c.F&&c.F(l(k),d,f,p(c,a,r,g,d));else throw Error("bug");return r}function s(a,c){var f=/^([-\w:]+)/.exec(a[c]),k={};k.name=f[1].toLowerCase();k.c=e.f[k.name];for(var l=a[c].substr(f[0].length),n=c+1,m=a.length;n<m&&"\x3e"!==a[n];n++)l+=a[n];if(!(m<=n)){for(var p=[];""!==l;)if(f=Q.exec(l))if(f[4]&&!f[5]||f[6]&&!f[7]){for(var f=f[4]||f[6],r=d,l=[l,a[n++]];n<m;n++){if(r){if("\x3e"===a[n])break}else 0<=
-a[n].indexOf(f)&&(r=b);l.push(a[n])}if(m<=n)break;l=l.join("")}else{var r=f[1].toLowerCase(),q;if(f[2]){q=f[3];var t=q.charCodeAt(0);if(34===t||39===t)q=q.substr(1,q.length-2);q=g(q.replace(O,""))}else q="";p.push(r,q);l=l.substr(f[0].length)}else l=l.replace(/^[\s\S][^a-z\s]*/,"");k.R=p;k.next=n+1;return k}}function t(b){function f(a,b){l||b.push(a)}var g,l;return m({startDoc:function(){g=[];l=d},startTag:function(d,f,n){if(!l&&e.f.hasOwnProperty(d)){var m=e.f[d];if(!(m&e.c.FOLDABLE)){var p=b(d,
-f);if(p){if("object"!==typeof p)throw Error("tagPolicy did not return object (old API?)");if("attribs"in p)f=p.attribs;else throw Error("tagPolicy gave no attribs");var r;"tagName"in p?(r=p.tagName,p=e.f[r]):(r=d,p=m);if(m&e.c.OPTIONAL_ENDTAG){var q=g[g.length-1];q&&q.D===d&&(q.v!==r||d!==r)&&n.push("\x3c/",q.v,"\x3e")}m&e.c.EMPTY||g.push({D:d,v:r});n.push("\x3c",r);d=0;for(q=f.length;d<q;d+=2){var s=f[d],t=f[d+1];t!==c&&t!==a&&n.push(" ",s,'\x3d"',k(t),'"')}n.push("\x3e");m&e.c.EMPTY&&!(p&e.c.EMPTY)&&
+u.length&&"\x3e"===c[d+1])d+=2,n=k[1].toLowerCase(),a.t&&a.t(n,g,V,p(a,c,d,f,g));else{var B=c,C=d,v=a,Q=g,y=V,z=f,Y=q(B,C);Y?(v.t&&v.t(Y.name,Q,y,p(v,B,C,z,Q)),d=Y.next):d=B.length}else a.e&&a.e("\x26lt;/",g,V,p(a,c,d,f,g));break;case "\x3c":if(k=/^([-\w:]+)\s*\/?/.exec(u))if(k[0].length===u.length&&"\x3e"===c[d+1]){d+=2;n=k[1].toLowerCase();a.w&&a.w(n,[],g,V,p(a,c,d,f,g));var H=e.f[n];H&ea&&(d=s(c,{name:n,next:d,c:H},a,g,V,f))}else{var B=c,C=a,v=g,Q=V,y=f,L=q(B,d);L?(C.w&&C.w(L.name,L.R,v,Q,p(C,
+B,L.next,y,v)),d=L.c&ea?s(B,L,C,v,Q,y):L.next):d=B.length}else a.e&&a.e("\x26lt;",g,V,p(a,c,d,f,g));break;case "\x3c!--":if(!f.C){for(l=d+1;l<m&&!("\x3e"===c[l]&&/--$/.test(c[l-1]));l++);if(l<m){if(a.A){var I=c.slice(d,l).join("");a.A(I.substr(0,I.length-2),g,V,p(a,c,l+1,f,g))}d=l+1}else f.C=b}f.C&&a.e&&a.e("\x26lt;!--",g,V,p(a,c,d,f,g));break;case "\x3c!":if(/^\w/.test(u)){if(!f.r){for(l=d+1;l<m&&"\x3e"!==c[l];l++);l<m?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;!",g,V,p(a,c,d,f,g))}else a.e&&a.e("\x26lt;!",
+g,V,p(a,c,d,f,g));break;case "\x3c?":if(!f.r){for(l=d+1;l<m&&"\x3e"!==c[l];l++);l<m?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;?",g,V,p(a,c,d,f,g));break;case "\x3e":a.e&&a.e("\x26gt;",g,V,p(a,c,d,f,g));break;case "":break;default:a.e&&a.e(t,g,V,p(a,c,d,f,g))}}a.B&&a.B(g)}catch(E){if(E!==V)throw E;}}function s(a,b,c,d,f,g){var k=a.length;ga.hasOwnProperty(b.name)||(ga[b.name]=RegExp("^"+b.name+"(?:[\\s\\/]|$)","i"));for(var n=ga[b.name],m=b.next,r=b.next+1;r<k&&!("\x3c/"===a[r-1]&&n.test(a[r]));r++);r<k&&
+(r-=1);k=a.slice(m,r).join("");if(b.c&e.c.CDATA)c.z&&c.z(k,d,f,p(c,a,r,g,d));else if(b.c&e.c.RCDATA)c.F&&c.F(l(k),d,f,p(c,a,r,g,d));else throw Error("bug");return r}function q(a,c){var f=/^([-\w:]+)/.exec(a[c]),k={};k.name=f[1].toLowerCase();k.c=e.f[k.name];for(var l=a[c].substr(f[0].length),n=c+1,m=a.length;n<m&&"\x3e"!==a[n];n++)l+=a[n];if(!(m<=n)){for(var p=[];""!==l;)if(f=Q.exec(l))if(f[4]&&!f[5]||f[6]&&!f[7]){for(var f=f[4]||f[6],r=d,l=[l,a[n++]];n<m;n++){if(r){if("\x3e"===a[n])break}else 0<=
+a[n].indexOf(f)&&(r=b);l.push(a[n])}if(m<=n)break;l=l.join("")}else{var r=f[1].toLowerCase(),s;if(f[2]){s=f[3];var t=s.charCodeAt(0);if(34===t||39===t)s=s.substr(1,s.length-2);s=g(s.replace(O,""))}else s="";p.push(r,s);l=l.substr(f[0].length)}else l=l.replace(/^[\s\S][^a-z\s]*/,"");k.R=p;k.next=n+1;return k}}function t(b){function f(a,b){l||b.push(a)}var g,l;return m({startDoc:function(){g=[];l=d},startTag:function(d,f,n){if(!l&&e.f.hasOwnProperty(d)){var m=e.f[d];if(!(m&e.c.FOLDABLE)){var p=b(d,
+f);if(p){if("object"!==typeof p)throw Error("tagPolicy did not return object (old API?)");if("attribs"in p)f=p.attribs;else throw Error("tagPolicy gave no attribs");var r;"tagName"in p?(r=p.tagName,p=e.f[r]):(r=d,p=m);if(m&e.c.OPTIONAL_ENDTAG){var s=g[g.length-1];s&&s.D===d&&(s.v!==r||d!==r)&&n.push("\x3c/",s.v,"\x3e")}m&e.c.EMPTY||g.push({D:d,v:r});n.push("\x3c",r);d=0;for(s=f.length;d<s;d+=2){var q=f[d],t=f[d+1];t!==c&&t!==a&&n.push(" ",q,'\x3d"',k(t),'"')}n.push("\x3e");m&e.c.EMPTY&&!(p&e.c.EMPTY)&&
n.push("\x3c/",r,"\x3e")}else l=!(m&e.c.EMPTY)}}},endTag:function(a,b){if(l)l=d;else if(e.f.hasOwnProperty(a)){var c=e.f[a];if(!(c&(e.c.EMPTY|e.c.FOLDABLE))){if(c&e.c.OPTIONAL_ENDTAG)for(c=g.length;0<=--c;){var f=g[c].D;if(f===a)break;if(!(e.f[f]&e.c.OPTIONAL_ENDTAG))return}else for(c=g.length;0<=--c&&g[c].D!==a;);if(!(0>c)){for(f=g.length;--f>c;){var k=g[f].v;e.f[k]&e.c.OPTIONAL_ENDTAG||b.push("\x3c/",k,"\x3e")}c<g.length&&(a=g[c].v);g.length=c;b.push("\x3c/",a,"\x3e")}}}},pcdata:f,rcdata:f,cdata:f,
endDoc:function(a){for(;g.length;g.length--)a.push("\x3c/",g[g.length-1].v,"\x3e")}})}function u(a,b,d,e,f){if(!f)return c;try{var g=n.parse(""+a);if(g&&(!g.K()||ka.test(g.W()))){var k=f(g,b,d,e);return k?k.toString():c}}catch(l){}return c}function K(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function S(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+
-c;if(a.hasOwnProperty(b))return a[b]}function W(b,d,f,g,k){for(var l=0;l<d.length;l+=2){var n=d[l],m=d[l+1],p=m,r=c,q;if((q=b+"::"+n,e.m.hasOwnProperty(q))||(q="*::"+n,e.m.hasOwnProperty(q)))r=e.m[q];if(r!==c)switch(r){case e.d.NONE:break;case e.d.SCRIPT:m=c;k&&K(k,b,n,p,m);break;case e.d.STYLE:if("undefined"===typeof B){m=c;k&&K(k,b,n,p,m);break}var s=[];B(m,{declaration:function(a,b){var d=a.toLowerCase();Y(d,b,f?function(a){return u(a,e.P.ja,e.M.ka,{TYPE:"CSS",CSS_PROP:d},f)}:c);b.length&&s.push(d+
-": "+b.join(" "))}});m=0<s.length?s.join(" ; "):c;k&&K(k,b,n,p,m);break;case e.d.ID:case e.d.IDREF:case e.d.IDREFS:case e.d.GLOBAL_NAME:case e.d.LOCAL_NAME:case e.d.CLASSES:m=g?g(m):m;k&&K(k,b,n,p,m);break;case e.d.URI:m=u(m,S(e.J,b,n),S(e.I,b,n),{TYPE:"MARKUP",XML_ATTR:n,XML_TAG:b},f);k&&K(k,b,n,p,m);break;case e.d.URI_FRAGMENT:m&&"#"===m.charAt(0)?(m=m.substring(1),m=g?g(m):m,m!==c&&m!==a&&(m="#"+m)):m=c;k&&K(k,b,n,p,m);break;default:m=c,k&&K(k,b,n,p,m)}else m=c,k&&K(k,b,n,p,m);d[l+1]=m}return d}
+c;if(a.hasOwnProperty(b))return a[b]}function W(b,d,f,g,k){for(var l=0;l<d.length;l+=2){var n=d[l],m=d[l+1],p=m,r=c,s;if((s=b+"::"+n,e.m.hasOwnProperty(s))||(s="*::"+n,e.m.hasOwnProperty(s)))r=e.m[s];if(r!==c)switch(r){case e.d.NONE:break;case e.d.SCRIPT:m=c;k&&K(k,b,n,p,m);break;case e.d.STYLE:if("undefined"===typeof B){m=c;k&&K(k,b,n,p,m);break}var q=[];B(m,{declaration:function(a,b){var d=a.toLowerCase();Y(d,b,f?function(a){return u(a,e.P.ja,e.M.ka,{TYPE:"CSS",CSS_PROP:d},f)}:c);b.length&&q.push(d+
+": "+b.join(" "))}});m=0<q.length?q.join(" ; "):c;k&&K(k,b,n,p,m);break;case e.d.ID:case e.d.IDREF:case e.d.IDREFS:case e.d.GLOBAL_NAME:case e.d.LOCAL_NAME:case e.d.CLASSES:m=g?g(m):m;k&&K(k,b,n,p,m);break;case e.d.URI:m=u(m,S(e.J,b,n),S(e.I,b,n),{TYPE:"MARKUP",XML_ATTR:n,XML_TAG:b},f);k&&K(k,b,n,p,m);break;case e.d.URI_FRAGMENT:m&&"#"===m.charAt(0)?(m=m.substring(1),m=g?g(m):m,m!==c&&m!==a&&(m="#"+m)):m=c;k&&K(k,b,n,p,m);break;default:m=c,k&&K(k,b,n,p,m)}else m=c,k&&K(k,b,n,p,m);d[l+1]=m}return d}
function da(b,c,d){return function(f,g){if(e.f[f]&e.c.UNSAFE)d&&K(d,f,a,a,a);else return{attribs:W(f,g,b,c,d)}}}function U(a,b){var c=[];t(b)(a,c);return c.join("")}var B,Y;"undefined"!==typeof window&&(B=window.parseCssDeclarations,Y=window.sanitizeCssProperty);var L={lt:"\x3c",LT:"\x3c",gt:"\x3e",GT:"\x3e",amp:"\x26",AMP:"\x26",quot:'"',apos:"'",nbsp:"\u00a0"},I=/^#(\d+)$/,aa=/^#x([0-9A-Fa-f]+)$/,M=/^[A-Za-z][A-za-z0-9]+$/,J="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):
c,O=/\0/g,R=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,ca=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,$=/&/g,P=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,X=/[<]/g,Z=/>/g,T=/\"/g,Q=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,ha=3==="a,b".split(/(,)/).length,ea=e.c.CDATA|e.c.RCDATA,V={},ga={},ka=/^(?:https?|mailto|data)$/i,ba={};ba.pa=ba.escapeAttrib=k;ba.ra=ba.makeHtmlSanitizer=t;ba.sa=ba.makeSaxParser=m;ba.ta=ba.makeTagPolicy=da;ba.wa=ba.normalizeRCData=l;ba.xa=
ba.sanitize=function(a,b,c,d){return U(a,da(b,c,d))};ba.ya=ba.sanitizeAttribs=W;ba.za=ba.sanitizeWithPolicy=U;ba.Ba=ba.unescapeEntities=g;return ba}(u);g=e.sanitize;"undefined"!==typeof window&&(window.html=e,window.html_sanitize=g)})();
@@ -118,8 +118,8 @@ d?(c[k++]=192|d>>>6,c[k++]=128|63&d):65536>d?(c[k++]=224|d>>>12,c[k++]=128|d>>>6
2===k?31:3===k?15:7;1<k&&d<l;)g=g<<6|63&b[d++],k--;1<k?n[f++]=65533:65536>g?n[f++]=g:(g-=65536,n[f++]=55296|g>>10&1023,n[f++]=56320|1023&g)}return e(n,f)};d.utf8border=function(b,c){var d;c=c||b.length;c>b.length&&(c=b.length);for(d=c-1;0<=d&&128===(192&b[d]);)d--;return 0>d?c:0===d?c:d+m[b[d]]>c?d:c}},{"./common":3}],5:[function(b,c,d){c.exports=function(b,c,d,k){var l=65535&b|0;b=b>>>16&65535|0;for(var n=0;0!==d;){n=2E3<d?2E3:d;d-=n;do l=l+c[k++]|0,b=b+l|0;while(--n);l%=65521;b%=65521}return l|
b<<16|0}},{}],6:[function(b,c,d){c.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],7:[function(b,c,d){var e=function(){for(var b,c=[],d=0;256>d;d++){b=d;
for(var e=0;8>e;e++)b=1&b?3988292384^b>>>1:b>>>1;c[d]=b}return c}();c.exports=function(b,c,d,l){d=l+d;for(b^=-1;l<d;l++)b=b>>>8^e[255&(b^c[l])];return b^-1}},{}],8:[function(b,c,d){function e(b,c){return b.msg=C[c],c}function f(b){for(var c=b.length;0<=--c;)b[c]=0}function g(b){var c=b.state,d=c.pending;d>b.avail_out&&(d=b.avail_out);0!==d&&(y.arraySet(b.output,c.pending_buf,c.pending_out,d,b.next_out),b.next_out+=d,c.pending_out+=d,b.total_out+=d,b.avail_out-=d,c.pending-=d,0===c.pending&&(c.pending_out=
-0))}function k(b,c){E._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,c);b.block_start=b.strstart;g(b.strm)}function l(b,c){b.pending_buf[b.pending++]=c}function n(b,c){b.pending_buf[b.pending++]=c>>>8&255;b.pending_buf[b.pending++]=255&c}function m(b,c){var d,e,f=b.max_chain_length,g=b.strstart,k=b.prev_length,l=b.nice_match,n=b.strstart>b.w_size-R?b.strstart-(b.w_size-R):0,m=b.window,p=b.w_mask,r=b.prev,q=b.strstart+O,s=m[g+k-1],G=m[g+k];b.prev_length>=b.good_match&&
-(f>>=2);l>b.lookahead&&(l=b.lookahead);do if(d=c,m[d+k]===G&&m[d+k-1]===s&&m[d]===m[g]&&m[++d]===m[g+1]){g+=2;d++;do;while(m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&g<q);if(e=O-(q-g),g=q-O,e>k){if(b.match_start=c,k=e,e>=l)break;s=m[g+k-1];G=m[g+k]}}while((c=r[c&p])>n&&0!==--f);return k<=b.lookahead?k:b.lookahead}function p(b){var c,d,e,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>=
+0))}function k(b,c){E._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,c);b.block_start=b.strstart;g(b.strm)}function l(b,c){b.pending_buf[b.pending++]=c}function n(b,c){b.pending_buf[b.pending++]=c>>>8&255;b.pending_buf[b.pending++]=255&c}function m(b,c){var d,e,f=b.max_chain_length,g=b.strstart,k=b.prev_length,l=b.nice_match,n=b.strstart>b.w_size-R?b.strstart-(b.w_size-R):0,m=b.window,p=b.w_mask,r=b.prev,s=b.strstart+O,q=m[g+k-1],G=m[g+k];b.prev_length>=b.good_match&&
+(f>>=2);l>b.lookahead&&(l=b.lookahead);do if(d=c,m[d+k]===G&&m[d+k-1]===q&&m[d]===m[g]&&m[++d]===m[g+1]){g+=2;d++;do;while(m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&g<s);if(e=O-(s-g),g=s-O,e>k){if(b.match_start=c,k=e,e>=l)break;q=m[g+k-1];G=m[g+k]}}while((c=r[c&p])>n&&0!==--f);return k<=b.lookahead?k:b.lookahead}function p(b){var c,d,e,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>=
g+(g-R)){y.arraySet(b.window,b.window,g,g,0);b.match_start-=g;b.strstart-=g;b.block_start-=g;c=d=b.hash_size;do e=b.head[--c],b.head[c]=e>=g?e-g:0;while(--d);c=d=g;do e=b.prev[--c],b.prev[c]=e>=g?e-g:0;while(--d);f+=g}if(0===b.strm.avail_in)break;c=b.strm;e=b.window;var k=b.strstart+b.lookahead,l=c.avail_in;if(d=(l>f&&(l=f),0===l?0:(c.avail_in-=l,y.arraySet(e,c.input,c.next_in,l,k),1===c.state.wrap?c.adler=A(c.adler,e,l,k):2===c.state.wrap&&(c.adler=D(c.adler,e,l,k)),c.next_in+=l,c.total_in+=l,l)),
b.lookahead+=d,b.lookahead+b.insert>=J){f=b.strstart-b.insert;b.ins_h=b.window[f];for(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+1])&b.hash_mask;b.insert&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+J-1])&b.hash_mask,b.prev[f&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=f,f++,b.insert--,!(b.lookahead+b.insert<J)););}}while(b.lookahead<R&&0!==b.strm.avail_in)}function s(b,c){for(var d,e;;){if(b.lookahead<R){if(p(b),b.lookahead<R&&c===F)return P;if(0===b.lookahead)break}if(d=0,b.lookahead>=J&&(b.ins_h=(b.ins_h<<
b.hash_shift^b.window[b.strstart+J-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==d&&b.strstart-d<=b.w_size-R&&(b.match_length=m(b,d)),b.match_length>=J)if(e=E._tr_tally(b,b.strstart-b.match_start,b.match_length-J),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=J){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+J-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=
@@ -133,15 +133,15 @@ this.lit_bufsize=this.l_buf=0}function u(b){var c;return b&&b.state?(b.total_in=
0,b.lookahead=0,b.insert=0,b.match_length=b.prev_length=J-1,b.match_available=0,b.ins_h=0);return c}function v(b,c,d,f,g,k){if(!b)return N;var l=1;if(c===K&&(c=6),0>f?(l=0,f=-f):15<f&&(l=2,f-=16),1>g||g>B||d!==U||8>f||15<f||0>c||9<c||0>k||k>W)return e(b,N);8===f&&(f=9);var n=new t;return b.state=n,n.strm=b,n.wrap=l,n.gzhead=null,n.w_bits=f,n.w_size=1<<n.w_bits,n.w_mask=n.w_size-1,n.hash_bits=g+7,n.hash_size=1<<n.hash_bits,n.hash_mask=n.hash_size-1,n.hash_shift=~~((n.hash_bits+J-1)/J),n.window=new y.Buf8(2*
n.w_size),n.head=new y.Buf16(n.hash_size),n.prev=new y.Buf16(n.w_size),n.lit_bufsize=1<<g+6,n.pending_buf_size=4*n.lit_bufsize,n.pending_buf=new y.Buf8(n.pending_buf_size),n.d_buf=1*n.lit_bufsize,n.l_buf=3*n.lit_bufsize,n.level=c,n.strategy=k,n.method=d,x(b)}var z,y=b("../utils/common"),E=b("./trees"),A=b("./adler32"),D=b("./crc32"),C=b("./messages"),F=0,G=4,H=0,N=-2,K=-1,S=1,W=4,da=2,U=8,B=9,Y=286,L=30,I=19,aa=2*Y+1,M=15,J=3,O=258,R=O+J+1,ca=42,$=113,P=1,X=2,Z=3,T=4;z=[new q(0,0,0,0,function(b,c){var d=
65535;for(d>b.pending_buf_size-5&&(d=b.pending_buf_size-5);;){if(1>=b.lookahead){if(p(b),0===b.lookahead&&c===F)return P;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var e=b.block_start+d;if((0===b.strstart||b.strstart>=e)&&(b.lookahead=b.strstart-e,b.strstart=e,k(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-R&&(k(b,!1),0===b.strm.avail_out))return P}return b.insert=0,c===G?(k(b,!0),0===b.strm.avail_out?Z:T):(b.strstart>b.block_start&&k(b,!1),P)}),new q(4,4,8,
-4,s),new q(4,5,16,8,s),new q(4,6,32,32,s),new q(4,4,16,16,r),new q(8,16,32,32,r),new q(8,16,128,128,r),new q(8,32,128,256,r),new q(32,128,258,1024,r),new q(32,258,258,4096,r)];d.deflateInit=function(b,c){return v(b,c,U,15,8,0)};d.deflateInit2=v;d.deflateReset=x;d.deflateResetKeep=u;d.deflateSetHeader=function(b,c){return b&&b.state?2!==b.state.wrap?N:(b.state.gzhead=c,H):N};d.deflate=function(b,c){var d,m,r,q;if(!b||!b.state||5<c||0>c)return b?e(b,N):N;if(m=b.state,!b.output||!b.input&&0!==b.avail_in||
+4,s),new q(4,5,16,8,s),new q(4,6,32,32,s),new q(4,4,16,16,r),new q(8,16,32,32,r),new q(8,16,128,128,r),new q(8,32,128,256,r),new q(32,128,258,1024,r),new q(32,258,258,4096,r)];d.deflateInit=function(b,c){return v(b,c,U,15,8,0)};d.deflateInit2=v;d.deflateReset=x;d.deflateResetKeep=u;d.deflateSetHeader=function(b,c){return b&&b.state?2!==b.state.wrap?N:(b.state.gzhead=c,H):N};d.deflate=function(b,c){var d,m,r,s;if(!b||!b.state||5<c||0>c)return b?e(b,N):N;if(m=b.state,!b.output||!b.input&&0!==b.avail_in||
666===m.status&&c!==G)return e(b,0===b.avail_out?-5:N);if(m.strm=b,d=m.last_flush,m.last_flush=c,m.status===ca)2===m.wrap?(b.adler=0,l(m,31),l(m,139),l(m,8),m.gzhead?(l(m,(m.gzhead.text?1:0)+(m.gzhead.hcrc?2:0)+(m.gzhead.extra?4:0)+(m.gzhead.name?8:0)+(m.gzhead.comment?16:0)),l(m,255&m.gzhead.time),l(m,m.gzhead.time>>8&255),l(m,m.gzhead.time>>16&255),l(m,m.gzhead.time>>24&255),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,255&m.gzhead.os),m.gzhead.extra&&m.gzhead.extra.length&&(l(m,255&m.gzhead.extra.length),
-l(m,m.gzhead.extra.length>>8&255)),m.gzhead.hcrc&&(b.adler=D(b.adler,m.pending_buf,m.pending,0)),m.gzindex=0,m.status=69):(l(m,0),l(m,0),l(m,0),l(m,0),l(m,0),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,3),m.status=$)):(r=U+(m.w_bits-8<<4)<<8,q=2<=m.strategy||2>m.level?0:6>m.level?1:6===m.level?2:3,r|=q<<6,0!==m.strstart&&(r|=32),m.status=$,n(m,r+(31-r%31)),0!==m.strstart&&(n(m,b.adler>>>16),n(m,65535&b.adler)),b.adler=1);if(69===m.status)if(m.gzhead.extra){for(r=m.pending;m.gzindex<(65535&
+l(m,m.gzhead.extra.length>>8&255)),m.gzhead.hcrc&&(b.adler=D(b.adler,m.pending_buf,m.pending,0)),m.gzindex=0,m.status=69):(l(m,0),l(m,0),l(m,0),l(m,0),l(m,0),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,3),m.status=$)):(r=U+(m.w_bits-8<<4)<<8,s=2<=m.strategy||2>m.level?0:6>m.level?1:6===m.level?2:3,r|=s<<6,0!==m.strstart&&(r|=32),m.status=$,n(m,r+(31-r%31)),0!==m.strstart&&(n(m,b.adler>>>16),n(m,65535&b.adler)),b.adler=1);if(69===m.status)if(m.gzhead.extra){for(r=m.pending;m.gzindex<(65535&
m.gzhead.extra.length)&&(m.pending!==m.pending_buf_size||(m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r)),g(b),r=m.pending,m.pending!==m.pending_buf_size));)l(m,255&m.gzhead.extra[m.gzindex]),m.gzindex++;m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r));m.gzindex===m.gzhead.extra.length&&(m.gzindex=0,m.status=73)}else m.status=73;if(73===m.status)if(m.gzhead.name){r=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>r&&
-(b.adler=D(b.adler,m.pending_buf,m.pending-r,r)),g(b),r=m.pending,m.pending===m.pending_buf_size)){q=1;break}q=m.gzindex<m.gzhead.name.length?255&m.gzhead.name.charCodeAt(m.gzindex++):0;l(m,q)}while(0!==q);m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r));0===q&&(m.gzindex=0,m.status=91)}else m.status=91;if(91===m.status)if(m.gzhead.comment){r=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r)),g(b),
-r=m.pending,m.pending===m.pending_buf_size)){q=1;break}q=m.gzindex<m.gzhead.comment.length?255&m.gzhead.comment.charCodeAt(m.gzindex++):0;l(m,q)}while(0!==q);m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r));0===q&&(m.status=103)}else m.status=103;if(103===m.status&&(m.gzhead.hcrc?(m.pending+2>m.pending_buf_size&&g(b),m.pending+2<=m.pending_buf_size&&(l(m,255&b.adler),l(m,b.adler>>8&255),b.adler=0,m.status=$)):m.status=$),0!==m.pending){if(g(b),0===b.avail_out)return m.last_flush=
--1,H}else if(0===b.avail_in&&(c<<1)-(4<c?9:0)<=(d<<1)-(4<d?9:0)&&c!==G)return e(b,-5);if(666===m.status&&0!==b.avail_in)return e(b,-5);if(0!==b.avail_in||0!==m.lookahead||c!==F&&666!==m.status){var s;if(2===m.strategy)a:{for(var t;;){if(0===m.lookahead&&(p(m),0===m.lookahead)){if(c===F){s=P;break a}break}if(m.match_length=0,t=E._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,t&&(k(m,!1),0===m.strm.avail_out)){s=P;break a}}s=(m.insert=0,c===G?(k(m,!0),0===m.strm.avail_out?Z:T):m.last_lit&&
-(k(m,!1),0===m.strm.avail_out)?P:X)}else if(3===m.strategy)a:{var B,C;for(t=m.window;;){if(m.lookahead<=O){if(p(m),m.lookahead<=O&&c===F){s=P;break a}if(0===m.lookahead)break}if(m.match_length=0,m.lookahead>=J&&0<m.strstart&&(C=m.strstart-1,B=t[C],B===t[++C]&&B===t[++C]&&B===t[++C])){d=m.strstart+O;do;while(B===t[++C]&&B===t[++C]&&B===t[++C]&&B===t[++C]&&B===t[++C]&&B===t[++C]&&B===t[++C]&&B===t[++C]&&C<d);m.match_length=O-(d-C);m.match_length>m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=
-J?(s=E._tr_tally(m,1,m.match_length-J),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(s=E._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),s&&(k(m,!1),0===m.strm.avail_out)){s=P;break a}}s=(m.insert=0,c===G?(k(m,!0),0===m.strm.avail_out?Z:T):m.last_lit&&(k(m,!1),0===m.strm.avail_out)?P:X)}else s=z[m.level].func(m,c);if(s!==Z&&s!==T||(m.status=666),s===P||s===Z)return 0===b.avail_out&&(m.last_flush=-1),H;if(s===X&&(1===c?E._tr_align(m):5!==c&&(E._tr_stored_block(m,
+(b.adler=D(b.adler,m.pending_buf,m.pending-r,r)),g(b),r=m.pending,m.pending===m.pending_buf_size)){s=1;break}s=m.gzindex<m.gzhead.name.length?255&m.gzhead.name.charCodeAt(m.gzindex++):0;l(m,s)}while(0!==s);m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r));0===s&&(m.gzindex=0,m.status=91)}else m.status=91;if(91===m.status)if(m.gzhead.comment){r=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r)),g(b),
+r=m.pending,m.pending===m.pending_buf_size)){s=1;break}s=m.gzindex<m.gzhead.comment.length?255&m.gzhead.comment.charCodeAt(m.gzindex++):0;l(m,s)}while(0!==s);m.gzhead.hcrc&&m.pending>r&&(b.adler=D(b.adler,m.pending_buf,m.pending-r,r));0===s&&(m.status=103)}else m.status=103;if(103===m.status&&(m.gzhead.hcrc?(m.pending+2>m.pending_buf_size&&g(b),m.pending+2<=m.pending_buf_size&&(l(m,255&b.adler),l(m,b.adler>>8&255),b.adler=0,m.status=$)):m.status=$),0!==m.pending){if(g(b),0===b.avail_out)return m.last_flush=
+-1,H}else if(0===b.avail_in&&(c<<1)-(4<c?9:0)<=(d<<1)-(4<d?9:0)&&c!==G)return e(b,-5);if(666===m.status&&0!==b.avail_in)return e(b,-5);if(0!==b.avail_in||0!==m.lookahead||c!==F&&666!==m.status){var q;if(2===m.strategy)a:{for(var t;;){if(0===m.lookahead&&(p(m),0===m.lookahead)){if(c===F){q=P;break a}break}if(m.match_length=0,t=E._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,t&&(k(m,!1),0===m.strm.avail_out)){q=P;break a}}q=(m.insert=0,c===G?(k(m,!0),0===m.strm.avail_out?Z:T):m.last_lit&&
+(k(m,!1),0===m.strm.avail_out)?P:X)}else if(3===m.strategy)a:{var B,C;for(t=m.window;;){if(m.lookahead<=O){if(p(m),m.lookahead<=O&&c===F){q=P;break a}if(0===m.lookahead)break}if(m.match_length=0,m.lookahead>=J&&0<m.strstart&&(C=m.strstart-1,B=t[C],B===t[++C]&&B===t[++C]&&B===t[++C])){d=m.strstart+O;do;while(B===t[++C]&&B===t[++C]&&B===t[++C]&&B===t[++C]&&B===t[++C]&&B===t[++C]&&B===t[++C]&&B===t[++C]&&C<d);m.match_length=O-(d-C);m.match_length>m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=
+J?(q=E._tr_tally(m,1,m.match_length-J),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(q=E._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),q&&(k(m,!1),0===m.strm.avail_out)){q=P;break a}}q=(m.insert=0,c===G?(k(m,!0),0===m.strm.avail_out?Z:T):m.last_lit&&(k(m,!1),0===m.strm.avail_out)?P:X)}else q=z[m.level].func(m,c);if(q!==Z&&q!==T||(m.status=666),q===P||q===Z)return 0===b.avail_out&&(m.last_flush=-1),H;if(q===X&&(1===c?E._tr_align(m):5!==c&&(E._tr_stored_block(m,
0,0,!1),3===c&&(f(m.head),0===m.lookahead&&(m.strstart=0,m.block_start=0,m.insert=0))),g(b),0===b.avail_out))return m.last_flush=-1,H}return c!==G?H:0>=m.wrap?1:(2===m.wrap?(l(m,255&b.adler),l(m,b.adler>>8&255),l(m,b.adler>>16&255),l(m,b.adler>>24&255),l(m,255&b.total_in),l(m,b.total_in>>8&255),l(m,b.total_in>>16&255),l(m,b.total_in>>24&255)):(n(m,b.adler>>>16),n(m,65535&b.adler)),g(b),0<m.wrap&&(m.wrap=-m.wrap),0!==m.pending?H:1)};d.deflateEnd=function(b){var c;return b&&b.state?(c=b.state.status,
c!==ca&&69!==c&&73!==c&&91!==c&&103!==c&&c!==$&&666!==c?e(b,N):(b.state=null,c===$?e(b,-3):H)):N};d.deflateSetDictionary=function(b,c){var d,e,g,k,l,n,m;e=c.length;if(!b||!b.state||(d=b.state,k=d.wrap,2===k||1===k&&d.status!==ca||d.lookahead))return N;1===k&&(b.adler=A(b.adler,c,e,0));d.wrap=0;e>=d.w_size&&(0===k&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),l=new y.Buf8(d.w_size),y.arraySet(l,c,e-d.w_size,d.w_size,0),c=l,e=d.w_size);l=b.avail_in;n=b.next_in;m=b.input;b.avail_in=e;b.next_in=
0;b.input=c;for(p(d);d.lookahead>=J;){e=d.strstart;g=d.lookahead-(J-1);do d.ins_h=(d.ins_h<<d.hash_shift^d.window[e+J-1])&d.hash_mask,d.prev[e&d.w_mask]=d.head[d.ins_h],d.head[d.ins_h]=e,e++;while(--g);d.strstart=e;d.lookahead=J-1;p(d)}return d.strstart+=d.lookahead,d.block_start=d.strstart,d.insert=d.lookahead,d.lookahead=0,d.match_length=d.prev_length=J-1,d.match_available=0,b.next_in=n,b.input=m,b.avail_in=l,d.wrap=k,H};d.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,
@@ -179,8 +179,8 @@ c,d,e,f){this.static_tree=b;this.extra_bits=c;this.extra_base=d;this.elems=e;thi
0;do d|=1&b,b>>>=1,d<<=1;while(0<--c);return d>>>1}function p(b,c,d){var e,f=Array(W+1),k=0;for(e=1;e<=W;e++)f[e]=k=k+d[e-1]<<1;for(d=0;d<=c;d++)e=b[2*d+1],0!==e&&(b[2*d]=m(f[e]++,e))}function s(b){var c;for(c=0;c<H;c++)b.dyn_ltree[2*c]=0;for(c=0;c<N;c++)b.dyn_dtree[2*c]=0;for(c=0;c<K;c++)b.bl_tree[2*c]=0;b.dyn_ltree[2*U]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function r(b){8<b.bi_valid?k(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);b.bi_buf=0;b.bi_valid=0}function q(b,
c,d,e){var f=2*c,k=2*d;return b[f]<b[k]||b[f]===b[k]&&e[c]<=e[d]}function t(b,c,d){for(var e=b.heap[d],f=d<<1;f<=b.heap_len&&(f<b.heap_len&&q(c,b.heap[f+1],b.heap[f],b.depth)&&f++,!q(c,e,b.heap[f],b.depth));)b.heap[d]=b.heap[f],d=f,f<<=1;b.heap[d]=e}function u(b,c,d){var e,f,k,g,m=0;if(0!==b.last_lit){do e=b.pending_buf[b.d_buf+2*m]<<8|b.pending_buf[b.d_buf+2*m+1],f=b.pending_buf[b.l_buf+m],m++,0===e?n(b,f,c):(k=$[f],n(b,k+G+1,c),g=I[k],0!==g&&(f-=P[k],l(b,f,g)),e--,k=256>e?ca[e]:ca[256+(e>>>7)],
n(b,k,d),g=aa[k],0!==g&&(e-=X[k],l(b,e,g)));while(m<b.last_lit)}n(b,U,c)}function x(b,c){var d,e,f,k=c.dyn_tree;e=c.stat_desc.static_tree;var g=c.stat_desc.has_stree,l=c.stat_desc.elems,n=-1;b.heap_len=0;b.heap_max=S;for(d=0;d<l;d++)0!==k[2*d]?(b.heap[++b.heap_len]=n=d,b.depth[d]=0):k[2*d+1]=0;for(;2>b.heap_len;)f=b.heap[++b.heap_len]=2>n?++n:0,k[2*f]=1,b.depth[f]=0,b.opt_len--,g&&(b.static_len-=e[2*f+1]);c.max_code=n;for(d=b.heap_len>>1;1<=d;d--)t(b,k,d);f=l;do d=b.heap[1],b.heap[1]=b.heap[b.heap_len--],
-t(b,k,1),e=b.heap[1],b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,k[2*f]=k[2*d]+k[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,k[2*d+1]=k[2*e+1]=f,b.heap[1]=f++,t(b,k,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,r,g=c.dyn_tree,l=c.max_code,q=c.stat_desc.static_tree,s=c.stat_desc.has_stree,B=c.stat_desc.extra_bits,u=c.stat_desc.extra_base,x=c.stat_desc.max_length,v=0;for(e=0;e<=W;e++)b.bl_count[e]=0;g[2*b.heap[b.heap_max]+1]=0;for(d=b.heap_max+1;d<S;d++)f=b.heap[d],
-e=g[2*g[2*f+1]+1]+1,e>x&&(e=x,v++),g[2*f+1]=e,f>l||(b.bl_count[e]++,m=0,f>=u&&(m=B[f-u]),r=g[2*f],b.opt_len+=r*(e+m),s&&(b.static_len+=r*(q[2*f+1]+m)));if(0!==v){do{for(e=x-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[x]--;v-=2}while(0<v);for(e=x;0!==e;e--)for(f=b.bl_count[e];0!==f;)m=b.heap[--d],m>l||(g[2*m+1]!==e&&(b.opt_len+=(e-g[2*m+1])*g[2*m],g[2*m+1]=e),f--)}p(k,n,b.bl_count)}function v(b,c,d){var e,f,k=-1,g=c[1],l=0,n=7,m=4;0===g&&(n=138,m=3);c[2*(d+1)+1]=65535;for(e=
+t(b,k,1),e=b.heap[1],b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,k[2*f]=k[2*d]+k[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,k[2*d+1]=k[2*e+1]=f,b.heap[1]=f++,t(b,k,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,r,g=c.dyn_tree,l=c.max_code,s=c.stat_desc.static_tree,q=c.stat_desc.has_stree,B=c.stat_desc.extra_bits,u=c.stat_desc.extra_base,x=c.stat_desc.max_length,v=0;for(e=0;e<=W;e++)b.bl_count[e]=0;g[2*b.heap[b.heap_max]+1]=0;for(d=b.heap_max+1;d<S;d++)f=b.heap[d],
+e=g[2*g[2*f+1]+1]+1,e>x&&(e=x,v++),g[2*f+1]=e,f>l||(b.bl_count[e]++,m=0,f>=u&&(m=B[f-u]),r=g[2*f],b.opt_len+=r*(e+m),q&&(b.static_len+=r*(s[2*f+1]+m)));if(0!==v){do{for(e=x-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[x]--;v-=2}while(0<v);for(e=x;0!==e;e--)for(f=b.bl_count[e];0!==f;)m=b.heap[--d],m>l||(g[2*m+1]!==e&&(b.opt_len+=(e-g[2*m+1])*g[2*m],g[2*m+1]=e),f--)}p(k,n,b.bl_count)}function v(b,c,d){var e,f,k=-1,g=c[1],l=0,n=7,m=4;0===g&&(n=138,m=3);c[2*(d+1)+1]=65535;for(e=
0;e<=d;e++)f=g,g=c[2*(e+1)+1],++l<n&&f===g||(l<m?b.bl_tree[2*f]+=l:0!==f?(f!==k&&b.bl_tree[2*f]++,b.bl_tree[2*B]++):10>=l?b.bl_tree[2*Y]++:b.bl_tree[2*L]++,l=0,k=f,0===g?(n=138,m=3):f===g?(n=6,m=3):(n=7,m=4))}function z(b,c,d){var e,f,k=-1,g=c[1],m=0,p=7,r=4;0===g&&(p=138,r=3);for(e=0;e<=d;e++)if(f=g,g=c[2*(e+1)+1],!(++m<p&&f===g)){if(m<r){do n(b,f,b.bl_tree);while(0!==--m)}else 0!==f?(f!==k&&(n(b,f,b.bl_tree),m--),n(b,B,b.bl_tree),l(b,m-3,2)):10>=m?(n(b,Y,b.bl_tree),l(b,m-3,3)):(n(b,L,b.bl_tree),
l(b,m-11,7));m=0;k=f;0===g?(p=138,r=3):f===g?(p=6,r=3):(p=7,r=4)}}function y(b){var c,d=4093624447;for(c=0;31>=c;c++,d>>>=1)if(1&d&&0!==b.dyn_ltree[2*c])return D;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return C;for(c=32;c<G;c++)if(0!==b.dyn_ltree[2*c])return C;return D}function E(b,c,d,e){l(b,(F<<1)+(e?1:0),3);r(b);k(b,d);k(b,~d);A.arraySet(b.pending_buf,b.window,c,d,b.pending);b.pending+=d}var A=b("../utils/common"),D=0,C=1,F=0,G=256,H=G+1+29,N=30,K=19,S=2*H+1,W=15,da=16,
U=256,B=16,Y=17,L=18,I=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],aa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],M=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],J=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],O=Array(2*(H+2));e(O);var R=Array(2*N);e(R);var ca=Array(512);e(ca);var $=Array(256);e($);var P=Array(29);e(P);var X=Array(N);e(X);var Z,T,Q,ha=!1;d._tr_init=function(b){if(!ha){var c,d,e,k=Array(W+1);for(e=d=0;28>e;e++){P[e]=d;for(c=0;c<1<<I[e];c++)$[d++]=
@@ -198,7 +198,7 @@ if(null==window.mxLanguages){window.mxLanguages=[];for(var lang in mxLanguageMap
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local)urlParams.analytics="0",urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0";if("1"==urlParams.offline||"1"==urlParams.local)urlParams.math="0";var host=window.location.host,searchString="draw.io",position=host.length-searchString.length,lastIndex=host.lastIndexOf(searchString,position);-1!==lastIndex&&lastIndex===position&&"test.draw.io"!=host&&(window.DRAWIO_LOG_URL="https://log.draw.io");
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||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];
-var mxClient={VERSION:"3.7.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+var mxClient={VERSION:"3.7.0.1",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@@ -241,25 +241,25 @@ null;if("object"==typeof b)for(var d=mxUtils.indexOf(b,a);0<=d;)b.splice(d,1),c=
b&&c.push(d),d=d.nextSibling;return c},importNode:function(a,b,c){if(mxClient.IS_IE&&(null==document.documentMode||10>document.documentMode))switch(b.nodeType){case 1:var d=a.createElement(b.nodeName);if(b.attributes&&0<b.attributes.length){for(var e=0;e<b.attributes.length;e++)d.setAttribute(b.attributes[e].nodeName,b.getAttribute(b.attributes[e].nodeName));if(c&&b.childNodes&&0<b.childNodes.length)for(e=0;e<b.childNodes.length;e++)d.appendChild(mxUtils.importNode(a,b.childNodes[e],c))}return d;
case 3:case 4:case 8:return a.createTextNode(b.value)}else return a.importNode(b,c)},createXmlDocument:function(){var a=null;document.implementation&&document.implementation.createDocument?a=document.implementation.createDocument("","",null):window.ActiveXObject&&(a=new ActiveXObject("Microsoft.XMLDOM"));return a},parseXml:function(){return window.DOMParser?function(a){return(new DOMParser).parseFromString(a,"text/xml")}:function(a){var b=mxUtils.createXmlDocument();b.async=!1;b.validateOnParse=!1;
b.resolveExternals=!1;b.loadXML(a);return b}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:function(){}}(),getPrettyXml:function(a,b,c){var d=[];if(null!=a)if(b=b||" ",c=c||"",a.nodeType==mxConstants.NODETYPE_TEXT)d.push(a.value);else{d.push(c+"\x3c"+a.nodeName);var e=a.attributes;if(null!=e)for(var f=0;f<e.length;f++){var g=mxUtils.htmlEntities(e[f].value);d.push(" "+e[f].nodeName+
-'\x3d"'+g+'"')}e=a.firstChild;if(null!=e){for(d.push("\x3e\n");null!=e;)d.push(mxUtils.getPrettyXml(e,b,c+b)),e=e.nextSibling;d.push(c+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=(a||"").replace(/&/g,
-"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==b||b)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return c.replace(/\n/g,b||"\x26#xa;")},extractTextWithWhitespace:function(a){for(var b=
-!1,c=[],d=0;a[d];d++){var e=a[d];if(3===e.nodeType||4===e.nodeType){if(11==document.documentMode&&d==a.length-1&&0==e.nodeValue.length)break;c.push(e.nodeValue+(null==e.nextSibling||3!=e.nextSibling.nodeType?"\n":""));b=!0}else 8!==e.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==e.nodeName&&0==e.innerHTML.length||!b&&"BR"==e.nodeName||"DIV"==e.nodeName&&"\x3cbr\x3e"==e.innerHTML?c.push("\n"):c.push(mxUtils.extractTextWithWhitespace(e.childNodes)),b=!1)}return c.join("")},replaceTrailingNewlines:function(a,
-b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),
-getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("\x3c"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('\x3d"'),b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/\x3e"):(b.push("\x3e"),b.push(a.innerHTML),b.push("\x3c/"+a.nodeName+"\x3e"));return b.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):
-""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});
-return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=
-document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},fit:function(a){var b=parseInt(a.offsetLeft),c=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),e=d.x,d=d.y,f=document.body,g=document.documentElement,k=e+(f.clientWidth||g.clientWidth);b+c>k&&(a.style.left=Math.max(e,k-c)+"px");b=parseInt(a.offsetTop);
-c=parseInt(a.offsetHeight);f=d+Math.max(f.clientHeight||0,g.clientHeight);b+c>f&&(a.style.top=Math.max(d,f-c)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&
-b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==
-a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)if(e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e)))d[e]=!c&&"object"==typeof a[e]?mxUtils.clone(a[e]):a[e]}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(a[c]==b[c]||null!=a[c]&&!a[c].equals(b[c]))return!1;
-return!0},equalEntries:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){var c=0,d;for(d in b)c++;for(d in a)if(c--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(b[d]))&&a[d]!=b[d])return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=
-b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" \x3d [null]\n";else if("function"==typeof a[c])b+=c+" \x3d\x3e [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" \x3d\x3e ["+d+"]\n");else b+=c+" \x3d "+a[c]+"\n"}catch(e){b+=c+"\x3d"+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,
-k,l){k-=a;l-=b;if(0===c||0===d)return s;c=Math.abs(c);d=Math.abs(d);var n=-k/2,m=-l/2,p=Math.cos(e*Math.PI/180),s=Math.sin(e*Math.PI/180);e=p*n+s*m;var n=-1*s*n+p*m,m=e*e,r=n*n,q=c*c,t=d*d,u=m/q+r/t;1<u?(c*=Math.sqrt(u),d*=Math.sqrt(u),f=0):(u=1,f===g&&(u=-1),f=u*Math.sqrt((q*t-q*r-t*m)/(q*r+t*m)));m=f*c*n/d;r=-1*f*d*e/c;k=p*m-s*r+k/2;l=s*m+p*r+l/2;q=Math.atan2((n-r)/d,(e-m)/c)-Math.atan2(0,1);f=0<=q?q:2*Math.PI+q;q=Math.atan2((-n-r)/d,(-e-m)/c)-Math.atan2((n-r)/d,(e-m)/c);e=0<=q?q:2*Math.PI+q;0==
-g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;n=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);m=p*c;p*=d;c*=s;d*=s;for(var x=Math.cos(f),v=Math.sin(f),r=-n*(m*v+d*x),q=-n*(c*v-p*x),s=[],z=0;z<g;++z){f+=e;var x=Math.cos(f),v=Math.sin(f),t=m*x-d*v+k,u=c*x+p*v+l,y=-n*(m*v+d*x),x=-n*(c*v-p*x),v=6*z;s[v]=Number(r+a);s[v+1]=Number(q+b);s[v+2]=Number(t-y+a);s[v+3]=Number(u-x+b);s[v+4]=Number(t+a);s[v+5]=Number(u+b);r=t+y;q=u+x}return s},getBoundingBox:function(a,
-b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,
-g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<
-c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=
-mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},
+'\x3d"'+g+'"')}e=a.firstChild;if(null!=e){for(d.push("\x3e\n");null!=e;)d.push(mxUtils.getPrettyXml(e,b,c+b)),e=e.nextSibling;d.push(c+"\x3c/"+a.nodeName+"\x3e\n")}else d.push("/\x3e\n")}return d.join("")},removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=String(a||"");
+a=a.replace(/&/g,"\x26amp;");a=a.replace(/"/g,"\x26quot;");a=a.replace(/\'/g,"\x26#39;");a=a.replace(/</g,"\x26lt;");a=a.replace(/>/g,"\x26gt;");if(null==b||b)a=a.replace(/\n/g,"\x26#xa;");return a},isVml:function(a){return null!=a&&"urn:schemas-microsoft-com:vml"==a.tagUrn},getXml:function(a,b){var c="";null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,"\x3e").replace(/\r\n/g,"\n"));return c.replace(/\n/g,b||"\x26#xa;")},
+extractTextWithWhitespace:function(a){for(var b=!1,c=[],d=0;a[d];d++){var e=a[d];if(3===e.nodeType||4===e.nodeType){if(11==document.documentMode&&d==a.length-1&&0==e.nodeValue.length)break;c.push(e.nodeValue+(null==e.nextSibling||3!=e.nextSibling.nodeType?"\n":""));b=!0}else 8!==e.nodeType&&((mxClient.IS_IE||mxClient.IS_IE11)&&"P"==e.nodeName&&0==e.innerHTML.length||!b&&"BR"==e.nodeName||"DIV"==e.nodeName&&"\x3cbr\x3e"==e.innerHTML?c.push("\n"):c.push(mxUtils.extractTextWithWhitespace(e.childNodes)),
+b=!1)}return c.join("")},replaceTrailingNewlines:function(a,b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:""}:function(a){return null!=
+a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("\x3c"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('\x3d"'),b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/\x3e"):(b.push("\x3e"),b.push(a.innerHTML),b.push("\x3c/"+a.nodeName+"\x3e"));return b.join("")}return""}:
+function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");
+mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+mxClient.imageBasePath+"/transparent.gif', sizingMethod\x3d'scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,
+b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},fit:function(a){var b=parseInt(a.offsetLeft),c=parseInt(a.offsetWidth),d=mxUtils.getDocumentScrollOrigin(a.ownerDocument),e=d.x,d=d.y,f=document.body,g=document.documentElement,k=e+(f.clientWidth||g.clientWidth);
+b+c>k&&(a.style.left=Math.max(e,k-c)+"px");b=parseInt(a.offsetTop);c=parseInt(a.offsetHeight);f=d+Math.max(f.clientHeight||0,g.clientHeight);b+c>f&&(a.style.top=Math.max(d,f-c)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f){a=new mxXmlRequest(a,null,"GET");null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,
+function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||
+0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)if(e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e)))d[e]=!c&&"object"==typeof a[e]?mxUtils.clone(a[e]):a[e]}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=
+a&&null!=b)for(var c=0;c<a.length;c++)if(a[c]==b[c]||null!=a[c]&&!a[c].equals(b[c]))return!1;return!0},equalEntries:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){var c=0,d;for(d in b)c++;for(d in a)if(c--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(b[d]))&&a[d]!=b[d])return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==
+typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" \x3d [null]\n";else if("function"==typeof a[c])b+=c+" \x3d\x3e [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" \x3d\x3e ["+d+"]\n");else b+=c+" \x3d "+a[c]+"\n"}catch(e){b+=c+"\x3d"+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*
+a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,k,l){k-=a;l-=b;if(0===c||0===d)return s;c=Math.abs(c);d=Math.abs(d);var n=-k/2,m=-l/2,p=Math.cos(e*Math.PI/180),s=Math.sin(e*Math.PI/180);e=p*n+s*m;var n=-1*s*n+p*m,m=e*e,r=n*n,q=c*c,t=d*d,u=m/q+r/t;1<u?(c*=Math.sqrt(u),d*=Math.sqrt(u),f=0):(u=1,f===g&&(u=-1),f=u*Math.sqrt((q*t-q*r-t*m)/(q*r+t*m)));m=f*c*n/d;r=-1*f*d*e/c;k=p*m-s*r+k/2;l=s*m+p*r+l/2;q=Math.atan2((n-r)/d,(e-m)/c)-Math.atan2(0,1);f=0<=q?q:2*Math.PI+q;q=Math.atan2((-n-r)/d,(-e-m)/c)-Math.atan2((n-
+r)/d,(e-m)/c);e=0<=q?q:2*Math.PI+q;0==g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;n=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);m=p*c;p*=d;c*=s;d*=s;for(var x=Math.cos(f),v=Math.sin(f),r=-n*(m*v+d*x),q=-n*(c*v-p*x),s=[],z=0;z<g;++z){f+=e;var x=Math.cos(f),v=Math.sin(f),t=m*x-d*v+k,u=c*x+p*v+l,y=-n*(m*v+d*x),x=-n*(c*v-p*x),v=6*z;s[v]=Number(r+a);s[v+1]=Number(q+b);s[v+2]=Number(t-y+a);s[v+3]=Number(u-x+b);s[v+4]=Number(t+a);s[v+5]=Number(u+b);r=t+y;q=
+u+x}return s},getBoundingBox:function(a,b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,
+b.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,
+0));a=0;45<c?(a=1,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;
+case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},
reversePortConstraints:function(a){var b=0,b=(a&mxConstants.DIRECTION_MASK_WEST)<<3,b=b|(a&mxConstants.DIRECTION_MASK_NORTH)<<1,b=b|(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,k.x,k.y,b,c);if(null==f||e<f)f=e,d=g-1;e=k}return d},rectangleIntersectsSegment:function(a,
b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,k=a.y,l=b.x,n=b.y,e=e+l,f=f+n,c=c+
g,d=d+k;return(e<l||e>g)&&(f<n||f>k)&&(c<g||c>l)&&(d<k||d>n)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,n=a.height,m=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<m&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+m/2,n=m):(g=a.x+m/2,l=m));l=Math.max(e,l*d);n=Math.max(e,n*d);0<f&&(l=Math.min(l,f),n=Math.min(n,f));d=new mxRectangle(g-l/2,k-n/2,l,n);g=mxUtils.toRadians(mxUtils.getValue(a.style,
@@ -1652,8 +1652,8 @@ g=this.getAlignmentTolerance();if(0<g){var k=this.graph.view.getState(b);if(null
mxConnectionHandler.prototype.createEdge=function(a,b,c,d){var e=null;null!=this.factoryMethod&&(e=this.factoryMethod(b,c,d));null==e&&(e=new mxCell(a||""),e.setEdge(!0),e.setStyle(d),a=new mxGeometry,a.relative=!0,e.setGeometry(a));return e};
mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.marker&&(this.marker.destroy(),this.marker=null);null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null);null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),
this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null)};
-function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,c){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)&&this.reset()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);mxConstraintHandler.prototype.graph=null;
-mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
+function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,c){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)?this.reset():this.redraw()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);
+mxConstraintHandler.prototype.graph=null;mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null);this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null};mxConstraintHandler.prototype.getTolerance=function(a){return this.graph.getTolerance()};
mxConstraintHandler.prototype.getImageForConstraint=function(a,b,c){return this.pointImage};mxConstraintHandler.prototype.isEventIgnored=function(a,b){return!1};mxConstraintHandler.prototype.isStateIgnored=function(a,b){return!1};mxConstraintHandler.prototype.destroyIcons=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusPoints=this.focusIcons=null}};
mxConstraintHandler.prototype.destroyFocusHighlight=function(){null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)};mxConstraintHandler.prototype.isKeepFocusEvent=function(a){return mxEvent.isShiftDown(a.getEvent())};
@@ -1662,6 +1662,8 @@ mxConstraintHandler.prototype.update=function(a,b,c,d){if(this.isEnabled()&&!thi
d));if(!this.isKeepFocusEvent(a)&&(null==this.currentFocusArea||null==this.currentFocus||null!=k||!this.graph.getModel().isVertex(this.currentFocus.cell)||!mxUtils.intersects(this.currentFocusArea,e))&&k!=this.currentFocus)this.currentFocus=this.currentFocusArea=null,this.setFocus(a,k,b);a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==k||this.currentFocus==k))for(var g=e.getCenterX(),l=e.getCenterY(),n=0;n<this.focusIcons.length;n++){var m=
g-this.focusIcons[n].bounds.getCenterX(),p=l-this.focusIcons[n].bounds.getCenterY(),m=m*m+p*p;if((this.intersects(this.focusIcons[n],e,b,c)||null!=d&&this.intersects(this.focusIcons[n],f,b,c))&&(null==a||m<a)){this.currentConstraint=this.constraints[n];this.currentPoint=this.focusPoints[n];a=m;m=this.focusIcons[n].bounds.clone();m.grow(mxConstants.HIGHLIGHT_SIZE);mxClient.IS_IE&&(m.grow(1),m.width-=1,m.height-=1);if(null==this.focusHighlight){p=this.createHighlightShape();p.dialect=this.graph.dialect==
mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;p.pointerEvents=!1;p.init(this.graph.getView().getOverlayPane());this.focusHighlight=p;var s=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:k});mxEvent.redirectMouseEvents(p.node,this.graph,s)}this.focusHighlight.bounds=m;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
+mxConstraintHandler.prototype.redraw=function(){if(null!=this.currentFocus&&null!=this.constraints&&null!=this.focusIcons){var a=this.graph.view.getState(this.currentFocus.cell);this.currentFocus=a;this.currentFocusArea=new mxRectangle(a.x,a.y,a.width,a.height);for(var b=0;b<this.constraints.length;b++){var c=this.graph.getConnectionPoint(a,this.constraints[b]),d=this.getImageForConstraint(a,this.constraints[b],c),d=new mxRectangle(Math.round(c.x-d.width/2),Math.round(c.y-d.height/2),d.width,d.height);
+this.focusIcons[b].bounds=d;this.focusIcons[b].redraw();this.currentFocusArea.add(this.focusIcons[b].bounds);this.focusPoints[b]=c}}};
mxConstraintHandler.prototype.setFocus=function(a,b,c){this.constraints=null!=b&&!this.isStateIgnored(b,c)&&this.graph.isCellConnectable(b.cell)?this.isEnabled()?this.graph.getAllConnectionConstraints(b,c)||[]:[]:null;if(null!=this.constraints){this.currentFocus=b;this.currentFocusArea=new mxRectangle(b.x,b.y,b.width,b.height);if(null!=this.focusIcons){for(c=0;c<this.focusIcons.length;c++)this.focusIcons[c].destroy();this.focusPoints=this.focusIcons=null}this.focusPoints=[];this.focusIcons=[];for(c=
0;c<this.constraints.length;c++){var d=this.graph.getConnectionPoint(b,this.constraints[c]),e=this.getImageForConstraint(b,this.constraints[c],d),f=e.src,e=new mxRectangle(Math.round(d.x-e.width/2),Math.round(d.y-e.height/2),e.width,e.height),f=new mxImageShape(e,f);f.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG;f.preserveImageAspect=!1;f.init(this.graph.getView().getDecoratorPane());(mxClient.IS_QUIRKS||8==document.documentMode)&&mxEvent.addListener(f.node,
"dragstart",function(a){mxEvent.consume(a);return!1});null!=f.node.previousSibling&&f.node.parentNode.insertBefore(f.node,f.node.parentNode.firstChild);e=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:b});f.redraw();mxEvent.redirectMouseEvents(f.node,this.graph,e);this.currentFocusArea.add(f.bounds);this.focusIcons.push(f);this.focusPoints.push(d)}this.currentFocusArea.grow(this.getTolerance(a))}else this.destroyIcons(),this.destroyFocusHighlight()};
@@ -2312,7 +2314,7 @@ a.length-1;0<=f;f--)if(0==f||a[f]!=e[f-1]){a[f].setAttribute("width",b);a[f].set
"_blank");break}}};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);
if(null!=g){var k=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,k):k,e=null!=e?Math.min(e,k):k;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;k=this.view.scale;e=e/k-(a?g.x:g.y);d=d/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var n=this.getCellGeometry(c[f].cell),d=d+l;null!=n&&(n=n.clone(),a?n.x=Math.round(d-n.width/2):n.y=Math.round(d-n.height/2),this.getModel().setGeometry(c[f].cell,
n))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var b=this.cloneCells(a),c=0;c<b.length;c++){var d=this.view.getState(a[c]);if(null!=d){var e=this.getCellGeometry(b[c]);null!=e&&e.relative&&(e.relative=!1,e.x=d.x/d.view.scale-d.view.translate.x,e.y=d.y/d.view.scale-d.view.translate.y)}}for(var d=new mxCodec,e=new mxGraphModel,f=e.getChildAt(e.getRoot(),
-0),c=0;c<a.length;c++)e.add(f,b[c]);return d.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:1;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;d=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),
+0),c=0;c<a.length;c++)e.add(f,b[c]);return d.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;d=f||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),
l=k.drawCellState;k.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&l.apply(this,arguments)};var n=this.view.scale,m=mxUtils.createXmlDocument(),p=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=a&&(null!=p.style?p.style.backgroundColor=a:p.setAttribute("style","background-color:"+a));null==m.createElementNS?(p.setAttribute("xmlns",mxConstants.NS_SVG),p.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/",
"xmlns:xlink",mxConstants.NS_XLINK);a=b/n;p.setAttribute("width",Math.ceil(d.width*a)+2*c+"px");p.setAttribute("height",Math.ceil(d.height*a)+2*c+"px");p.setAttribute("version","1.1");var r=p;e&&(r=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),r.setAttribute("transform","translate(0.5,0.5)"),p.appendChild(r));m.appendChild(p);m=new mxSvgCanvas2D(r);m.foOffset=e?-0.5:0;m.textOffset=e?-0.5:0;m.translate(Math.floor((c/b-d.x)/n),Math.floor((c/b-d.y)/n));var q=
m.createAlternateContent;m.createAlternateContent=function(a,b,c,d,e,f,g,k,l,n,m,p,r){var s=this.state;if(null!=this.foAltText&&(0==d||0!=s.fontSize&&f.length<5*d/s.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",Math.round((e+s.fontSize)/2));t.setAttribute("fill",s.fontColor||"black");t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(s.fontSize)+"px");t.setAttribute("font-family",s.fontFamily);(s.fontStyle&mxConstants.FONT_BOLD)==
@@ -2683,126 +2685,127 @@ q.substring(0,2)&&(q=q.substring(2),a+=' \x3ca href\x3d"https://drive.google.com
function(a,b,c,d,e,f,g){a=new ErrorDialog(this,a,b,c,d,e,f,g);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){f();null!=b&&b()},function(){f();null!=c&&c()},d,e)).container,
340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+
btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createPngDataUri=function(a,b){var c=a.toDataURL("image/png");if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/png"))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return c};EditorUi.prototype.saveCanvas=function(a,b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename,d=c.lastIndexOf(".");0<d&&(c=c.substring(0,d));
-c+=".png";d=this.createPngDataUri(a,b);this.saveData(c,"png",d.substring(d.lastIndexOf(",")+1),"image/png",!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d){if(window.MSBlobBuilder&&navigator.msSaveOrOpenBlob)d=
+c+=".png";d=this.createPngDataUri(a,b);this.saveData(c,"png",d.substring(d.lastIndexOf(",")+1),"image/png",!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d,e){if(window.MSBlobBuilder&&navigator.msSaveOrOpenBlob)d=
new MSBlobBuilder,d.append(a),a=d.getBlob(c),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height="380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);
-else if(!this.isOffline()&&mxClient.IS_SF)this.createEchoRequest(a,b,c,d).simulate(document,"_blank");else{var e=document.createElement("a");e.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));e.download=b;document.body.appendChild(e);mxClient.IS_SF&&e.setAttribute("target","_blank");try{e.click(),window.setTimeout(function(){URL.revokeObjectURL(e.href)},0),e.parentNode.removeChild(e)}catch(f){}}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,e,f){a="xml\x3d"+encodeURIComponent(a);
-return new mxXmlRequest(SAVE_URL,a+(null!=c?"\x26mime\x3d"+c:"")+(null!=e?"\x26format\x3d"+e:"")+(null!=f?"\x26base64\x3d"+f:"")+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):"")+(d?"\x26binary\x3d1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),f=Array(e),g=0;g<e;++g){for(var q=1024*g,t=Math.min(q+1024,d),u=Array(t-q),x=0;q<t;++x,++q)u[x]=c[q].charCodeAt(0);f[g]=new Uint8Array(u)}return new Blob(f,{type:b})};EditorUi.prototype.saveLocalFile=
-function(a,b,c,d){var e=!mxClient.IS_IOS||!navigator.standalone,f=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===typeof window.DropboxClient||"function"===typeof window.OneDriveClient);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):null!=c&&"image/"==c.substring(0,6)&&("image/svg"!=c.substring(0,9)||mxClient.IS_SVG)?!d||mxClient.IS_EDGE||11==document.documentMode||
-10==document.documentMode?(f.document.write('\x3chtml\x3e\x3cimg src\x3d"data:'+c+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a))+'"/\x3e\x3c/html\x3e'),f.document.close()):f.location.replace("data:"+c+";base64,"+a):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else e==App.MODE_DEVICE?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(f){this.exportFile(a,b,c,d,e,f)}))}catch(g){this.handleError(g)}}),mxUtils.bind(this,function(){this.hideDialog()}),
-mxResources.get("saveAs"),mxResources.get("download"),!1,!1,e);this.showDialog(b.container,380,f?280:160,!0,!0);b.init()};EditorUi.prototype.saveData=function(a,b,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}))};EditorUi.prototype.saveRequest=function(a,b,c){var d=!mxClient.IS_IOS||!navigator.standalone,e=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===
-typeof window.DropboxClient||"function"===typeof window.OneDriveClient);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var e=c("_blank"==d?null:a,d==App.MODE_DEVICE||null==d||"_blank"==d?"0":"1");null!=e&&(d==App.MODE_DEVICE||"_blank"==d?e.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(c){this.spinner.spin(document.body,mxResources.get("saving"))&&e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200>e.getStatus()||
-299<e.getStatus())this.handleError({message:mxResources.get("errorSavingFile")});else try{var f="pdf"==b?"application/pdf":"image/"+b;this.exportFile(e.getText(),a,f,!0,d,c)}catch(g){this.handleError(g)}}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,d);this.showDialog(a.container,380,e?280:160,!0,!0);a.init()};EditorUi.prototype.exportFile=function(a,b,c,d,e,f){};EditorUi.prototype.pickFolder=
-function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,e,f,g){if(this.spinner.spin(document.body,mxResources.get("export"))){var q=this.editor.graph.isSelectionEmpty();c=null!=c?c:q;q=b?null:this.editor.graph.background;q==mxConstants.NONE&&(q=null);null==q&&!1==b&&(q="#ffffff");var t=this.editor.graph.getSvg(q,a,null,g,null,c);d&&this.editor.addSvgShadow(t);a=this.getCurrentFile();var u=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;a=u.lastIndexOf(".");0<a&&(u=u.substring(0,
-a));var u=u+".svg",x=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,null,null,null,c));var b='\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(u,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});
-this.convertMath(this.editor.graph,t,!1,mxUtils.bind(this,function(){f?this.convertImages(t,x):x(t)}))}};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";f.setAttribute("type","checkbox");d.isSelectionEmpty()&&f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));mxUtils.br(e);var g=document.createElement("input");
-g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),null,a,b);this.showDialog(a.container,300,120,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e){var f=this.editor.graph,g=document.createElement("div");g.style.paddingTop="20px";g.style.paddingRight=
-"8px";var q=240,t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("type","checkbox");if(f.background==mxConstants.NONE||null==f.background)t.setAttribute("checked","checked"),t.defaultChecked=!0;g.appendChild(t);mxUtils.write(g,mxResources.get("transparentBackground"));mxUtils.br(g);var u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight="8px";u.setAttribute("type","checkbox");g.appendChild(u);mxUtils.write(g,mxResources.get("selectionOnly"));mxUtils.br(g);
-var x=document.createElement("input");x.style.marginTop="16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");e&&(g.appendChild(x),mxUtils.write(g,mxResources.get("crop")),mxUtils.br(g),q+=26);f.isSelectionEmpty()&&(u.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"));var v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");g.appendChild(v);mxUtils.write(g,mxResources.get("shadow"));mxUtils.br(g);
-f.shadowVisible&&(v.setAttribute("checked","checked"),v.defaultChecked=!0);var z=document.createElement("input");z.style.marginTop="16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");(this.isOffline()||!this.canvasSupported)&&z.setAttribute("disabled","disabled");a&&(g.appendChild(z),mxUtils.write(g,mxResources.get("embedImages")),mxUtils.br(g),q+=26);var y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight="8px";y.setAttribute("type","checkbox");y.style.marginBottom=
-"8px";y.setAttribute("checked","checked");y.defaultChecked=!0;g.appendChild(y);mxUtils.write(g,mxResources.get("includeCopyOfMyDiagram"));a=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,t.checked,!u.checked,v.checked,y.checked,z.checked,x.checked)}),mxResources.get("zoom")+" (%)",null,g,!this.isOffline()?c:null);this.showDialog(a.container,320,q,!0,!0);a.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop=
-"20px";c.style.paddingRight="8px";var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),q=document.createElement("td"),t=document.createElement("input");t.setAttribute("type","text");mxUtils.write(q,"Username:");g.appendChild(q);q=q.cloneNode(!1);q.appendChild(t);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),u=document.createElement("input");u.setAttribute("type","password");mxUtils.write(q,"Password:");g=g.cloneNode(!1);g.appendChild(q);
-q=q.cloneNode(!1);q.appendChild(u);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),x=document.createElement("input");x.setAttribute("type","text");mxUtils.write(q,"Organisation:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(x);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),v=document.createElement("input");v.setAttribute("type","text");mxUtils.write(q,"Repository:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(v);g.appendChild(q);f.appendChild(g);
-var q=q.cloneNode(!1),z=document.createElement("input");z.setAttribute("type","text");mxUtils.write(q,"Path:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(z);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var y=a.lastIndexOf(".");0<y&&(a=a.substring(0,y));z.value=a+".png";var E=document.createElement("input");E.setAttribute("type","text");mxUtils.write(q,"Branch/Tag:");E.value="master";
-g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(E);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),A=document.createElement("input");A.setAttribute("type","text");mxUtils.write(q,"Message:");A.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(A);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+
-x.value+"/"+v.value+"/contents/"+z.value+"?ref\x3d"+encodeURIComponent(E.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());var e={path:z.value,message:A.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+x.value+"/"+v.value+"/blob/"+E.value+"/"+z.value;
-var b=new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+
-btoa(t.value+":"+u.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause();c=!1;var f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+
-b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,g=f.lastIndexOf("."),s=f;0<g&&(s=f=s.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:s+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),u=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};
-try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();
-var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),
-function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var l=new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");l.send(mxUtils.bind(this,function(){200==l.getStatus()?k():u(l)}),mxUtils.bind(this,function(){u(l)}))}else k()}catch(p){this.handleError(p)}else u(a)}),mxUtils.bind(this,function(a){u(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,
-b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,q){d=parseInt(d);if(!isNaN(d)&&0<d){d/=100;var t=this.editor.graph.isSelectionEmpty();f=null!=f?f:t;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=q?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,
-e);a(c,g.substring(g.lastIndexOf(",")+1),q,b)}catch(m){this.handleError(m)}}),null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(u){this.handleError(u)}}})):this.showRemoteExportDialog(mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*
-f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var q=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));q.send(mxUtils.bind(this,function(){200==q.getStatus()?a(c,q.getText(),e,b):this.handleError(q)}))}catch(t){this.handleError(t)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);
-if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&
-(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':
-"")+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,f){if(this.spinner.spin(document.body,mxResources.get("exporting"))){var g=this.editor.graph.isSelectionEmpty();c=null!=c?c:g;try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c):null)}catch(b){"Invalid image"==b.message?this.downloadFile("png"):this.handleError(b)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),
-null,c,a||1,b,d,null,null,null,f)}catch(q){this.spinner.stop(),this.handleError(q)}}};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,q,t,u,x,v,z,y){f=null!=f?f:!0;v=null!=v?v:this.editor.graph;z=null!=z?z:0;var E=t?null:v.background;E==mxConstants.NONE&&(E=null);null==E&&(E=d);null==E&&!1==t&&(E="#ffffff");this.convertImages(v.getSvg(E,null,null,y,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),
-g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));q=null!=q?q:1;null!=b&&(q=!f?b/g:Math.min(1,Math.min(3*b/(4*m),b/g)));g=Math.ceil(q*g)+2*z;m=Math.ceil(q*m)+2*z;e.setAttribute("width",g);e.setAttribute("height",m);var n=e.getContext("2d");null!=E&&(n.beginPath(),n.rect(0,0,g,m),n.fillStyle=E,n.fill());n.scale(q,q);n.drawImage(d,z/q,z/q);a(e)});d.onerror=function(a){null!=e&&e(a)};try{u&&this.editor.addSvgShadow(c),this.convertMath(v,c,!0,mxUtils.bind(this,function(){d.src=
-this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,x)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,
-b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var n=a.getElementsByTagName(c),u=0;u<n.length;u++)mxUtils.bind(this,function(c){var n=d.convert(c.getAttribute(g));if(null!=n&&"data:"!=n.substring(0,5)){var r=f[n];null==r?(e++,this.convertImageToDataUri(n,function(d){null!=d&&(f[n]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,r)}})(n[u])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=
-function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var q=mxUtils.parseXml(a),
-t=this.editor.extractGraphModel(q.documentElement,null!=this.pages);if(null!=t&&"mxfile"==t.nodeName&&null!=this.pages){var u=t.getElementsByTagName("diagram");if(1==u.length)t=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(u[0]))).documentElement;else if(1<u.length){g.model.beginUpdate();try{for(var x=0;x<u.length;x++){var v=this.updatePageRoot(new DiagramPage(u[x])),z=this.pages.length;null==v.getName()&&v.setName(mxResources.get("pageWithNumber",[z+1]));g.model.execute(new ChangePage(this,
-v,v,z))}}finally{g.model.endUpdate()}}}if(null!=t&&"mxGraphModel"===t.nodeName){var y=new mxGraphModel;(new mxCodec(t.ownerDocument)).decode(t,y);var E=y.getChildCount(y.getRoot());g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};for(x=0;x<E;x++){var A=y.getChildAt(y.getRoot(),x);if(1==E&&!g.isCellLocked(g.getDefaultParent()))var D=y.getChildren(A),f=f.concat(g.importCells(D,b,c,g.getDefaultParent(),null,a));else A=g.importCells([A],0,0,g.model.getRoot(),null,a)[0],D=g.model.getChildren(A),
-g.moveCells(D,b,c),f=f.concat(D)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var C=g.getBoundingBoxFromGeometry(f,!0);null!=C&&g.moveCells(f,b-C.x,c-C.y)}}finally{g.model.endUpdate()}}}}catch(F){throw e||this.handleError(F,mxResources.get("invalidOrMissingFile")),F;}return f};EditorUi.prototype.insertLucidChart=function(a,b,c,d){var e=mxUtils.bind(this,function(){if(this.pasteLucidChart)try{this.pasteLucidChart(a,b,c,d)}catch(e){}});!this.pasteLucidChart&&!this.loadingExtensions&&!this.isOffline()?
-(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("/js/diagramly/Extensions.js",e):mxscript("/js/extensions.min.js",e)):window.setTimeout(e,0)};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,
-b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var q=this.extractGraphModelFromPng(a),t=this.importXml(q,b,c,f,!0);if(0<t.length)return t}if("data:image/svg+xml;"==a.substring(0,19))try{if(q=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(q=a.substring(a.indexOf(",")+1),q=window.atob&&!mxClient.IS_SF?atob(q):Base64.decode(q,!0)):q=decodeURIComponent(a.substring(a.indexOf(",")+
-1)),t=this.importXml(q,b,c,f,!0),0<t.length)return t}catch(u){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/
-d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),
-g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length)if('{"state":"{\\"Properties\\":'==a.substring(0,26)){e=JSON.parse(JSON.parse(a).state);var q=null,x;for(x in e.Pages)if(t=e.Pages[x],null!=t&&"0"==t.Properties.Order){q=t;break}null!=q&&this.insertLucidChart(q,b,c,f)}else{g=this.editor.graph;f=null;g.getModel().beginUpdate();
-try{f=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[f])),f.value=a,g.updateCellSize(f),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(f.value)&&g.setLinkForCell(f,f.value),f.geometry.width+=g.gridSize,f.geometry.height+=
-g.gridSize}finally{g.getModel().endUpdate()}return[f]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||
-null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,q,t,u,x){u=null!=u?u:!0;var v=!1,z=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=x?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(z=this.importXml(b,c,d,u),g=!0)),g||(z=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),u&&z.isGridEnabled()&&(c=z.snap(c),d=z.snap(d)),z=[z.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+
-a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(v=!0,this.parseFile(null!=t?t:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,c,d,u));null!=q&&q(b)}}),g)):/(\.vsd)($|\?)/i.test(g)||(z=this.insertTextAt(this.validateFileData(a),c,d,!0,null,u));!v&&null!=q&&q(z);return z};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=
-a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&
-15)<<2);b+="\x3d";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,q,t,u,x,v){var z=null!=b&&null!=
-c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;u=null!=u?u:this.maxImageBytes;t=null!=t?t:!0;var y=this.editor.graph,E=y.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):this.importFile(a,b,c,d,e,f,g,k,l,z,v)});f=null!=f?f:mxUtils.bind(this,function(a){y.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var A=
-a.length,D=A,C=[],F=mxUtils.bind(this,function(a,b){C[a]=b;if(0==--D){this.spinner.stop();if(null!=q)q(C);else{var c=[];y.getModel().beginUpdate();try{for(var d=0;d<C.length;d++){var e=C[d]();null!=e&&(c=c.concat(e))}}finally{y.getModel().endUpdate()}}f(c)}}),G=0;G<A;G++)mxUtils.bind(this,function(f){var q=a[f],s=new FileReader;s.onload=mxUtils.bind(this,function(a){if(null==g||g(q))if("image/"==q.type.substring(0,6))if("image/svg"==q.type.substring(0,9)){var k=a.target.result,s=k.indexOf(","),y=
-atob(k.substring(s+1)),A=mxUtils.parseXml(y),y=A.getElementsByTagName("svg");if(0<y.length){var y=y[0],z=v?null:y.getAttribute("content");null!=z&&"\x3c"!=z.charAt(0)&&"%"!=z.charAt(0)&&(z=unescape(window.atob?atob(z):Base64.decode(z,!0)));null!=z&&"%"==z.charAt(0)&&(z=decodeURIComponent(z));null!=z&&("\x3cmxfile "===z.substring(0,8)||"\x3cmxGraphModel "===z.substring(0,14))?F(f,mxUtils.bind(this,function(){return e(z,"text/xml",b+f*E,c+f*E,0,0,q.name)})):F(f,mxUtils.bind(this,function(){try{if(k.substring(0,
-s+1),null!=A){var a=A.getElementsByTagName("svg");if(0<a.length){var g=a[0],r=parseFloat(g.getAttribute("width")),t=parseFloat(g.getAttribute("height")),u=g.getAttribute("viewBox");if(null==u||0==u.length)g.setAttribute("viewBox","0 0 "+r+" "+t);else if(isNaN(r)||isNaN(t)){var x=u.split(" ");3<x.length&&(r=parseFloat(x[2]),t=parseFloat(x[3]))}k=this.createSvgDataUri(mxUtils.getXml(a[0]));var v=Math.min(1,Math.min(d/Math.max(1,r)),d/Math.max(1,t));return e(k,q.type,b+f*E,c+f*E,Math.max(1,Math.round(r*
-v)),Math.max(1,Math.round(t*v)),q.name)}}}catch(y){}return null}))}}else{y=!1;if("image/png"==q.type){var C=v?null:this.extractGraphModelFromPng(a.target.result);if(null!=C&&0<C.length){var D=new Image;D.src=a.target.result;F(f,mxUtils.bind(this,function(){return e(C,"text/xml",b+f*E,c+f*E,D.width,D.height,q.name)}));y=!0}}y||(null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),
-mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,k,r){F(f,mxUtils.bind(this,function(){if(null!=g&&g.length<u){var s=!t||!this.isResampleImage(a.target.result)?1:Math.min(1,Math.min(d/k,d/r));return e(g,q.type,b+f*E,c+f*E,Math.round(k*s),Math.round(r*s),q.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),t,d,x)})))}else e(a.target.result,q.type,b+f*E,c+f*E,240,160,q.name,function(a){F(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(q.name)?e(null,q.type,b+f*E,c+f*E,240,160,q.name,function(a){F(f,function(){return a})},q):"image"==q.type.substring(0,5)?s.readAsDataURL(q):s.readAsText(q)})(G)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=
-function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),q=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var t=Math.max(g/e,q/e);if(1<t){var u=Math.round(g/t),x=Math.round(q/t),v=document.createElement("canvas");v.width=u;v.height=x;v.getContext("2d").drawImage(a,0,0,u,x);var z=v.toDataURL();if(z.length<b.length){var y=
-document.createElement("canvas");y.width=u;y.height=x;var E=y.toDataURL();z!==E&&(b=z,g=u,q=x)}}}catch(A){}c(b,g,q)};EditorUi.prototype.crcTable=[];for(var b=0;256>b;b++)for(var c=b,d=0;8>d;d++)c=1==(c&1)?3988292384^c>>>1:c>>>1,EditorUi.prototype.crcTable[b]=c;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=q;q+=b;return a.substring(c,q)}
-function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var q=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,q);do{var t=g(a);if("IDAT"==f(a,4)){e=a.substring(0,q-8);t=4294967295;t=this.updateCRC(t,b,0,4);t=this.updateCRC(t,d,0,d.length);e+=String.fromCharCode(c.length+
-d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((t^4294967295)>>24&255,(t^4294967295)>>16&255,(t^4294967295)>>8&255,(t^4294967295)&255);e+=a.substring(q-8,a.length);break}e+=a.substring(q-8,q-4+t);d=f(a,t);f(a,4)}while(t);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=
-function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||
-"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var e=EditorUi.prototype.init;EditorUi.prototype.init=function(){e.apply(this,arguments);var a=this.editor.graph,b=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");
-var c=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:c.apply(this,arguments)};this.editor.getOrCreateFilename=function(){var a=b.defaultFilename,c=b.getCurrentFile();null!=c&&(a=null!=c.getTitle()?c.getTitle():a);return a};var d=this.actions.get("print");d.setEnabled(!mxClient.IS_IOS||!navigator.standalone);d.visible=d.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(70,
-!0,"find");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);mxClient.IS_IE||a.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,
-d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(l){}}),
-!1);var f=document.createElement("div");f.style.position="absolute";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.display="block";f.contentEditable=!0;mxUtils.setOpacity(f,0);f.style.width="1px";f.style.height="1px";f.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);if(null!=a.container&&
-a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var r=function(){window.setTimeout(function(){f.innerHTML=
-"\x26nbsp;";f.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&null==this.dialog&&null!=a.container&&a.container.focus(),f.parentNode.removeChild(f)}),0)}));mxEvent.addListener(f,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(f),r())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,
-function(b){a.isEnabled()&&(this.copyCells(f,!0),r())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML="\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var q=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:q.apply(this,arguments)}}d=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||
-0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,d,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||10<document.documentMode))d=this.highlightElement(c);
-a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");
-/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,
-"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){d=document.getElementById("geFooter");null!=d&&(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)})),d.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility=
-"hidden"})));var t=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:t.apply(this,arguments)}}d=document.getElementById("geInfo");null!=d&&d.parentNode.removeChild(d);if(Graph.fileSupport){var u=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=u&&(u.parentNode.removeChild(u),u=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==u&&
-(!mxClient.IS_IE||10<document.documentMode))u=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,"drop",mxUtils.bind(this,function(b){null!=u&&(u.parentNode.removeChild(u),u=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,
-f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b));else{var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,m=e.getElementsByTagName("img");null!=
-m&&1==m.length?(c=m[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,
-null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+l+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(l,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,g,!0))}}b.stopPropagation();b.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode()};
-EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");
-if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d=c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.insertLucidChart(JSON.parse(d)),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var g=e.lastIndexOf("%3E");0<=g&&g<e.length-3&&(e=e.substring(0,g+3))}catch(q){}try{var c=b.getElementsByTagName("span"),t=null!=c&&0<c.length?
-mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(t)&&(f=!0,e=t)}catch(u){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))),!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());
-null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(x){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=
-this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:
-a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==
-c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&this.openLocalFile(d)),!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();
-a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=
-c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,
-c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){var c=b.target.result,d=a.name;if(null!=d&&0<d.length)if(/(\.png)$/i.test(d)&&(d=d.substring(0,d.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,d))d=0<=d.lastIndexOf(".")?d.substring(0,d.lastIndexOf("."))+
-".xml":d+".xml",this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200==a.status?this.openLocalFile(a.responseText,d):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if("\x3cmxlibrary"==b.target.result.substring(0,10)){this.spinner.stop();try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}}else"image/png"==
-a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,d)});b.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?b.readAsDataURL(a):b.readAsText(a)})(a[b])};EditorUi.prototype.openLocalFile=function(a,b){var c=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);
-null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename))});null!=a&&0<a.length&&(null!=this.getCurrentFile()&&!this.isDiagramEmpty()?(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,c)):c())};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),
-this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var d=a.lastIndexOf(".");0<d&&(a=a.substring(d+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),
-c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.initializeEmbedMode=function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.editor.graph.setEnabled(!1);if((window.opener||window.parent)!=window)("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,
-function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.diagramContainer.style.visibility="";this.formatContainer.style.visibility="";this.editor.graph.setEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.showLayersDialog()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};
-EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=
-function(a){var b=null,c=!1,d=!1,e=null,f=mxUtils.bind(this,function(a,b){!this.editor.modified||"0"==urlParams.modified?this.editor.setStatus(""):null!=urlParams.modified&&this.editor.setStatus(mxResources.get(urlParams.modified))});this.editor.graph.model.addListener(mxEvent.CHANGE,f);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){function s(a){if(null!=a&&"function"===typeof a.charAt&&"\x3c"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):
-"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"\x3c"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(b){}return a}var u=f.data;if("json"==urlParams.proto){try{u=JSON.parse(u)}catch(x){u=null}if(null==u)return;if("dialog"==u.action){this.showError(null!=u.titleKey?mxResources.get(u.titleKey):u.title,null!=u.messageKey?mxResources.get(u.messageKey):u.message,null!=u.buttonKey?mxResources.get(u.buttonKey):u.button);null!=
-u.modified&&(this.editor.modified=u.modified);return}if("prompt"==u.action){var v=new FilenameDialog(this,u.defaultValue||"",null!=u.okKey?mxResources.get(u.okKey):null,function(a){null!=a&&g.postMessage(JSON.stringify({event:"prompt",value:a,message:u}),"*")},null!=u.titleKey?mxResources.get(u.titleKey):u.title);this.showDialog(v.container,300,80,!0,!1);v.init();return}if("draft"==u.action){v=null;v="data:image/png;base64,"==u.xml.substring(0,22)?this.extractGraphModelFromPng(u.xml):s(u.xml);v=new DraftDialog(this,
-mxResources.get("draftFound",[u.name||this.defaultFilename]),v,mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"edit",message:u}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"discard",message:u}),"*")}),u.editKey?mxResources.get(u.editKey):null,u.discardKey?mxResources.get(u.discardKey):null);this.showDialog(v.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
-try{v.init()}catch(z){g.postMessage(JSON.stringify({event:"draft",error:z.toString(),message:u}),"*")}return}if("template"==u.action){v=new NewDialog(this,!1,null!=u.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=u.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}));this.showDialog(v.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&
-this.actions.get("exit").funct()}));v.init();return}if("status"==u.action){null!=u.messageKey?this.editor.setStatus(mxResources.get(u.messageKey)):null!=u.message&&this.editor.setStatus(u.message);null!=u.modified&&(this.editor.modified=u.modified);return}if("spinner"==u.action){var y=null!=u.messageKey?mxResources.get(u.messageKey):u.message;null!=u.show&&!u.show?this.spinner.stop():this.spinner.spin(document.body,y);return}if("export"==u.action){if("png"==u.format||"xmlpng"==u.format){if(null==
-u.spin&&null==u.spinKey||this.spinner.spin(document.body,null!=u.spinKey?mxResources.get(u.spinKey):u.spin)){var E=null!=u.xml?u.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var A=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=u.format;b.xml=encodeURIComponent(E);b.data="data:image/png;base64,"+a;g.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var D=this.editor.graph;if(null!=this.pages&&this.currentPage!=
-this.pages[0]){var D=this.createTemporaryGraph(D.getStylesheet()),C=D.getGlobalVariable,F=this.pages[0];D.getGlobalVariable=function(a){return"page"==a?F.getName():"pagenumber"==a?1:C.apply(this,arguments)};document.body.appendChild(D.container);D.model.setRoot(F.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");"xmlpng"==u.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(E))));D!=this.editor.graph&&D.container.parentNode.removeChild(D.container);
-A(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,null,null,D)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==u.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(E)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();200==a.getStatus()&&A(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=u.xml&&0<u.xml.length&&this.setFileData(u.xml);y=this.createLoadMessage("export");
-if("html2"==u.format||"html"==u.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))v=this.getXmlFileData(),y.xml=mxUtils.getXml(v),y.data=this.getFileData(null,null,!0,null,null,null,v),y.format=u.format;else if("html"==u.format)E=this.editor.getGraphXml(),y.data=this.getHtml(E,this.editor.graph),y.xml=mxUtils.getXml(E),y.format=u.format;else{mxSvgCanvas2D.prototype.foAltText=null;v=this.editor.graph.background;v==mxConstants.NONE&&(v=null);y.xml=this.getFileData(!0);y.format="svg";
-if(u.embedImages||null==u.embedImages){if(null==u.spin&&null==u.spinKey||this.spinner.spin(document.body,null!=u.spinKey?mxResources.get(u.spinKey):u.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==u.format?this.getEmbeddedSvg(y.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();y.data=this.createSvgDataUri(a);g.postMessage(JSON.stringify(y),"*")})):this.convertImages(this.editor.graph.getSvg(v),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();y.data=this.createSvgDataUri(mxUtils.getXml(a));g.postMessage(JSON.stringify(y),"*")}));return}v="xmlsvg"==u.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(v));y.data=this.createSvgDataUri(v)}g.postMessage(JSON.stringify(y),"*")}return}if("load"==u.action)d=1==u.autosave,this.hideDialog(),null!=u.modified&&null==urlParams.modified&&(urlParams.modified=u.modified),null!=u.saveAndExit&&null==urlParams.saveAndExit&&
-(urlParams.saveAndExit=u.saveAndExit),null!=u.title&&null!=this.buttonContainer&&(v=document.createElement("span"),mxUtils.write(v,u.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),this.buttonContainer.appendChild(v)),u=null!=u.xmlpng?this.extractGraphModelFromPng(u.xmlpng):null!=u.xml&&"data:image/png;base64,"==u.xml.substring(0,22)?this.extractGraphModelFromPng(u.xml):
-u.xml;else{g.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(u)}),"*");return}}u=s(u);c=!0;try{a(u,f)}catch(G){this.handleError(G)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var H=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=H();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=H();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;
-d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",
-b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));("1"==urlParams.returnbounds||"json"==urlParams.proto)&&g.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}));var g=window.opener||window.parent,f="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";g.postMessage(f,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position=
-"absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" (Ctrl+S)");b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&
-(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft=
-"6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px";"atlas"==uiTheme&&(this.statusContainer.style.color="#707070",this.statusContainer.style.paddingLeft="26px",this.toolbar.staticElements.push(this.statusContainer),this.toolbar.container.appendChild(this.statusContainer))}};
-EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"\x3d"+urlParams[d],c="\x26")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),
+else{var f=document.createElement("a");if("undefined"!==typeof f.download||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));"undefined"!==typeof f.download?f.download=b:f.setAttribute("target","_blank");document.body.appendChild(f);try{f.click(),window.setTimeout(function(){URL.revokeObjectURL(f.href)},0),f.parentNode.removeChild(f)}catch(g){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,
+b,c,d,e,f){a="xml\x3d"+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"\x26mime\x3d"+c:"")+(null!=e?"\x26format\x3d"+e:"")+(null!=f?"\x26base64\x3d"+f:"")+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):"")+(d?"\x26binary\x3d1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),f=Array(e),g=0;g<e;++g){for(var q=1024*g,t=Math.min(q+1024,d),u=Array(t-q),x=0;q<t;++x,++q)u[x]=c[q].charCodeAt(0);f[g]=new Uint8Array(u)}return new Blob(f,
+{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,e){var f=!mxClient.IS_IOS||!navigator.standalone;e=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===typeof window.DropboxClient||"function"===typeof window.OneDriveClient);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):null!=c&&"image/"==c.substring(0,6)&&("image/svg"!=c.substring(0,9)||mxClient.IS_SVG)?
+mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode?(f.document.write('\x3chtml\x3e\x3cimg src\x3d"data:'+c+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a))+'"/\x3e\x3c/html\x3e'),f.document.close()):f.location.replace("data:"+c+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a))):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else e==App.MODE_DEVICE?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(f){this.exportFile(a,
+b,c,d,e,f)}))}catch(g){this.handleError(g)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,f);this.showDialog(b.container,380,e?280:160,!0,!0);b.init()};EditorUi.prototype.saveData=function(a,b,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}))};EditorUi.prototype.saveRequest=function(a,b,c){var d=!mxClient.IS_IOS||!navigator.standalone,
+e=!this.isOfflineApp()&&!this.isOffline()&&("function"===typeof window.DriveClient||"function"===typeof window.DropboxClient||"function"===typeof window.OneDriveClient);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0<a.length){var e=c("_blank"==d?null:a,d==App.MODE_DEVICE||null==d||"_blank"==d?"0":"1");null!=e&&(d==App.MODE_DEVICE||"_blank"==d?e.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(c){this.spinner.spin(document.body,mxResources.get("saving"))&&
+e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200>e.getStatus()||299<e.getStatus())this.handleError({message:mxResources.get("errorSavingFile")});else try{var f="pdf"==b?"application/pdf":"image/"+b;this.exportFile(e.getText(),a,f,!0,d,c)}catch(g){this.handleError(g)}}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,d);this.showDialog(a.container,380,e?280:160,!0,
+!0);a.init()};EditorUi.prototype.exportFile=function(a,b,c,d,e,f){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,e,f,g){if(this.spinner.spin(document.body,mxResources.get("export"))){var q=this.editor.graph.isSelectionEmpty();c=null!=c?c:q;q=b?null:this.editor.graph.background;q==mxConstants.NONE&&(q=null);null==q&&!1==b&&(q="#ffffff");var t=this.editor.graph.getSvg(q,a,null,g,null,c);d&&this.editor.addSvgShadow(t);a=this.getCurrentFile();var u=
+null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;a=u.lastIndexOf(".");0<a&&(u=u.substring(0,a));var u=u+".svg",x=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,null,null,null,c));var b='\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(u,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},
+mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,t,!1,mxUtils.bind(this,function(){f?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(t,x,this.thumbImageCache)):x(t)}))}};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";f.setAttribute("type","checkbox");d.isSelectionEmpty()&&
+f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));mxUtils.br(e);var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),null,a,b);this.showDialog(a.container,300,120,
+!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e){var f=this.editor.graph,g=document.createElement("div");g.style.paddingTop="20px";g.style.paddingRight="8px";var q=240,t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("type","checkbox");if(f.background==mxConstants.NONE||null==f.background)t.setAttribute("checked","checked"),t.defaultChecked=!0;g.appendChild(t);mxUtils.write(g,mxResources.get("transparentBackground"));mxUtils.br(g);var u=document.createElement("input");
+u.style.marginTop="16px";u.style.marginRight="8px";u.setAttribute("type","checkbox");g.appendChild(u);mxUtils.write(g,mxResources.get("selectionOnly"));mxUtils.br(g);var x=document.createElement("input");x.style.marginTop="16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");e&&(g.appendChild(x),mxUtils.write(g,mxResources.get("crop")),mxUtils.br(g),q+=26);f.isSelectionEmpty()&&(u.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"));var v=document.createElement("input");
+v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");g.appendChild(v);mxUtils.write(g,mxResources.get("shadow"));mxUtils.br(g);f.shadowVisible&&(v.setAttribute("checked","checked"),v.defaultChecked=!0);var z=document.createElement("input");z.style.marginTop="16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");(this.isOffline()||!this.canvasSupported)&&z.setAttribute("disabled","disabled");a&&(g.appendChild(z),mxUtils.write(g,mxResources.get("embedImages")),
+mxUtils.br(g),q+=26);var y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight="8px";y.setAttribute("type","checkbox");y.style.marginBottom="8px";y.setAttribute("checked","checked");y.defaultChecked=!0;g.appendChild(y);mxUtils.write(g,mxResources.get("includeCopyOfMyDiagram"));a=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,t.checked,!u.checked,v.checked,y.checked,z.checked,x.checked)}),mxResources.get("zoom")+" (%)",null,g,!this.isOffline()?c:null);this.showDialog(a.container,
+320,q,!0,!0);a.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop="20px";c.style.paddingRight="8px";var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),q=document.createElement("td"),t=document.createElement("input");t.setAttribute("type","text");mxUtils.write(q,"Username:");g.appendChild(q);q=q.cloneNode(!1);q.appendChild(t);g.appendChild(q);f.appendChild(g);var q=
+q.cloneNode(!1),u=document.createElement("input");u.setAttribute("type","password");mxUtils.write(q,"Password:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(u);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),x=document.createElement("input");x.setAttribute("type","text");mxUtils.write(q,"Organisation:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(x);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),v=document.createElement("input");v.setAttribute("type",
+"text");mxUtils.write(q,"Repository:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(v);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),z=document.createElement("input");z.setAttribute("type","text");mxUtils.write(q,"Path:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(z);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var y=a.lastIndexOf(".");0<y&&(a=a.substring(0,
+y));z.value=a+".png";var E=document.createElement("input");E.setAttribute("type","text");mxUtils.write(q,"Branch/Tag:");E.value="master";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(E);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),A=document.createElement("input");A.setAttribute("type","text");mxUtils.write(q,"Message:");A.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(A);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);
+e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+x.value+"/"+v.value+"/contents/"+z.value+"?ref\x3d"+encodeURIComponent(E.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());var e={path:z.value,message:A.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==
+f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+x.value+"/"+v.value+"/blob/"+E.value+"/"+z.value;var b=new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,
+170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+btoa(t.value+":"+u.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};
+EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause();c=!1;var f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,
+g=f.lastIndexOf("."),s=f;0<g&&(s=f=s.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:s+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),u=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+
+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+
+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var l=new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");l.send(mxUtils.bind(this,
+function(){200==l.getStatus()?k():u(l)}),mxUtils.bind(this,function(){u(l)}))}else k()}catch(p){this.handleError(p)}else u(a)}),mxUtils.bind(this,function(a){u(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,q){d=parseInt(d);
+if(!isNaN(d)&&0<d){d/=100;var t=this.editor.graph.isSelectionEmpty();f=null!=f?f:t;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=q?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,e);a(c,g.substring(g.lastIndexOf(",")+1),q,b)}catch(m){this.handleError(m)}}),null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(u){this.handleError(u)}}})):this.showRemoteExportDialog(mxResources.get("publish"),
+"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var q=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));q.send(mxUtils.bind(this,function(){200==q.getStatus()?a(c,q.getText(),
+e,b):this.handleError(q)}))}catch(t){this.handleError(t)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");
+b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':
+"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,f){if(this.spinner.spin(document.body,mxResources.get("exporting"))){var g=this.editor.graph.isSelectionEmpty();c=null!=c?c:g;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();
+try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c):null)}catch(b){"Invalid image"==b.message?this.downloadFile("png"):this.handleError(b)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,d,null,null,null,f)}catch(q){this.spinner.stop(),this.handleError(q)}}};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,q,t,u,x,v,z,y){f=null!=f?f:!0;v=null!=v?v:this.editor.graph;z=null!=z?z:0;var E=t?null:v.background;E==
+mxConstants.NONE&&(E=null);null==E&&(E=d);null==E&&!1==t&&(E="#ffffff");this.convertImages(v.getSvg(E,null,null,y,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));q=null!=q?q:1;null!=b&&(q=!f?b/g:Math.min(1,Math.min(3*b/(4*m),b/g)));g=Math.ceil(q*g)+2*z;m=Math.ceil(q*m)+2*z;e.setAttribute("width",g);e.setAttribute("height",m);var n=e.getContext("2d");
+null!=E&&(n.beginPath(),n.rect(0,0,g,m),n.fillStyle=E,n.fill());n.scale(q,q);n.drawImage(d,z/q,z/q);a(e)});d.onerror=function(a){null!=e&&e(a)};try{u&&this.editor.addSvgShadow(c),this.convertMath(v,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,x)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==
+c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var n=a.getElementsByTagName(c),u=0;u<n.length;u++)mxUtils.bind(this,function(c){var n=d.convert(c.getAttribute(g));if(null!=n&&"data:"!=n.substring(0,5)){var r=
+f[n];null==r?(e++,this.convertImageToDataUri(n,function(d){null!=d&&(f[n]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,r)}})(n[u])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=
+c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var q=mxUtils.parseXml(a),t=this.editor.extractGraphModel(q.documentElement,null!=this.pages);if(null!=t&&"mxfile"==t.nodeName&&null!=this.pages){var u=t.getElementsByTagName("diagram");if(1==u.length)t=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(u[0]))).documentElement;else if(1<
+u.length){g.model.beginUpdate();try{for(var x=0;x<u.length;x++){var v=this.updatePageRoot(new DiagramPage(u[x])),z=this.pages.length;null==v.getName()&&v.setName(mxResources.get("pageWithNumber",[z+1]));g.model.execute(new ChangePage(this,v,v,z))}}finally{g.model.endUpdate()}}}if(null!=t&&"mxGraphModel"===t.nodeName){var y=new mxGraphModel;(new mxCodec(t.ownerDocument)).decode(t,y);var E=y.getChildCount(y.getRoot());g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};for(x=0;x<
+E;x++){var A=y.getChildAt(y.getRoot(),x);if(1==E&&!g.isCellLocked(g.getDefaultParent()))var D=y.getChildren(A),f=f.concat(g.importCells(D,b,c,g.getDefaultParent(),null,a));else A=g.importCells([A],0,0,g.model.getRoot(),null,a)[0],D=g.model.getChildren(A),g.moveCells(D,b,c),f=f.concat(D)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var C=g.getBoundingBoxFromGeometry(f,!0);null!=C&&g.moveCells(f,b-C.x,c-C.y)}}finally{g.model.endUpdate()}}}}catch(F){throw e||this.handleError(F,mxResources.get("invalidOrMissingFile")),
+F;}return f};EditorUi.prototype.insertLucidChart=function(a,b,c,d){var e=mxUtils.bind(this,function(){if(this.pasteLucidChart)try{this.pasteLucidChart(a,b,c,d)}catch(e){}});!this.pasteLucidChart&&!this.loadingExtensions&&!this.isOffline()?(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("/js/diagramly/Extensions.js",e):mxscript("/js/extensions.min.js",e)):window.setTimeout(e,0)};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&
+(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var q=this.extractGraphModelFromPng(a),t=this.importXml(q,
+b,c,f,!0);if(0<t.length)return t}if("data:image/svg+xml;"==a.substring(0,19))try{if(q=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(q=a.substring(a.indexOf(",")+1),q=window.atob&&!mxClient.IS_SF?atob(q):Base64.decode(q,!0)):q=decodeURIComponent(a.substring(a.indexOf(",")+1)),t=this.importXml(q,b,c,f,!0),0<t.length)return t}catch(u){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,
+null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+
+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length)if('{"state":"{\\"Properties\\":'==a.substring(0,26)){e=
+JSON.parse(JSON.parse(a).state);var q=null,x;for(x in e.Pages)if(t=e.Pages[x],null!=t&&"0"==t.Properties.Order){q=t;break}null!=q&&this.insertLucidChart(q,b,c,f)}else{g=this.editor.graph;f=null;g.getModel().beginUpdate();try{f=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[f])),f.value=a,g.updateCellSize(f),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(f.value)&&
+g.setLinkForCell(f,f.value),f.geometry.width+=g.gridSize,f.geometry.height+=g.gridSize}finally{g.getModel().endUpdate()}return[f]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=
+function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,q,t,u,x){u=null!=u?u:!0;var v=!1,z=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=x?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(z=this.importXml(b,c,d,u),g=!0)),g||(z=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+
+1))),u&&z.isGridEnabled()&&(c=z.snap(c),d=z.snap(d)),z=[z.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(v=!0,this.parseFile(null!=t?t:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,
+c,d,u));null!=q&&q(b)}}),g)):/(\.vsd)($|\?)/i.test(g)||(z=this.insertTextAt(this.validateFileData(a),c,d,!0,null,u));!v&&null!=q&&q(z);return z};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);b+="\x3d";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>
+6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,q,t,u,x,v){var z=null!=b&&null!=c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;u=null!=u?u:this.maxImageBytes;t=null!=t?t:!0;var y=this.editor.graph,E=y.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):
+this.importFile(a,b,c,d,e,f,g,k,l,z,v)});f=null!=f?f:mxUtils.bind(this,function(a){y.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var A=a.length,D=A,C=[],F=mxUtils.bind(this,function(a,b){C[a]=b;if(0==--D){this.spinner.stop();if(null!=q)q(C);else{var c=[];y.getModel().beginUpdate();try{for(var d=0;d<C.length;d++){var e=C[d]();null!=e&&(c=c.concat(e))}}finally{y.getModel().endUpdate()}}f(c)}}),G=0;G<A;G++)mxUtils.bind(this,function(f){var q=a[f],s=new FileReader;
+s.onload=mxUtils.bind(this,function(a){if(null==g||g(q))if("image/"==q.type.substring(0,6))if("image/svg"==q.type.substring(0,9)){var k=a.target.result,s=k.indexOf(","),y=atob(k.substring(s+1)),A=mxUtils.parseXml(y),y=A.getElementsByTagName("svg");if(0<y.length){var y=y[0],z=v?null:y.getAttribute("content");null!=z&&"\x3c"!=z.charAt(0)&&"%"!=z.charAt(0)&&(z=unescape(window.atob?atob(z):Base64.decode(z,!0)));null!=z&&"%"==z.charAt(0)&&(z=decodeURIComponent(z));null!=z&&("\x3cmxfile "===z.substring(0,
+8)||"\x3cmxGraphModel "===z.substring(0,14))?F(f,mxUtils.bind(this,function(){return e(z,"text/xml",b+f*E,c+f*E,0,0,q.name)})):F(f,mxUtils.bind(this,function(){try{if(k.substring(0,s+1),null!=A){var a=A.getElementsByTagName("svg");if(0<a.length){var g=a[0],r=parseFloat(g.getAttribute("width")),t=parseFloat(g.getAttribute("height")),u=g.getAttribute("viewBox");if(null==u||0==u.length)g.setAttribute("viewBox","0 0 "+r+" "+t);else if(isNaN(r)||isNaN(t)){var x=u.split(" ");3<x.length&&(r=parseFloat(x[2]),
+t=parseFloat(x[3]))}k=this.createSvgDataUri(mxUtils.getXml(a[0]));var v=Math.min(1,Math.min(d/Math.max(1,r)),d/Math.max(1,t));return e(k,q.type,b+f*E,c+f*E,Math.max(1,Math.round(r*v)),Math.max(1,Math.round(t*v)),q.name)}}}catch(y){}return null}))}}else{y=!1;if("image/png"==q.type){var C=v?null:this.extractGraphModelFromPng(a.target.result);if(null!=C&&0<C.length){var D=new Image;D.src=a.target.result;F(f,mxUtils.bind(this,function(){return e(C,"text/xml",b+f*E,c+f*E,D.width,D.height,q.name)}));y=
+!0}}y||(null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,k,r){F(f,mxUtils.bind(this,function(){if(null!=
+g&&g.length<u){var s=!t||!this.isResampleImage(a.target.result)?1:Math.min(1,Math.min(d/k,d/r));return e(g,q.type,b+f*E,c+f*E,Math.round(k*s),Math.round(r*s),q.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),t,d,x)})))}else e(a.target.result,q.type,b+f*E,c+f*E,240,160,q.name,function(a){F(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(q.name)?e(null,q.type,b+f*E,c+f*E,240,160,q.name,function(a){F(f,function(){return a})},q):"image"==q.type.substring(0,5)?s.readAsDataURL(q):
+s.readAsText(q)})(G)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),q=Math.max(1,a.height);if(d&&this.isResampleImage(b,
+f))try{var t=Math.max(g/e,q/e);if(1<t){var u=Math.round(g/t),x=Math.round(q/t),v=document.createElement("canvas");v.width=u;v.height=x;v.getContext("2d").drawImage(a,0,0,u,x);var z=v.toDataURL();if(z.length<b.length){var y=document.createElement("canvas");y.width=u;y.height=x;var E=y.toDataURL();z!==E&&(b=z,g=u,q=x)}}}catch(A){}c(b,g,q)};EditorUi.prototype.crcTable=[];for(var b=0;256>b;b++)for(var c=b,d=0;8>d;d++)c=1==(c&1)?3988292384^c>>>1:c>>>1,EditorUi.prototype.crcTable[b]=c;EditorUi.prototype.updateCRC=
+function(a,b,c,d){for(var e=0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=q;q+=b;return a.substring(c,q)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var q=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,
+4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,q);do{var t=g(a);if("IDAT"==f(a,4)){e=a.substring(0,q-8);t=4294967295;t=this.updateCRC(t,b,0,4);t=this.updateCRC(t,d,0,d.length);e+=String.fromCharCode(c.length+d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((t^4294967295)>>24&255,(t^4294967295)>>
+16&255,(t^4294967295)>>8&255,(t^4294967295)&255);e+=a.substring(q-8,a.length);break}e+=a.substring(q-8,q-4+t);d=f(a,t);f(a,4)}while(t);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),
+"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=
+c);d.src=a};var e=EditorUi.prototype.init;EditorUi.prototype.init=function(){e.apply(this,arguments);var a=this.editor.graph,b=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");var c=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:c.apply(this,arguments)};
+this.editor.getOrCreateFilename=function(){var a=b.defaultFilename,c=b.getCurrentFile();null!=c&&(a=null!=c.getTitle()?c.getTitle():a);return a};var d=this.actions.get("print");d.setEnabled(!mxClient.IS_IOS||!navigator.standalone);d.visible=d.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(70,!0,"find");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);mxClient.IS_IE||a.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],
+0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(l){}}),!1);var f=document.createElement("div");f.style.position="absolute";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.display="block";f.contentEditable=!0;mxUtils.setOpacity(f,
+0);f.style.width="1px";f.style.height="1px";f.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);if(null!=a.container&&a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&
+!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var r=function(){window.setTimeout(function(){f.innerHTML="\x26nbsp;";f.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,
+function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&null==this.dialog&&null!=a.container&&a.container.focus(),f.parentNode.removeChild(f)}),0)}));mxEvent.addListener(f,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(f),r())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,function(b){a.isEnabled()&&(this.copyCells(f,!0),r())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML=
+"\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var q=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:q.apply(this,arguments)}}d=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,d,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=
+this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||10<document.documentMode))d=this.highlightElement(c);a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,
+0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,
+Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){d=document.getElementById("geFooter");
+null!=d&&(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)})),d.appendChild(this.styleInput),
+this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var t=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:t.apply(this,arguments)}}d=document.getElementById("geInfo");
+null!=d&&d.parentNode.removeChild(d);if(Graph.fileSupport){var u=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=u&&(u.parentNode.removeChild(u),u=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==u&&(!mxClient.IS_IE||10<document.documentMode))u=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,
+"drop",mxUtils.bind(this,function(b){null!=u&&(u.parentNode.removeChild(u),u=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b));else{var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?
+b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,m=e.getElementsByTagName("img");null!=m&&1==m.length?(c=m[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));
+a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;imageAspect\x3d0;image\x3d"+
+l+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(l,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,g,!0))}}b.stopPropagation();b.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode()};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),
+e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d=c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&
+(this.insertLucidChart(JSON.parse(d)),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var g=e.lastIndexOf("%3E");0<=g&&g<e.length-3&&(e=e.substring(0,g+3))}catch(q){}try{var c=b.getElementsByTagName("span"),t=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(t)&&(f=!0,e=t)}catch(u){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=
+e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))),!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(x){}}}}};
+EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,
+function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=
+null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&this.openLocalFile(d)),
+!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=
+0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,
+e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,
+mxResources.get("loading")))for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){var c=b.target.result,d=a.name;if(null!=d&&0<d.length)if(/(\.png)$/i.test(d)&&(d=d.substring(0,d.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,d))d=0<=d.lastIndexOf(".")?d.substring(0,d.lastIndexOf("."))+".xml":d+".xml",this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),
+200==a.status?this.openLocalFile(a.responseText,d):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if("\x3cmxlibrary"==b.target.result.substring(0,10)){this.spinner.stop();try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,
+d)});b.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?b.readAsDataURL(a):b.readAsText(a)})(a[b])};EditorUi.prototype.openLocalFile=function(a,b){var c=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,
+a,b||this.defaultFilename))});null!=a&&0<a.length&&(null!=this.getCurrentFile()&&!this.isDiagramEmpty()?(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,c)):c())};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);
+var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var d=a.lastIndexOf(".");0<d&&(a=a.substring(d+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=
+0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.initializeEmbedMode=function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.editor.graph.setEnabled(!1);if((window.opener||window.parent)!=window)("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,function(a,b,c){this.spinner.stop();this.addEmbedButtons();this.diagramContainer.style.visibility=
+"";this.formatContainer.style.visibility="";this.editor.graph.setEnabled(!0);null!=a&&0<a.length?(this.setFileData(a),this.showLayersDialog()):(this.editor.graph.model.clear(),this.editor.fireEvent(new mxEventObject("resetGraphView")));this.editor.undoManager.clear();this.editor.modified=null!=c?c:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&
+(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,f=mxUtils.bind(this,function(a,b){!this.editor.modified||"0"==urlParams.modified?
+this.editor.setStatus(""):null!=urlParams.modified&&this.editor.setStatus(mxResources.get(urlParams.modified))});this.editor.graph.model.addListener(mxEvent.CHANGE,f);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){function s(a){if(null!=a&&"function"===typeof a.charAt&&"\x3c"!=a.charAt(0))try{"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):
+"\x3c"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(b){}return a}var u=f.data;if("json"==urlParams.proto){try{u=JSON.parse(u)}catch(x){u=null}if(null==u)return;if("dialog"==u.action){this.showError(null!=u.titleKey?mxResources.get(u.titleKey):u.title,null!=u.messageKey?mxResources.get(u.messageKey):u.message,null!=u.buttonKey?mxResources.get(u.buttonKey):u.button);null!=u.modified&&(this.editor.modified=u.modified);return}if("prompt"==u.action){var v=new FilenameDialog(this,u.defaultValue||
+"",null!=u.okKey?mxResources.get(u.okKey):null,function(a){null!=a&&g.postMessage(JSON.stringify({event:"prompt",value:a,message:u}),"*")},null!=u.titleKey?mxResources.get(u.titleKey):u.title);this.showDialog(v.container,300,80,!0,!1);v.init();return}if("draft"==u.action){v=null;v="data:image/png;base64,"==u.xml.substring(0,22)?this.extractGraphModelFromPng(u.xml):s(u.xml);v=new DraftDialog(this,mxResources.get("draftFound",[u.name||this.defaultFilename]),v,mxUtils.bind(this,function(){this.hideDialog();
+g.postMessage(JSON.stringify({event:"draft",result:"edit",message:u}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"discard",message:u}),"*")}),u.editKey?mxResources.get(u.editKey):null,u.discardKey?mxResources.get(u.discardKey):null);this.showDialog(v.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{v.init()}catch(z){g.postMessage(JSON.stringify({event:"draft",error:z.toString(),message:u}),
+"*")}return}if("template"==u.action){v=new NewDialog(this,!1,null!=u.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=u.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}));this.showDialog(v.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));v.init();return}if("status"==u.action){null!=u.messageKey?
+this.editor.setStatus(mxResources.get(u.messageKey)):null!=u.message&&this.editor.setStatus(u.message);null!=u.modified&&(this.editor.modified=u.modified);return}if("spinner"==u.action){var y=null!=u.messageKey?mxResources.get(u.messageKey):u.message;null!=u.show&&!u.show?this.spinner.stop():this.spinner.spin(document.body,y);return}if("export"==u.action){if("png"==u.format||"xmlpng"==u.format){if(null==u.spin&&null==u.spinKey||this.spinner.spin(document.body,null!=u.spinKey?mxResources.get(u.spinKey):
+u.spin)){var E=null!=u.xml?u.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var A=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=u.format;b.xml=encodeURIComponent(E);b.data="data:image/png;base64,"+a;g.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var D=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var D=this.createTemporaryGraph(D.getStylesheet()),C=D.getGlobalVariable,F=this.pages[0];
+D.getGlobalVariable=function(a){return"page"==a?F.getName():"pagenumber"==a?1:C.apply(this,arguments)};document.body.appendChild(D.container);D.model.setRoot(F.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");"xmlpng"==u.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(E))));D!=this.editor.graph&&D.container.parentNode.removeChild(D.container);A(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,
+null,null,D)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==u.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(E)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();200==a.getStatus()&&A(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=u.xml&&0<u.xml.length&&this.setFileData(u.xml);y=this.createLoadMessage("export");if("html2"==u.format||"html"==u.format&&("0"!=urlParams.pages||
+null!=this.pages&&1<this.pages.length))v=this.getXmlFileData(),y.xml=mxUtils.getXml(v),y.data=this.getFileData(null,null,!0,null,null,null,v),y.format=u.format;else if("html"==u.format)E=this.editor.getGraphXml(),y.data=this.getHtml(E,this.editor.graph),y.xml=mxUtils.getXml(E),y.format=u.format;else{mxSvgCanvas2D.prototype.foAltText=null;v=this.editor.graph.background;v==mxConstants.NONE&&(v=null);y.xml=this.getFileData(!0);y.format="svg";if(u.embedImages||null==u.embedImages){if(null==u.spin&&null==
+u.spinKey||this.spinner.spin(document.body,null!=u.spinKey?mxResources.get(u.spinKey):u.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==u.format?this.getEmbeddedSvg(y.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();y.data=this.createSvgDataUri(a);g.postMessage(JSON.stringify(y),"*")})):this.convertImages(this.editor.graph.getSvg(v),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();y.data=this.createSvgDataUri(mxUtils.getXml(a));
+g.postMessage(JSON.stringify(y),"*")}));return}v="xmlsvg"==u.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(v));y.data=this.createSvgDataUri(v)}g.postMessage(JSON.stringify(y),"*")}return}if("load"==u.action)d=1==u.autosave,this.hideDialog(),null!=u.modified&&null==urlParams.modified&&(urlParams.modified=u.modified),null!=u.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=u.saveAndExit),null!=u.title&&null!=this.buttonContainer&&
+(v=document.createElement("span"),mxUtils.write(v,u.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),this.buttonContainer.appendChild(v)),u=null!=u.xmlpng?this.extractGraphModelFromPng(u.xmlpng):null!=u.xml&&"data:image/png;base64,"==u.xml.substring(0,22)?this.extractGraphModelFromPng(u.xml):u.xml;else{g.postMessage(JSON.stringify({error:"unknownMessage",
+data:JSON.stringify(u)}),"*");return}}u=s(u);c=!0;try{a(u,f)}catch(G){this.handleError(G)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var H=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=H();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=H();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,
+"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",
+b),this.addListener("pageViewChanged",b));("1"==urlParams.returnbounds||"json"==urlParams.proto)&&g.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}));var g=window.opener||window.parent,f="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";g.postMessage(f,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?
+"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" (Ctrl+S)");b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,
+mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding=
+"4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px";"atlas"==uiTheme&&(this.statusContainer.style.color="#707070",this.statusContainer.style.paddingLeft="26px",this.toolbar.staticElements.push(this.statusContainer),this.toolbar.container.appendChild(this.statusContainer))}};EditorUi.prototype.getSearch=
+function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"\x3d"+urlParams[d],c="\x26")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),
d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"\x26",null!=urlParams[d]&&(a+=d+"\x3d"+urlParams[d],b++))}return a};var f=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=f.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-
2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&
null!=this.source.minimumGraphSize){var d=this.source.getPagePadding(),e=Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2),f=Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2);return new mxPoint(Math.round(e-d.x),Math.round(f-d.y-5/a))}return new mxPoint(8/a,8/a)};var g=b.init;b.init=function(){g.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*
diff --git a/war/resources/dia.txt b/war/resources/dia.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia.txt
+++ b/war/resources/dia.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_am.txt b/war/resources/dia_am.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_am.txt
+++ b/war/resources/dia_am.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_ar.txt b/war/resources/dia_ar.txt
index 4bdd5c71..39ef208c 100644
--- a/war/resources/dia_ar.txt
+++ b/war/resources/dia_ar.txt
@@ -8,6 +8,7 @@ addImages=‫إضافة صور‬
addImageUrl=‫إضافة رابط صورة‬
addLayer=‫إضافة طبقة‬
addProperty=‫إضافة خاصية‬
+address=Address
addToExistingDrawing=‫أضف إلى الرسم الحالي‬
addWaypoint=‫أضف نقطة على المسار‬
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=‫صُف‬
alignment=‫محاذاة‬
allChangesLost=‫سيتم فقد جميع التغييرات‬
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=‫زاوية‬
@@ -40,6 +43,7 @@ authorizing=‫بصدد الترخيص‬
automatic=‫تلقائي‬
autosave=‫حفظ تلقائي‬
autosize=‫تحجيم تلقائي‬
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=‫إخفاء/ إظهار الصفحات المفتوحة‬
collapse-expand=‫إخفاء/ إظهار الصفحات المفتوحة‬
collapsible=‫قابل للإخفاء‬
comic=Comic
+comment=Comment
commentsNotes=‫تعليقات/ملاحظات‬
connect=‫اتصل‬
connecting=‫بصدد الاتصال‬
@@ -273,6 +278,8 @@ forum=‫المناقشات/ منتديات المساعدة‬
fromTemplate=‫من قالب‬
fromTemplateUrl=‫من رابط القالب‬
fromText=‫من نص‬
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=‫عام‬
github=GitHub
@@ -306,7 +313,9 @@ htmlText=‫نص HTML‬
iframe=IFrame
ignore=‫تجاهل‬
image=‫صورة‬
+imageUrl=Image URL
images=‫صور‬
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=‫جلب‬
@@ -327,7 +336,8 @@ insertRowBefore=‫إضافة سطر قبل‬
insertRowAfter=‫إضافة سطر بعد‬
insertText=‫إضافة نص‬
inserting=‫إضافة‬
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=‫اسم غير صالح‬
invalidOrMissingFile=‫ملف غير صالح أو غير موجود‬
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=‫لغة‬
leanMapping=Lean Mapping
lastChange=‫آخر تعديل قبل {1} يوم(ا)‬
lessThanAMinute=‫أقل من دقيقة‬
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=‫دقيقة‬
minutes=‫دقائق‬
@@ -377,6 +389,8 @@ manual=‫يدوي‬
middle=‫وسط‬
misc=‫متفرقات‬
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=‫المزيد‬
moreResults=‫المزيد من النتائج‬
moreShapes=‫المزيد من الأشكال‬
@@ -390,6 +404,7 @@ networking=Networking
new=‫جديد‬
newLibrary=‫مكتبة جديدة‬
nextPage=Next Page
+noAttachments=No attachments found
noColor=‫لا يوجد لون‬
noFiles=‫لا يوجد ملفات‬
noFileSelected=‫لم يتم اختيار أي ملف‬
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=‫لا إجابة من طرف الخادم‬
noResultsFor=‫لا توجد نتائج متعلقة بـ '{1}'‬
noRevisions=‫لا توجد مراجعات‬
+noSearchResults=No search results found
normal=‫عادي‬
north=‫شمال‬
notADiagramFile=‫ليس ملف رسم‬
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=‫طباعة‬
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=‫خواص‬
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=‫شجرة شعاعية‬
readOnly=‫قراءة فقط‬
reconnecting=‫إعادة الإتصال‬
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=‫تم إنجاز أو تعديل هذا الملف باستخدام draw.io pro. تتم الآن إعادة التوجيه.‬
realtimeTimeout=‫يبدو أنك قمت ببعض التعجيلات في وضع غير الاتصال. نعتذر عن عدم إمكانية حفظ التغييرات.‬
redo=‫إعادة تنفيذ الأمر‬
@@ -512,6 +532,7 @@ restoring=‫يتم الاسترداد‬
retryingIn=‫تتم إعادة المحاولة خلال {1} من الثواني‬
retryingLoad=‫فشل التحميل. إعادة المحاولة...‬
retryingLogin=‫انتهت صلاحية التسجيل. تتم إعادة المحاولة...‬
+revision=Revision
revisionHistory=‫سجل المراجعات‬
right=‫يمين‬
rightAlign=‫محاذاة إلى اليمين‬
@@ -563,6 +584,7 @@ solid=‫موحد‬
sourceSpacing=‫تباعد المصدر‬
south=‫جنوب‬
software=Software
+space=Space
spacing=‫التباعد‬
specialLink=‫رابط خاص‬
standard=Standard
@@ -571,6 +593,7 @@ straight=‫مستقيم‬
strokeColor=‫لون الخط‬
style=‫نمط‬
subscript=‫خط صغير‬
+summary=Summary
superscript=‫خط كبير‬
support=‫مساعدة‬
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=‫لم يتم تحديد أية عناصر‬
other=‫أخرى‬
softwaredesign=‫تصميم برمجي‬
venndiagrams=‫مخططات فين‬
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=‫إطارات‬
diff --git a/war/resources/dia_bg.txt b/war/resources/dia_bg.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_bg.txt
+++ b/war/resources/dia_bg.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_bn.txt b/war/resources/dia_bn.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_bn.txt
+++ b/war/resources/dia_bn.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_bs.txt b/war/resources/dia_bs.txt
index 1e61c5a8..4df829b4 100644
--- a/war/resources/dia_bs.txt
+++ b/war/resources/dia_bs.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Dodaj na postojeći crtež
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Poravnaj
alignment=Poravnanje
allChangesLost=Sve promjene će biti izgubljene!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Automatska veličina
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Spusti/proširi
collapse-expand=Spusti/proširi
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Poveži
connecting=Povezivanje
@@ -273,6 +278,8 @@ forum=Forum
fromTemplate=Od šablona
fromTemplateUrl=From Template URL
fromText=Od teksta
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Opšti
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Slika
+imageUrl=Image URL
images=Slike
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -328,6 +337,7 @@ insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
invalidFilename=Imena dijagrama ne smeju sadržati sledeće znake : \ / | : ; { < & + ? =
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Neispravan ili nepostojeći dokument
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Jezik
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Sredina
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=Još rezultata
moreShapes=Još oblika
@@ -390,6 +404,7 @@ networking=Networking
new=Novi
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=Bez boje
noFiles=Nema fajlova
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=Nema više rezultata za {1}
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=Sjever
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Štampa
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Rekonekcija
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Ponovi
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Desno
rightAlign=Desno poravnanje
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Proređivanje izvora
south=Jug
software=Software
+space=Space
spacing=Proređivanje
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Pravo
strokeColor=Boja linije
style=Stil
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_ca.txt b/war/resources/dia_ca.txt
index 4142472a..0e23de56 100644
--- a/war/resources/dia_ca.txt
+++ b/war/resources/dia_ca.txt
@@ -8,6 +8,7 @@ addImages=Afegeix imatges
addImageUrl=Afegeix l'URL de la imatge
addLayer=Afegeix una capa
addProperty=Afegeix una propietat
+address=Address
addToExistingDrawing=Afegeix al dibuix actual
addWaypoint=Afegeix Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Alinea
alignment=Alineació
allChangesLost=Es perderan tots els canvis!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Autoritzant
automatic=Automàtic
autosave=Desat automàtic
autosize=Autodimensionar
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Minimitza/Maximitza
collapse-expand=Feu clic per minimitzar/maximitzar\ premeu Shift per moure els veïns \premeu Alt per protegir la mida del grup
collapsible=Minimitzable
comic=Comic
+comment=Comment
commentsNotes=Comentaris/Notes
connect=Connecta
connecting=Connectant
@@ -273,6 +278,8 @@ forum=Fòrums de discussió i ajuda
fromTemplate=Des de la plantilla
fromTemplateUrl=Des de l'URL de la plantilla
fromText=Des del text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=Text HTML
iframe=IFrame
ignore=Ignora
image=Imatge
+imageUrl=Image URL
images=Imatges
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Importa
@@ -327,7 +336,8 @@ insertRowBefore=Afegeix una fila amunt
insertRowAfter=Afegeix una fila avall
insertText=Afegeix text
inserting=Afegint
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Nom invàlid
invalidOrMissingFile=fitxer invàlid o desconegut
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Idioma
leanMapping=Lean Mapping
lastChange=El darrer canvi s'ha efectuat fa {1}
lessThanAMinute=menys d'un minut
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minut
minutes=minuts
@@ -377,6 +389,8 @@ manual=Manual
middle=Mig
misc=Diversos
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Més
moreResults=Més resultats
moreShapes=Més formes
@@ -390,6 +404,7 @@ networking=Networking
new=Nou
newLibrary=Biblioteca nova
nextPage=Next Page
+noAttachments=No attachments found
noColor=Sense color
noFiles=No hi ha fitxers
noFileSelected=No s'ha seleccionat cap fitxer
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=El servidor no respon
noResultsFor=No hi ha cap resultat per a {1}
noRevisions=Sense revisions
+noSearchResults=No search results found
normal=Normal
north=Nord
notADiagramFile=No és un fitxer de diagrama
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Imprimeix
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Propietats
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Arbre radial
readOnly=Només lectura
reconnecting=Reconnectant
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Aquest fitxer va ser creat o modificat a draw.io pro. Sereu redireccionats.
realtimeTimeout=Sembla que heu fet canvis mentres estaveu desconnectats. Disculpeu les molèsties, no es poden desar aquests canvis.
redo=Refés
@@ -512,6 +532,7 @@ restoring=Recuperant
retryingIn=Reintentant en {1} segon/s
retryingLoad=Càrrega fallida. Reintentant...
retryingLogin=Temps d'accés esgotat. Reintentant...
+revision=Revision
revisionHistory=Historial de revisions
right=Dreta
rightAlign=Alinea a la dreta
@@ -563,6 +584,7 @@ solid=Continu
sourceSpacing=Espaiat entre fonts
south=Sud
software=Software
+space=Space
spacing=Espaiat
specialLink=Enllaç especial
standard=Standard
@@ -571,6 +593,7 @@ straight=Recte
strokeColor=Color de la línia
style=Estil
subscript=Subíndex
+summary=Summary
superscript=Superíndex
support=Suport
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=No hi ha res seleccionat
other=Altres usuaris
softwaredesign=Diseny de programari
venndiagrams=Diagrames de Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Esquemes de pàgina
diff --git a/war/resources/dia_cs.txt b/war/resources/dia_cs.txt
index c93533d9..14750aa5 100644
--- a/war/resources/dia_cs.txt
+++ b/war/resources/dia_cs.txt
@@ -8,6 +8,7 @@ addImages=Přidat obrázky
addImageUrl=Přidat URL obrázku
addLayer=Přidat vrstvu
addProperty=Přidat vlastnost
+address=Address
addToExistingDrawing=Přidat do existujícího výkresu
addWaypoint=Přidat waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Zarovnat
alignment=Zarovnání
allChangesLost=Všechny změny budou ztraceny!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Úhel
@@ -40,6 +43,7 @@ authorizing=Autorizuji
automatic=Automaticky
autosave=Automatické uložení
autosize=Automatická velikost
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Sbalit/Rozbalit
collapse-expand=Sbalit/Rozbalit
collapsible=Sbalovací
comic=Comic
+comment=Comment
commentsNotes=Komentáře/Poznámky
connect=Připojit
connecting=Připojuji
@@ -273,6 +278,8 @@ forum=Fóra s diskusí/nápovědou
fromTemplate=Ze šablony
fromTemplateUrl=Ze šablony URL
fromText=Z textu
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Obecné
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML text
iframe=IFrame
ignore=Ignorovat
image=Obrázek
+imageUrl=Image URL
images=Obrázky
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Vložit řádek nad
insertRowAfter=Vložit řádek po
insertText=Vložit text
inserting=Vkládání
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Neplatný název
invalidOrMissingFile=Neplatný nebo chybějící soubor
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Jazyk
leanMapping=Lean Mapping
lastChange=Poslední změny před {1}
lessThanAMinute=méně než minuta
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minuta
minutes=minuty
@@ -377,6 +389,8 @@ manual=Manuál
middle=Střed
misc=Různé
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Více
moreResults=Další výsledky
moreShapes=Další tvary
@@ -390,6 +404,7 @@ networking=Networking
new=Nový
newLibrary=Nová knihovna
nextPage=Next Page
+noAttachments=No attachments found
noColor=Bez barvy
noFiles=Žádné soubory
noFileSelected=Nevybrán žádný soubor
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Žádná odpověď ze serveru
noResultsFor=Žádné výsledky pro {1}
noRevisions=Žádné revize
+noSearchResults=No search results found
normal=Normální
north=Sever
notADiagramFile=Není diagramový soubor
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Tisk
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Vlastnosti
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radiální strom
readOnly=Jen pro čtení
reconnecting=Připojuji znovu
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Tento soubor byl vytvořen nebo upraven v draw.io pro. Budete nyní přesměrováni.
realtimeTimeout=Vypadá to, že jste provedli několik změn, když jste byli offline. Je nám líto, tyto změny nemohou být uloženy.
redo=Opakovat
@@ -512,6 +532,7 @@ restoring=Obnovuji
retryingIn=Opětovný pokus za {1} vteřin
retryingLoad=Načítání selhalo. Zkouším znovu...
retryingLogin=Čas přihlášení vypršel. Zkouším znovu...
+revision=Revision
revisionHistory=Historie prohlížení
right=Vpravo
rightAlign=Zarovnat vpravo
@@ -563,6 +584,7 @@ solid=Pevný
sourceSpacing=Odsazení zdroje
south=Jih
software=Software
+space=Space
spacing=Odsazení
specialLink=Speciální odkaz
standard=Standard
@@ -571,6 +593,7 @@ straight=Přímý
strokeColor=Barva čáry
style=Styl
subscript=Index
+summary=Summary
superscript=Nadpis
support=Podpora
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nic není vybráno
other=Ostatní
softwaredesign=Softwarový design
venndiagrams=Vennovy diagramy
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Skicy webu
diff --git a/war/resources/dia_da.txt b/war/resources/dia_da.txt
index dd8557e4..6814ee41 100644
--- a/war/resources/dia_da.txt
+++ b/war/resources/dia_da.txt
@@ -8,6 +8,7 @@ addImages=Tilføj billeder
addImageUrl=Tilføj billed-URL
addLayer=Tilføj lag
addProperty=Tilføj egenskab
+address=Address
addToExistingDrawing=Føj til eksisterende tegning
addWaypoint=Tilføj støttepunkt
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Juster
alignment=Justering
allChangesLost=Alle ændringer vil gå tabt!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Vinkel
@@ -40,6 +43,7 @@ authorizing=Tillader
automatic=Automatisk
autosave=Auto-gem
autosize=Tilpas størrelse
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Kollaps / Udvid
collapse-expand=Kollaps / Udvid
collapsible=Kan foldes sammen
comic=Comic
+comment=Comment
commentsNotes=Kommentarer/bemærkninger
connect=Tilslut
connecting=Tilslutter
@@ -273,6 +278,8 @@ forum=Diskussion/Hjælpeforumer
fromTemplate=Fra skabelon
fromTemplateUrl=Fra skabelon-URL
fromText=Fra tekst
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Generel
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML-tekst
iframe=IFrame
ignore=Ignorér
image=Billede
+imageUrl=Image URL
images=Billeder
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Importér
@@ -327,7 +336,8 @@ insertRowBefore=Indsæt række ovenover
insertRowAfter=Indsæt række nedenfor
insertText=Insert Text
inserting=Indsætter
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Ugyldigt navn
invalidOrMissingFile=Ugyldig eller manglende fil
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Sprog
leanMapping=Lean Mapping
lastChange=Sidste ændring for {1} siden
lessThanAMinute=mindre end et minut
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minut
minutes=minutter
@@ -377,6 +389,8 @@ manual=Manuel
middle=Midt
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Flere
moreResults=Flere Fesultater
moreShapes=Flere Figurer
@@ -390,6 +404,7 @@ networking=Networking
new=Nyt
newLibrary=Nyt bibliotek
nextPage=Next Page
+noAttachments=No attachments found
noColor=Ingen farve
noFiles=Ingen filer
noFileSelected=Ingen fil valgt
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Intet svar fra serveren
noResultsFor=Ingen resultater for '{1}'
noRevisions=Ingen versioner
+noSearchResults=No search results found
normal=Normal
north=Nord
notADiagramFile=Ikke en diagramfil
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Udskriv
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Egenskaber
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radialt træ
readOnly=Skrivebeskyttet
reconnecting=Gentilslutter
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Denne fil er oprettet eller ændret i draw.io pro. Du bliver omdirigeret nu.
realtimeTimeout=Det ser ud til, at du har foretaget ændringer, mens du var offline. Vi beklager, men disse ændringer kan ikke gemmes.
redo=Gentag
@@ -512,6 +532,7 @@ restoring=Genetablerer
retryingIn=Forsøger igen om {1} sekund(er)
retryingLoad=Indlæsning mislykkedes. Forsøger igen...
retryingLogin=Login timeout. Forsøger igen...
+revision=Revision
revisionHistory=Revisionsoversigt
right=Højre
rightAlign=Højre
@@ -563,6 +584,7 @@ solid=Fast
sourceSpacing=Kildeafstand
south=Syd
software=Software
+space=Space
spacing=Mellemrum
specialLink=Specielt link
standard=Standard
@@ -571,6 +593,7 @@ straight=Lige
strokeColor=Linjefarve
style=Typografi
subscript=Sænket skrift
+summary=Summary
superscript=Hævet skrift
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Intet valgt
other=Andet
softwaredesign=Software-design
venndiagrams=Venn-diagrammer
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframe-model
diff --git a/war/resources/dia_de.txt b/war/resources/dia_de.txt
index b2dbb6ea..802b00d9 100644
--- a/war/resources/dia_de.txt
+++ b/war/resources/dia_de.txt
@@ -8,6 +8,7 @@ addImages=Bilder hinzufügen
addImageUrl=Bild URL hinzufügen
addLayer=Ebene hinzufügen
addProperty=Eigenschaft einfügen
+address=Adresse
addToExistingDrawing=In vorhandene Zeichnung einfügen
addWaypoint=Wegpunkt einfügen
adjustTo=Verkleinern/Vergrößern
@@ -16,6 +17,8 @@ align=Ausrichten
alignment=Ausrichtung
allChangesLost=Alle Änderungen gehen verloren!
allPages=Alle Seiten
+allProjects=Alle Projekte
+allSpaces=Alle Bereiche
allTags=Alle Tags
android=Android
angle=Winkel
@@ -40,6 +43,7 @@ authorizing=Wird autorisiert
automatic=Automatisch
autosave=Automatisch speichern
autosize=Größe anpassen
+attachments=Anhänge
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Ein-/Ausklappen
collapse-expand=Klicken um ein-/auszuklappen\nShift-Klick um Nachbarn zu verschieben\nAlt-Klick um Gruppengröße zu schützen
collapsible=Einklappbar
comic=Comic
+comment=Kommentar
commentsNotes=Kommentare/Notizen
connect=Verbinden
connecting=Verbindungsaufbau
@@ -273,6 +278,8 @@ forum=Diskussion/Hilfe Foren
fromTemplate=Aus Vorlage
fromTemplateUrl=Vorlage von URL
fromText=Aus Text
+fromUrl=Von URL
+fromThisPage=Aus dieser Seite
fullscreen=Vollbild
general=Allgemein
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignorieren
image=Bild
+imageUrl=Bild URL
images=Bilder
+imagePreviewError=Die Bildvorschau konnte nicht geladen werden. Bitte überprüfen Sie die URL.
imageTooBig=Bild zu groß
imgur=Imgur
import=Importieren
@@ -327,7 +336,8 @@ insertRowBefore=Zeile oberhalb einfügen
insertRowAfter=Zeile unterhalb einfügen
insertText=Text einfügen
inserting=Wird eingefügt
-invalidFilename=Diagramm Namen dürfen keine der folgenden Zeichen enthalten: \ / | :; {<& +? =
+invalidFilename=Diagramm Namen dürfen keine der folgenden Zeichen enthalten\ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Ihre Lizenz ist ungültig, bitte besuchen Sie diese <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">Seite</a>.
invalidName=Ungültiger Name
invalidOrMissingFile=Ungültige oder fehlende Datei
invalidPublicUrl=Ungültige öffentliche URL
@@ -342,8 +352,10 @@ language=Sprache
leanMapping=Lean Mapping
lastChange=Letzte Änderung vor {1}
lessThanAMinute=weniger als einer Minute
+licensingError=Lizenzfehler
licenseHasExpired=Die Lizenz für {1} ist am {2} abgelaufen. Hier klicken.
licenseWillExpire=Die Lizenz für {1} läuft am {2} ab. Hier klicken.
+linkText=Link Text
list=Liste
minute=Minute
minutes=Minuten
@@ -377,6 +389,8 @@ manual=Manuell
middle=Mitte
misc=Verschiedenes
mockups=Mockups
+modificationDate=Änderungsdatum
+modifiedBy=Geändert von
more=Mehr
moreResults=Mehr Resultate
moreShapes=Mehr Shapes
@@ -390,6 +404,7 @@ networking=Netzwerk
new=Neu
newLibrary=Neue Bibliothek
nextPage=Nächste Seite
+noAttachments=Keine Anhänge gefunden
noColor=Keine Farbe
noFiles=Keine Dateien
noFileSelected=Keine Datei ausgewählt
@@ -402,6 +417,7 @@ noPreview=Keine Vorschau
noResponse=Keine Antowort vom Server
noResultsFor=Keine Resultate für '{1}'
noRevisions=Keine Überarbeitungen
+noSearchResults=Keine Suchergebnisse gefunden
normal=Normal
north=Nord
notADiagramFile=Keine Diagrammdatei
@@ -471,6 +487,8 @@ previousPage=Vorherige Seite
print=Drucken
printAllPages=Alle Seiten Drucken
procEng=Proc. Eng.
+project=Projekt
+priority=Priorität
properties=Eigenschaften
publish=Veröffentlichen
publishConfirmation=Ihr Diagramm wird auf imgur.com veröffentlicht.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radialer Baum
readOnly=Nur Lesen
reconnecting=Verbindungswiederherstellung
+recentlyUpdated=Kürzlich geändert
+recentlyViewed=Kürzlich angesehen
redirectToNewApp=Diese Datei wurde mit einer neueren Version dieser App erstellt oder verändert. Sie werden nun weitergeleitet.
realtimeTimeout=Es wurden Änderungen gemacht während Sie offline waren. Diese können leider nicht gespeichert werden.
redo=Wiederherstellen
@@ -512,6 +532,7 @@ restoring=Wird wiederhergestellt
retryingIn=Versuche erneut in {1} Sekunde(n)
retryingLoad=Laden fehlgeschlagen. Versuche erneut...
retryingLogin=Zeitüberschreitung beim Anmelden. Versuche erneut...
+revision=Revision
revisionHistory=Änderungshistorie
right=Rechts
rightAlign=Rechts
@@ -563,6 +584,7 @@ solid=Durchgehend
sourceSpacing=Anfangsabstand
south=Süd
software=Software
+space=Bereich
spacing=Abstand
specialLink=Besondere Verknüpfung
standard=Standard
@@ -571,6 +593,7 @@ straight=Gerade
strokeColor=Linienfarbe
style=Style
subscript=Tiefgestellt
+summary=Zusammenfassung
superscript=Hochgestellt
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Es ist nichts markiert
other=Andere
softwaredesign=Software Design
venndiagrams=Venn Diagramme
+webEmailOrOther=Web, Email oder eine andere Internet Adresse
+webLink=Web Link
wireframes=Drahtgittermodelle
diff --git a/war/resources/dia_el.txt b/war/resources/dia_el.txt
index da43c094..6594032e 100644
--- a/war/resources/dia_el.txt
+++ b/war/resources/dia_el.txt
@@ -8,6 +8,7 @@ addImages=Προσθήκη εικόνων
addImageUrl=Προσθήκη εικόνας URL
addLayer=Προσθήκη επιπέδου
addProperty=Προσθήκη ιδιότητας
+address=Address
addToExistingDrawing=Προσθήκη σε υπάρχουσα σχεδίαση
addWaypoint=Προσθήκη σημείου αναφοράς
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Στοίχισε
alignment=Στοίχιση
allChangesLost=Όλες οι αλλαγές θα χαθούν!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Γωνία
@@ -40,6 +43,7 @@ authorizing=Εξουσιοδότηση
automatic=Αυτόματα
autosave=Αυτόματη αποθήκευση
autosize=Αυτόματο μέγεθος
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Κατάρρευση/Επέκταση
collapse-expand=Κατάρρευση/Επέκταση
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Σχόλια/Σημειώσεις
connect=Σύνδεση
connecting=Γίνεται Σύνδεση
@@ -273,6 +278,8 @@ forum=Συζήτηση/Φόρουμ Βοήθειας
fromTemplate=Από πρότυπο
fromTemplateUrl=Από πρότυπο URL
fromText=Από Κείμενο
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Γενικά
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML κείμενο
iframe=IFrame
ignore=Αγνοήστε
image=Εικόνα
+imageUrl=Image URL
images=Εικόνες
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Εισαγωγή
@@ -327,7 +336,8 @@ insertRowBefore=Εισαγωγή σειράς από πάνω
insertRowAfter=Εισαγωγή σειράς μετά
insertText=Εισαγωγή κειμένου
inserting=Εισάγοντας
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Μη έγκυρο όνομα
invalidOrMissingFile=Μη έγκυρο ή ανύπαρκτο αρχείο
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Γλώσσα
leanMapping=Lean Mapping
lastChange=Τελευταία αλλαγή {1} πριν
lessThanAMinute=λιγότερο από ένα λεπτό
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=λεπτό
minutes=λεπτά
@@ -377,6 +389,8 @@ manual=Χειροκίνητα
middle=Μέσο
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Περισσότερα
moreResults=Περισσότερα Αποτελέσματα
moreShapes=Περισσότερα Σχήματα
@@ -390,6 +404,7 @@ networking=Networking
new=Νέο
newLibrary=Νέα βιβλιοθήκη
nextPage=Next Page
+noAttachments=No attachments found
noColor=Χωρίς χρώμα
noFiles=Δεν υπάρχει αρχείο
noFileSelected=Δεν επιλέχθηκε αρχείο
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Χωρίς ανταπόκριση από το διακομιστή
noResultsFor=Δεν υπάρχουν αποτελέσματα για '{1}'
noRevisions=Χωρίς αναθεωρήσεις
+noSearchResults=No search results found
normal=Κανονικό
north=Βορράς
notADiagramFile=Δεν είναι αρχείο διαγράμματος
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Εκτύπωση
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Ιδιότητες
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Ακτινικό δέντρο
readOnly=Ανάγνωση μόνο
reconnecting=Επανασύνδεση
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Αυτό το αρχείο δημιουργήθηκε ή τροποποιήθηκε στο draw.io pro. Θα ανακατευθυνθείτε τώρα.
realtimeTimeout=Φαίνεται, ότι έχετε κάνει μερικές αλλαγές, ενόσω βρισκόσασταν εκτός δικτύου. Λυπούμαστε, αυτές οι αλλαγές δεν μπορούν να αποθηκευτούν.
redo=Επανάληψη
@@ -512,6 +532,7 @@ restoring=Επαναφέρεται
retryingIn=Δοκιμή ξανά σε {1} δευτερόλεπτα
retryingLoad=Η φόρτωση απέτυχε. Δοκιμή ξανά...
retryingLogin=Η σύνδεση έληξε. Δοκιμή ξανά...
+revision=Revision
revisionHistory=Ιστορικό αναθεώρησης
right=Δεξιά
rightAlign=Στοίχιση Δεξιά
@@ -563,6 +584,7 @@ solid=Συμπαγές
sourceSpacing=Απόσταση Πηγής
south=Νότια
software=Software
+space=Space
spacing=Απόσταση
specialLink=Ειδικός σύνδεσμος
standard=Standard
@@ -571,6 +593,7 @@ straight=Ευθεία
strokeColor=Χρώμα γραμμής
style=Εμφάνιση
subscript=Δείκτης
+summary=Summary
superscript=Εκθέτης
support=Υποστήριξη
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Δεν έχει επιλεχθεί τίποτα
other=Άλλο
softwaredesign=Σχεδιασμός λογισμικού
venndiagrams=Διαγράμματα Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Πλαίσια
diff --git a/war/resources/dia_es.txt b/war/resources/dia_es.txt
index f70051d1..e356c69b 100644
--- a/war/resources/dia_es.txt
+++ b/war/resources/dia_es.txt
@@ -8,6 +8,7 @@ addImages=Añadir imágenes
addImageUrl=Añadir URL de imagen
addLayer=Añadir capa
addProperty=Añadir propiedad
+address=Address
addToExistingDrawing=Añadir al dibujo existente
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Alinear
alignment=Alineación
allChangesLost=¡Se perderán todos los cambios!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Ángulo
@@ -40,6 +43,7 @@ authorizing=Autorizando
automatic=Automático
autosave=Guardado automático
autosize=Autodimensionar
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,12 +102,13 @@ collapseExpand=Minimizar/Maximizar
collapse-expand=Haz clic para minimizar/maximizar\ pulsa Shift para mover los vecinos \Pulsa Alt para proteger el tamaño del grupo
collapsible=Minimizable
comic=Comic
+comment=Comment
commentsNotes=Comentarios/Notas
connect=Conectar
connecting=Conectando
connectWithDrive=Conectar con Google Drive
connection=Conexión
-connectionArrows=Connection Arrows
+connectionArrows=Flechas de conexión
connectionPoints=Puntos de conexión
constrainProportions=Limitar proporciones
containsValidationErrors=Contiene errores de validación
@@ -170,8 +175,8 @@ duplicateIt=Duplicar {1}
divider=Separador
east=Este
edit=Editar
-editData=Edit Data
-editDiagram=Edit Diagram
+editData=Editar datos
+editDiagram=Editar diagrama
editGeometry=Editar geometría
editImage=Editar imagen
editImageUrl=Editar URL de la imagen
@@ -235,7 +240,7 @@ fileOpenLocation=¿Cómo quieres abrir este/os archivo/s?
fileWillBeSavedInAppFolder={1} se guardará en la carpeta de aplicaciones.
fill=Relleno
fillColor=Color del relleno
-find=Find
+find=Buscar
fit=Ajustar
fitContainer=Redimensionar contenedor
fitIntoContainer=Ajustar al contenedor
@@ -273,6 +278,8 @@ forum=Foros de discusión y ayuda
fromTemplate=Desde plantilla
fromTemplateUrl=Desde URL de plantilla
fromText=Desde texto
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=Texto HTML
iframe=IFrame
ignore=Ignorar
image=Imagen
+imageUrl=Image URL
images=Imágenes
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Importar
@@ -327,7 +336,8 @@ insertRowBefore=Insertar fila arriba
insertRowAfter=insertar fila debajo
insertText=Insertar texto
inserting=Insertando
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Nombre inválido
invalidOrMissingFile=Archivo inválido o desconocido
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Idioma
leanMapping=Lean Mapping
lastChange=El último cambio se ha realizado hace {1}
lessThanAMinute=menos de un minuto
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minuto
minutes=minutos
@@ -377,6 +389,8 @@ manual=Manual
middle=Medio
misc=Varios
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Más
moreResults=Más resultados
moreShapes=Más formas
@@ -390,6 +404,7 @@ networking=Networking
new=Nuevo
newLibrary=Nueva biblioteca
nextPage=Next Page
+noAttachments=No attachments found
noColor=Sin color
noFiles=No hay archivos
noFileSelected=Ningún archivo seleccionado
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No hay respuesta del servidor
noResultsFor=No hay resultados para {1}
noRevisions=Sin revisiones
+noSearchResults=No search results found
normal=Normal
north=Norte
notADiagramFile=No es un archivo de diagrama
@@ -428,7 +444,7 @@ openLink=Abrir enlace
openInNewWindow=Abrir en ventana nueva
openInThisWindow=Abrir en ventana actual
openIt=Abrir {1}
-openRecent=Open Recent
+openRecent=Abrir reciente
openSupported=Los formatos soportados son los archivos guardados desde este software (.xml), .vsdx y .gliffy
options=Opciones
organic=Orgánico
@@ -437,8 +453,8 @@ otherViewer=otro usuario
otherViewers=otros usuarios
outline=Contorno
oval=Óvalo
-page=Page
-pageWithNumber=Page-{1}
+page=Página
+pageWithNumber=Página-{1}
pages=Páginas
pageView=Vista de página
pageSetup=Configuración de página
@@ -471,8 +487,10 @@ previousPage=Previous Page
print=Imprimir
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Propiedades
-publish=Publish
+publish=Publicar
publishConfirmation=This will make your diagram public on imgur.com.
published=Published
publishedAt=Published at {1}
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Árbol radial
readOnly=Sólo lectura
reconnecting=Reconectando
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Este archivo fue creado o modificado en draw.io pro. Serás redirigido.
realtimeTimeout=Parece que has realizado algunos cambios mientras estabas desconectado/a. Lo sentimos, no es posible guardar estos cambios.
redo=Rehacer
@@ -503,7 +523,7 @@ replaceIt={1} ya existe. ¿Deseas reemplazarlo?
replaceExistingDrawing=Reemplazar el dibujo existente
required=requerido
reset=Restablecer
-resetView=Reset View
+resetView=Restaurar zoom
resize=Redimensionar
retina=Retina
responsive=Responsive
@@ -512,6 +532,7 @@ restoring=Restaurando
retryingIn=Reintentando en {1} segundo/s
retryingLoad=Carga fallida. Reintentando...
retryingLogin=Tiempo de acceso agotado. Reintentando...
+revision=Revision
revisionHistory=Historial de revisiones
right=Derecha
rightAlign=Alinear a la derecha
@@ -537,7 +558,7 @@ selectAll=Seleccionar todo
selectionOnly=Selection Only
selectEdges=Seleccionar bordes
selectFont=Seleccionar una fuente
-selectNone=Select None
+selectNone=Eliminar selección
selectVertices=Seleccionar vértices
sendMessage=Enviar
sendYourFeedbackToDrawIo=Enviar tu crítica a draw.io
@@ -552,7 +573,7 @@ share=Compartir
shareLink=Enlace para edición compartida.
sharp=Nitidez
show=Mostrar
-showStartScreen=Show Start Screen
+showStartScreen=Mostrar pantalla de inicio
sidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.
signs=Signs
signOut=Cerrar sesión
@@ -563,6 +584,7 @@ solid=Sólido
sourceSpacing=Espaciado entre fuentes
south=Sur
software=Software
+space=Space
spacing=Espaciado
specialLink=Enlace especial
standard=Standard
@@ -571,6 +593,7 @@ straight=Recto
strokeColor=Color de línea
style=Estilo
subscript=Subíndice
+summary=Summary
superscript=Superíndice
support=Soporte
sysml=SysML
@@ -603,8 +626,8 @@ uml=UML
underline=Subrayar
undo=Deshacer
ungroup=Desagrupar
-unsavedChanges=Cambios sin guardar
-unsavedChangesClickHereToSave=Unsaved changes. Click here to save.
+unsavedChanges=Cambios no guardados
+unsavedChangesClickHereToSave=Cambios no guardados. Click aqui para guardar.
untitled=Untitled
untitledDiagram=Diagrama sin nombre
untitledLayer=Untitled Layer
@@ -646,4 +669,6 @@ nothingIsSelected=No hay nada seleccionado
other=Otros
softwaredesign=Diseño de software
venndiagrams=Diagramas de Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Esquemas de página
diff --git a/war/resources/dia_et.txt b/war/resources/dia_et.txt
index cc3a60a4..92144a9d 100644
--- a/war/resources/dia_et.txt
+++ b/war/resources/dia_et.txt
@@ -8,6 +8,7 @@ addImages=Lisa pilte
addImageUrl=Lisa pildi URL
addLayer=Lisa kiht
addProperty=Lisa väärtus
+address=Address
addToExistingDrawing=Lisa olemasolevale joonisele
addWaypoint=Lisa teepunkt
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Joonda
alignment=Joondamine
allChangesLost=Kõik muudatused kaovad!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Nurk
@@ -40,6 +43,7 @@ authorizing=Volitamine
automatic=Automaatne
autosave=Automaatne salvestamine
autosize=Automaatne suurus
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Vähenda/Suurenda
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Vähendatav
comic=Comic
+comment=Comment
commentsNotes=Märkused
connect=Ühenda
connecting=Ühendamas
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_fa.txt b/war/resources/dia_fa.txt
index b293173f..069fdbf2 100644
--- a/war/resources/dia_fa.txt
+++ b/war/resources/dia_fa.txt
@@ -8,6 +8,7 @@ addImages=‫افزودن تصاویر‬
addImageUrl=‫افزودن URL تصویر‬
addLayer=‫افزودن لایه‬
addProperty=‫افزودن ویژگی‬
+address=Address
addToExistingDrawing=‫افزودن به طراحی‌های موجود‬
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=‫تراز‬
alignment=‫هم‌ترازی‬
allChangesLost=‫تمامی تغییرات از دست خواهند رفت!‬
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=‫اندروید‬
angle=‫زاویه‬
@@ -40,6 +43,7 @@ authorizing=‫اجازه‬
automatic=‫خودکار‬
autosave=‫ذخیره خودکار‬
autosize=‫اندازه بصورت خودکار‬
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=‫جمع‌کردن/باز نمودن‬
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=‫قابل‬
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=‫از قالب‬
fromTemplateUrl=‫از آدرس قالب‬
fromText=‫از متن‬
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=‫تمام‌صفحه‬
general=‫عمومی‬
github=GitHub
@@ -306,7 +313,9 @@ htmlText=‫متن HTML‬
iframe=IFrame
ignore=‫نادیده گرفتن‬
image=‫تصویر‬
+imageUrl=Image URL
images=‫تصاویر‬
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=‫تصویر خیلی بزرگ است‬
imgur=Imgur
import=‫وارد نمودن‬
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=‫نام نامعتبر‬
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=‫زبان‬
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=‫کمتر از یک دقیقه‬
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=‫دقیقه‬
minutes=‫دقیقه‬
@@ -377,6 +389,8 @@ manual=‫دَستی‬
middle=‫وسط‬
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=‫بیشتر‬
moreResults=‫نتایج بیشتر‬
moreShapes=‫شکل‌های بیشتر‬
@@ -390,6 +404,7 @@ networking=Networking
new=‫جدید‬
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=‫بدون رنگ‬
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_fi.txt b/war/resources/dia_fi.txt
index a27bbc78..9b204f84 100644
--- a/war/resources/dia_fi.txt
+++ b/war/resources/dia_fi.txt
@@ -8,6 +8,7 @@ addImages=Lisää kuvia
addImageUrl=Lisää kuvan URL
addLayer=Lisää kerros
addProperty=Lisää ominaisuus
+address=Address
addToExistingDrawing=Lisää olemassa olevaan piirustukseen
addWaypoint=Lisää reittipiste
adjustTo=Sovita
@@ -16,6 +17,8 @@ align=Kohdista
alignment=Kohdistus
allChangesLost=Kaikki muutokset menetään!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Kulma
@@ -40,6 +43,7 @@ authorizing=Valtuutus käynnissä
automatic=Automaattinen
autosave=Automaattinen tallennus
autosize=Automaattinen koko
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Pienennä/Laajenna
collapse-expand=Klikkaa pienentääksesi/laajentaaksesi\nShift+click siirtääksesi naapureita \nAlt+click säilyttääksesi ryhmän koon
collapsible=Pienennättävä
comic=Comic
+comment=Comment
commentsNotes=Kommentit/Muistiinpanot
connect=Yhdistä
connecting=Yhdistetään
@@ -273,6 +278,8 @@ forum=Keskustelu-/Apu-foorumit
fromTemplate=Mallipohjasta
fromTemplateUrl=Mallipohjan URL:ista
fromText=Tekstistä
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Koko näyttö
general=Yleinen
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML teksti
iframe=IFrame
ignore=Sivuuta
image=Kuva
+imageUrl=Image URL
images=Kuvat
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Liian suuri kuva
imgur=Imgur
import=Tuo
@@ -328,6 +337,7 @@ insertRowAfter=Lisää rivi alapuolelle
insertText=Lisää tekstiä
inserting=Lisätään
invalidFilename=Kaavioiden nimet eivät saa sisältää seuraavia merkkejä : \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Virheellinen nimi
invalidOrMissingFile=Epäkelvollinen tai puuttuva tiedosto
invalidPublicUrl=Epäkelvollinen julkinen URL
@@ -342,8 +352,10 @@ language=Kieli
leanMapping=Lean Mapping
lastChange=Viimeinen muutos {1} sitten
lessThanAMinute=alle minuutti sitten
+licensingError=Licensing Error
licenseHasExpired={1} lisenssi on päättynyt {2}. Klikkaa tästä.
licenseWillExpire={1} lisenssi päättyy {2}. Klikkaa tästä.
+linkText=Link Text
list=List
minute=minuutti
minutes=minuuttia
@@ -377,6 +389,8 @@ manual=Manuaalinen
middle=Keskellä
misc=Sekalaiset
mockups=Mallit
+modificationDate=Modification date
+modifiedBy=Modified by
more=Lisää
moreResults=Lisää tuloksia
moreShapes=Lisää muotoja
@@ -390,6 +404,7 @@ networking=Verkkotyöskentely
new=Uusi
newLibrary=Uusi kokoelma
nextPage=Next Page
+noAttachments=No attachments found
noColor=Ei väriä
noFiles=Ei tiedostoja
noFileSelected=Tiedostoa ei valittu
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Ei vastausta palvelimelta
noResultsFor=Ei tuloksia haulle '{1}'
noRevisions=Ei muokattuja versioita
+noSearchResults=No search results found
normal=Normaali
north=Pohjoinen
notADiagramFile=Ei kaaviotiedostoa
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Tulosta
printAllPages=Tulosta kaikki sivut
procEng=Teollisuus
+project=Project
+priority=Priority
properties=Ominaisuudet
publish=Julkaise
publishConfirmation=Tämä julkaisee kaaviosi osoitteessa imgur.com
@@ -483,6 +501,8 @@ rack=Teline
radialTree=Radiaalinen puu
readOnly=Vain luettavissa
reconnecting=Yhdistetään uudelleen
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Tämä tiedosto on luotu tai muokattu draw.io pro:ssa. Sinut uudelleenohjataan nyt.
realtimeTimeout=Näyttää siltä, että olet tehnyt muutoksia offline-tilassa. Olemme pahoillamme, mutta näitä muutoksia ei voida tallentaa.
redo=Toista
@@ -512,6 +532,7 @@ restoring=Palautetaan
retryingIn=Yritetään uudelleen {1} sekunnin kuluttua
retryingLoad=Lataus epäonnistui. Yritetään uudelleen...
retryingLogin=Sisäänkirjautuminen epäonnistui. Yritetään uudelleen...
+revision=Revision
revisionHistory=Muutoshistoria
right=Oikea
rightAlign=Oikea tasaus
@@ -563,6 +584,7 @@ solid=Kiinteä
sourceSpacing=Lähteen väli
south=Etelä
software=Software
+space=Space
spacing=Väli
specialLink=Erityislinkki
standard=Standard
@@ -571,6 +593,7 @@ straight=Suora
strokeColor=Rivin väri
style=Tyyli
subscript=Alaindeksi
+summary=Summary
superscript=Yläindeksi
support=Tuki
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Mitään ei ole valittu
other=Muu
softwaredesign=Ohjelmistojen suunnittelu
venndiagrams=Venn-diagrammit
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Viivakehykset
diff --git a/war/resources/dia_fil.txt b/war/resources/dia_fil.txt
index 03843990..d0ea36d0 100644
--- a/war/resources/dia_fil.txt
+++ b/war/resources/dia_fil.txt
@@ -8,6 +8,7 @@ addImages=Magdagdag ng mga imahe
addImageUrl=Magdagdag ng imahe ng URL
addLayer=Magdagdag ng palapag
addProperty=Magdagdag ng katangian
+address=Address
addToExistingDrawing=Idagdag sa kasalukuyang guhit
addWaypoint=Magdagdag ng panturo
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Ihanay
alignment=Paghahanay
allChangesLost=Lahat ng pagbabago ay mawawala
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Anggulo
@@ -40,6 +43,7 @@ authorizing=Pinahihintulutan
automatic=Otomatiko
autosave=Otomatikong pag-seyb
autosize=Otomatikong sukat
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Ibagsak/ Palawigin
collapse-expand=Pindutin para ibagsak/palawigin\nShift-pindutin para galawin ang mga katabi\nAlt-pindutin para maprutektahan ang sukat ng grupo
collapsible=Pwedeng bumagsak
comic=Comic
+comment=Comment
commentsNotes=Mga kumento/Paalala
connect=Konekta
connecting=Kumokunekta
@@ -273,6 +278,8 @@ forum=Diskusyon/ Tulong usapan
fromTemplate=Mula sa templeyt
fromTemplateUrl=Mula sa template URL
fromText=Mula sa teksto
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Pangkalahatan
github=GitHub
@@ -306,7 +313,9 @@ htmlText=Teksto ng HTML
iframe=IKuwadro
ignore=Baliwalain
image=Imahe
+imageUrl=Image URL
images=Mga imahe
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Magsingit ng hanay sa itaas
insertRowAfter=Magsingit ng hanay pagkatapos
insertText=Magsingit ng teksto
inserting=Nagsisingit
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Imbalidong pangalan
invalidOrMissingFile=Imbalido o nawawalang payl
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Lengguwahe
leanMapping=Lean Mapping
lastChange=Huling pagbabago {1}
lessThanAMinute=Mababa sa isang minuto
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minuto
minutes=mga minuto
@@ -377,6 +389,8 @@ manual=Manwal
middle=Gitna
misc=Iba't iba
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Higit
moreResults=Higit pang mga resulta
moreShapes=Higit pang mga hugis
@@ -390,6 +404,7 @@ networking=Networking
new=Bago
newLibrary=Bagong libraryo
nextPage=Next Page
+noAttachments=No attachments found
noColor=Walang kulay
noFiles=Walang mga payl
noFileSelected=Walang payl na napili
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Walang sagot mula sa serber
noResultsFor=Walang mga resulta para sa '{1}'
noRevisions=Walang mga pagbabago
+noSearchResults=No search results found
normal=Normal
north=Hilaga
notADiagramFile=Hindi dayagram na payl
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Tatak
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Mga katangian
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Istraktura ng Radial
readOnly=Pagbasa- lang
reconnecting=Kumukonektang muli
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Ang payl na ito ay ginawa o minodipika sa draw.io pro. Ikaw ay dadalhin na ngayon.
realtimeTimeout=Mukhang ikaw ay gumawa ng konting mga pagbabago ng ikaw ay wala sa linya o naka oplayn. Kami po ay humihingi ng tawad, itong mga pagbabago ay hindi maiseseyb.
redo=Gawing muli
@@ -512,6 +532,7 @@ restoring=Ibinabalik
retryingIn=Susubukang muli sa {1} segundo(s)
retryingLoad=Hindi naglowd. Sinusubukang muli...
retryingLogin=Natapos na ang oras ng Login. Sinusubukang muli...
+revision=Revision
revisionHistory=Pagkasunod sunod ng pagbabago
right=Kanan
rightAlign=Ihanay sa kanan
@@ -563,6 +584,7 @@ solid=Solido
sourceSpacing=Ang source ng espasyo
south=Timog
software=Software
+space=Space
spacing=Espasyo
specialLink=Espesyal na paguugnay
standard=Standard
@@ -571,6 +593,7 @@ straight=Diresto
strokeColor=Kulay ng linya
style=Istilo
subscript=Subskripto
+summary=Summary
superscript=Superskripto
support=Suporta
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Walang napili
other=Iba
softwaredesign=Disenyo ng Software
venndiagrams=Mga dayagram ng Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wineframes
diff --git a/war/resources/dia_fr.txt b/war/resources/dia_fr.txt
index a9446244..414e85b3 100644
--- a/war/resources/dia_fr.txt
+++ b/war/resources/dia_fr.txt
@@ -8,6 +8,7 @@ addImages=Ajouter des images
addImageUrl=Ajouter l'URL d'une image
addLayer=Ajouter une couche
addProperty=Ajouter une propriété
+address=Address
addToExistingDrawing=Ajouter au diagramme existant
addWaypoint=Ajouter un repère
adjustTo=Ajuster à
@@ -16,6 +17,8 @@ align=Aligner
alignment=Alignement
allChangesLost=Toutes les modifications seront perdues!
allPages=Toutes les pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=Toutes les étiquettes
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Autorisé
automatic=Automatique
autosave=Enregistrement auto
autosize=Taille automatique
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Réduire-Développer
collapse-expand=Cliquer pour réduire/développer\nShift+clic pour déplacer les voisins\nAlt+clic pour conserver la taille du groupe
collapsible=Réductible
comic=Comic
+comment=Comment
commentsNotes=Commentaires/Notes
connect=Connecter
connecting=Connexion en cours
@@ -273,6 +278,8 @@ forum=Forum d'aide
fromTemplate=Depuis un modèle
fromTemplateUrl=Depuis le modèle à l'adresse
fromText=Depuis du texte
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Plein écran
general=Général
github=GitHub
@@ -306,7 +313,9 @@ htmlText=Texte HTML
iframe=IFrame
ignore=Ignorer
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image trop grande
imgur=Imgur
import=Importer
@@ -328,6 +337,7 @@ insertRowAfter=Insérer une ligne après
insertText=Insérer du texte
inserting=Insertion
invalidFilename=Le nom des diagrammes ne doit pas contenir les caractères suivants : \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Nom invalide
invalidOrMissingFile=Fichier invalide ou manquant
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Langue
leanMapping=Lean Mapping
lastChange=Dernière modification il y a {1}
lessThanAMinute=moins d'une minute
+licensingError=Licensing Error
licenseHasExpired=La license pour {1} a expiré le {2}. Cliquez ici.
licenseWillExpire=La license pour {1} expirera le {2}. Cliquez ici.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manuel
middle=Au milieu
misc=Divers
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Plus
moreResults=Plus de résultats
moreShapes=Plus d'icones
@@ -390,6 +404,7 @@ networking=Networking
new=Nouveau
newLibrary=Nouvelle librairie
nextPage=Next Page
+noAttachments=No attachments found
noColor=Pas de couleur
noFiles=Pas de fichiers
noFileSelected=Aucun fichier sélectionné
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Pas de réponse du serveur
noResultsFor=Pas de résultats pour '{1}'
noRevisions=Pas de révisions
+noSearchResults=No search results found
normal=Normal
north=Nord
notADiagramFile=N'est pas un fichier de diagramme
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Imprimer
printAllPages=Imprimer toutes les pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Propriétés
publish=Publier
publishConfirmation=Cela rendra public votre diagramme sur imgur.com
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Arbre radial
readOnly=Lecture seule
reconnecting=Reconnexion
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Fichier créé ou modifié dans draw.io pro. Vous allez être redirigé maintenant.
realtimeTimeout=Des modifications hors ligne ont été effectuées. Ces modifications ne peuvent être enregistrées.
redo=Refaire
@@ -512,6 +532,7 @@ restoring=Récupération
retryingIn=Nouvelle tentative dans {1} seconde(s)
retryingLoad=Le chargement a échoué. Nouvel essai...
retryingLogin=L'identification a échoué. Nouvel essai...
+revision=Revision
revisionHistory=Historique des révisions
right=Droit
rightAlign=Aligner à droite
@@ -563,6 +584,7 @@ solid=Uni
sourceSpacing=Espacement de la source
south=Sud
software=Software
+space=Space
spacing=Espacement
specialLink=Lien Spécial
standard=Standard
@@ -571,6 +593,7 @@ straight=Droit
strokeColor=Couleur de la ligne
style=Style
subscript=Texte miniaturisé
+summary=Summary
superscript=Texte agrandi
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Pas de sélection
other=Autre
softwaredesign=Modélisation Logicielle
venndiagrams=Diagrammes de Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Maquettes conceptuelles
diff --git a/war/resources/dia_gu.txt b/war/resources/dia_gu.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_gu.txt
+++ b/war/resources/dia_gu.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_he.txt b/war/resources/dia_he.txt
index 690792fe..4fcc0e1f 100644
--- a/war/resources/dia_he.txt
+++ b/war/resources/dia_he.txt
@@ -8,6 +8,7 @@ addImages=‫הוסף תמונות‬
addImageUrl=‫הוסף קישור לתמונה‬
addLayer=‫הוסף שכבה‬
addProperty=‫הוסף מאפיין‬
+address=Address
addToExistingDrawing=‫הוסף לסקיצה קיימת‬
addWaypoint=‫הוסף נקודת ציון‬
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=‫ישר‬
alignment=‫יישור ‬
allChangesLost=‫כל השינויים יאבדו!‬
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=‫זווית‬
@@ -40,6 +43,7 @@ authorizing=‫נותן הרשאה‬
automatic=‫אוטומטי‬
autosave=‫שמירה אוטומטית‬
autosize=‫גודל אוטומטי‬
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=‫פרק/הרחב‬
collapse-expand=‫‫לחץ כדי לפרק/להרחיב/n החזק את Shift ולחץ כדי להזיז שכנים/n החזק את Alt ולחץ כדי להגן על גודל הקבוצה‬‬
collapsible=‫ניתן לפירוק‬
comic=Comic
+comment=Comment
commentsNotes=‫תגובות/הערות‬
connect=‫חבר ‬
connecting=‫מחבר‬
@@ -273,6 +278,8 @@ forum=‫דיון/פורום תמיכה‬
fromTemplate=‫מתוך תבנית‬
fromTemplateUrl=‫מתוך קישור לתבנית‬
fromText=‫מטקסט‬
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=‫כללי‬
github=GitHub
@@ -306,7 +313,9 @@ htmlText=‫טקסט HTML‬
iframe=IFrame
ignore=‫התעלם‬
image=‫תמונה‬
+imageUrl=Image URL
images=‫תמונות‬
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=‫ייבא‬
@@ -327,7 +336,8 @@ insertRowBefore=‫הכנס שורה מעל‬
insertRowAfter=‫הכנס שורה אחרי‬
insertText=‫הכנס טקסט‬
inserting=‫מכניס‬
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=‫שם לא חוקי‬
invalidOrMissingFile=‫קובץ חסר או לא תקין‬
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=‫שפה‬
leanMapping=Lean Mapping
lastChange=‫שינוי אחרון לפני {1}‬
lessThanAMinute=‫פחות מדקה‬
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=‫דקה‬
minutes=‫דקות‬
@@ -377,6 +389,8 @@ manual=‫ידני‬
middle=‫אמצע‬
misc=‫שונות‬
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=‫עוד‬
moreResults=‫תוצאות נוספות‬
moreShapes=‫צורות נוספות‬
@@ -390,6 +404,7 @@ networking=Networking
new=‫חדש‬
newLibrary=‫ספרייה חדשה‬
nextPage=Next Page
+noAttachments=No attachments found
noColor=‫ללא צבע‬
noFiles=‫ללא קבצים‬
noFileSelected=‫לא נבחרו קבצים‬
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=‫אין תגובה מהשרת‬
noResultsFor=‫אין תוצאות עבור '{1}'‬
noRevisions=‫אין שינויים‬
+noSearchResults=No search results found
normal=‫רגיל‬
north=‫צפון‬
notADiagramFile=‫זה לא קובץ דיאגרמה ‬
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=‫הדפס‬
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=‫מאפיינים‬
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=‫עץ רדיאלי‬
readOnly=‫קריאה בלבד‬
reconnecting=‫מתחבר מחדש‬
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=‫הקובץ הזה נוצר או שונה באמצעות draw.io pro. אתה תנותב עכשיו.‬
realtimeTimeout=‫נראה שביצעת מספר שינויים במצב לא מקוון. אנחנו מצטערים, לא ניתן לשמור שינויים אלו.‬
redo=‫בצע שוב‬
@@ -512,6 +532,7 @@ restoring=‫משחזר‬
retryingIn=‫מנסה מחדש בעוד {1} שניות‬
retryingLoad=‫הטעינה נכשלה. מנסה מחדש...‬
retryingLogin=‫זמן ההתחברות פג. מנסה מחדש...‬
+revision=Revision
revisionHistory=‫היסטוריית שינויים‬
right=‫ימין‬
rightAlign=‫יישר לימין‬
@@ -563,6 +584,7 @@ solid=‫מוצק‬
sourceSpacing=‫מרווח מקור‬
south=‫דרום‬
software=Software
+space=Space
spacing=‫מרווח‬
specialLink=‫קישור מיוחד‬
standard=Standard
@@ -571,6 +593,7 @@ straight=‫ישר‬
strokeColor=‫צבע קו‬
style=‫סגנון‬
subscript=‫סקריפט משנה‬
+summary=Summary
superscript=‫סופר סקריפט‬
support=‫תמיכה‬
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=‫לא נבחרו פריטים ‬
other=‫אחר‬
softwaredesign=‫עיצוב תוכנה‬
venndiagrams=‫דיאגרמות Venn‬
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_hi.txt b/war/resources/dia_hi.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_hi.txt
+++ b/war/resources/dia_hi.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_hr.txt b/war/resources/dia_hr.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_hr.txt
+++ b/war/resources/dia_hr.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_hu.txt b/war/resources/dia_hu.txt
index 14879c01..104ddf06 100644
--- a/war/resources/dia_hu.txt
+++ b/war/resources/dia_hu.txt
@@ -8,6 +8,7 @@ addImages=Képet hozzáad
addImageUrl=Kép URL hozzáadás
addLayer=Réteget hozzáad
addProperty=Tulajdonság hozzáadás
+address=Address
addToExistingDrawing=Add hozzá a meglévő rajzhoz
addWaypoint=Útpont hozzáadás
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Igazít
alignment=Igazítás
allChangesLost=Elvesz minden változtatás!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Szög
@@ -40,6 +43,7 @@ authorizing=Engedélyezés
automatic=Automatikus
autosave=Automatikus mentés
autosize=Automatikus méret
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Összevon/Bővít
collapse-expand=Összevon/Bővít
collapsible=Összevonható
comic=Comic
+comment=Comment
commentsNotes=Kommentárok/Jegyzetek
connect=Csatlakoztat
connecting=Csatlakoztatás
@@ -273,6 +278,8 @@ forum=Fórum
fromTemplate=Sablonból
fromTemplateUrl=Sablon URL-ból
fromText=Szövegből
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Általános
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML szöveg
iframe=IFrame
ignore=Mellőz
image=Kép
+imageUrl=Image URL
images=Képek
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Importál
@@ -327,7 +336,8 @@ insertRowBefore=Sort beszúr felette
insertRowAfter=Sort beszúr alatta
insertText=Insert Text
inserting=Beszúrás
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Érvénytelen név
invalidOrMissingFile=Érvénytelen vagy hiányzó fájl
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Nyelv
leanMapping=Lean Mapping
lastChange=Utolsó változás ideje: {1}
lessThanAMinute=kevesebb mint egy perc
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=perc
minutes=perc
@@ -377,6 +389,8 @@ manual=Kézi
middle=Közép
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Több
moreResults=Több eredmény
moreShapes=Több alakzat
@@ -390,6 +404,7 @@ networking=Networking
new=Új
newLibrary=Új könyvtár
nextPage=Next Page
+noAttachments=No attachments found
noColor=Szín nélkül
noFiles=Fájlok nélkül
noFileSelected=Nincs kiválasztott fájl
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Nincs válasz a szervertől
noResultsFor=Nincs eredmény a {1}-hez
noRevisions=Nincs revízió
+noSearchResults=No search results found
normal=Normális
north=Észak
notADiagramFile=Nem diagram fájl
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Nyomtat
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Tulajdonságok
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radiális fa
readOnly=Csak olvasható
reconnecting=Újracsatlakoztatás
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Ez a fájl a draw.io pro-ban lett készítve vagy módosítva. Azonnal át lesz irányítva.
realtimeTimeout=Úgy látszik néhány változást csinált miközben le volt kapcsolva. Sajnáljuk, ezek a változtatások nem menthetők.
redo=Helyrehoz
@@ -512,6 +532,7 @@ restoring=Visszaállítás
retryingIn=Újrapróbálkozás {1} másodperc múlva
retryingLoad=A betöltés sikertelen. Újrapróbálkozás...
retryingLogin=A bejelentkezési idő lejárt. Újrapróbálkozás...
+revision=Revision
revisionHistory=Revízió történelem
right=Jobb
rightAlign=Jobb igazítás
@@ -563,6 +584,7 @@ solid=Folytonos
sourceSpacing=Forrás térköz
south=Dél
software=Software
+space=Space
spacing=Térköz
specialLink=Különleges link
standard=Standard
@@ -571,6 +593,7 @@ straight=Egyenes
strokeColor=Vonal szín
style=Stílus
subscript=Index
+summary=Summary
superscript=Mutatószám
support=Támogatás
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Semmi nincs kijelölve
other=Más
softwaredesign=Szoftvertervezés
venndiagrams=Venn diagramok
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Drótvázak
diff --git a/war/resources/dia_i18n.txt b/war/resources/dia_i18n.txt
index 5812acb6..940dd3c8 100644
--- a/war/resources/dia_i18n.txt
+++ b/war/resources/dia_i18n.txt
@@ -8,6 +8,7 @@ addImages=addImages
addImageUrl=addImageUrl
addLayer=addLayer
addProperty=addProperty
+address=address
addToExistingDrawing=addToExistingDrawing
addWaypoint=addWaypoint
adjustTo=adjustTo
@@ -16,6 +17,8 @@ align=align
alignment=alignment
allChangesLost=allChangesLost
allPages=allPages
+allProjects=allProjects
+allSpaces=allSpaces
allTags=allTags
android=android
angle=angle
@@ -40,6 +43,7 @@ authorizing=authorizing
automatic=automatic
autosave=autosave
autosize=autosize
+attachments=attachments
aws=aws
aws3d=aws3d
azure=azure
@@ -98,6 +102,7 @@ collapseExpand=collapseExpand
collapse-expand=collapse-expand
collapsible=collapsible
comic=comic
+comment=comment
commentsNotes=commentsNotes
connect=connect
connecting=connecting
@@ -273,6 +278,8 @@ forum=forum
fromTemplate=fromTemplate
fromTemplateUrl=fromTemplateUrl
fromText=fromText
+fromUrl=fromUrl
+fromThisPage=fromThisPage
fullscreen=fullscreen
general=general
github=github
@@ -306,7 +313,9 @@ htmlText=htmlText
iframe=iframe
ignore=ignore
image=image
+imageUrl=imageUrl
images=images
+imagePreviewError=imagePreviewError
imageTooBig=imageTooBig
imgur=imgur
import=import
@@ -328,6 +337,7 @@ insertRowAfter=insertRowAfter
insertText=insertText
inserting=inserting
invalidFilename=invalidFilename
+invalidLicenseSeeThisPage=invalidLicenseSeeThisPage
invalidName=invalidName
invalidOrMissingFile=invalidOrMissingFile
invalidPublicUrl=invalidPublicUrl
@@ -342,8 +352,10 @@ language=language
leanMapping=leanMapping
lastChange=lastChange
lessThanAMinute=lessThanAMinute
+licensingError=licensingError
licenseHasExpired=licenseHasExpired
licenseWillExpire=licenseWillExpire
+linkText=linkText
list=list
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=manual
middle=middle
misc=misc
mockups=mockups
+modificationDate=modificationDate
+modifiedBy=modifiedBy
more=more
moreResults=moreResults
moreShapes=moreShapes
@@ -390,6 +404,7 @@ networking=networking
new=new
newLibrary=newLibrary
nextPage=nextPage
+noAttachments=noAttachments
noColor=noColor
noFiles=noFiles
noFileSelected=noFileSelected
@@ -402,6 +417,7 @@ noPreview=noPreview
noResponse=noResponse
noResultsFor=noResultsFor
noRevisions=noRevisions
+noSearchResults=noSearchResults
normal=normal
north=north
notADiagramFile=notADiagramFile
@@ -471,6 +487,8 @@ previousPage=previousPage
print=print
printAllPages=printAllPages
procEng=procEng
+project=project
+priority=priority
properties=properties
publish=publish
publishConfirmation=publishConfirmation
@@ -483,6 +501,8 @@ rack=rack
radialTree=radialTree
readOnly=readOnly
reconnecting=reconnecting
+recentlyUpdated=recentlyUpdated
+recentlyViewed=recentlyViewed
redirectToNewApp=redirectToNewApp
realtimeTimeout=realtimeTimeout
redo=redo
@@ -512,6 +532,7 @@ restoring=restoring
retryingIn=retryingIn
retryingLoad=retryingLoad
retryingLogin=retryingLogin
+revision=revision
revisionHistory=revisionHistory
right=right
rightAlign=rightAlign
@@ -563,6 +584,7 @@ solid=solid
sourceSpacing=sourceSpacing
south=south
software=software
+space=space
spacing=spacing
specialLink=specialLink
standard=standard
@@ -571,6 +593,7 @@ straight=straight
strokeColor=strokeColor
style=style
subscript=subscript
+summary=summary
superscript=superscript
support=support
sysml=sysml
@@ -646,4 +669,6 @@ nothingIsSelected=nothingIsSelected
other=other
softwaredesign=softwaredesign
venndiagrams=venndiagrams
+webEmailOrOther=webEmailOrOther
+webLink=webLink
wireframes=wireframes
diff --git a/war/resources/dia_id.txt b/war/resources/dia_id.txt
index bdf9efd5..7d51481f 100644
--- a/war/resources/dia_id.txt
+++ b/war/resources/dia_id.txt
@@ -8,6 +8,7 @@ addImages=Tambah gambar
addImageUrl=Tambah URL gambar
addLayer=Add Layer
addProperty=Tambah properti
+address=Address
addToExistingDrawing=Tambah ke gambar yang ada
addWaypoint=Tambah arah poin
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Rata
alignment=Perataan
allChangesLost=Semua perubahan akan hilang!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Sudut
@@ -40,6 +43,7 @@ authorizing=Memberikan otorisasi
automatic=Otomatis
autosave=Simpan secara otomatis
autosize=Ukuran Otomatis
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Perlebar/Persempit
collapse-expand=Klik untuk persempit/perlebar\nShift-klik untuk memindahkan \nAlt-click untuk proteksi ukuran grup
collapsible=Dapat dipersempit
comic=Comic
+comment=Comment
commentsNotes=Komen/catatan
connect=Hubungi
connecting=Menghubungi
@@ -273,6 +278,8 @@ forum=Forum Diskusi/Bantuan
fromTemplate=Dari template
fromTemplateUrl=Dari URL template
fromText=Dari Teks
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Umum
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML teks
iframe=IFrame
ignore=Abaikan
image=Gambar
+imageUrl=Image URL
images=Gambar-gambar
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Impor
@@ -327,7 +336,8 @@ insertRowBefore=Sisipkan baris pada bagian atas
insertRowAfter=Sisipan baris setelah
insertText=Sisipkan teks
inserting=Menyisipkan
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Nama tidak valid
invalidOrMissingFile=File tidak valid atau hilang
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Bahasa
leanMapping=Lean Mapping
lastChange=Modifikasi () yang lalu
lessThanAMinute=Kurang dari 1 menit
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=Menit
minutes=Menit
@@ -377,6 +389,8 @@ manual=Manual
middle=Pertengahan
misc=Lain-lain
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Lebih
moreResults=Hasil Lainnya
moreShapes=Bentuk Lainnya
@@ -390,6 +404,7 @@ networking=Networking
new=Baru
newLibrary=Librari baru
nextPage=Next Page
+noAttachments=No attachments found
noColor=Tidak ada warna
noFiles=Tidak ada file
noFileSelected=Tidak ada file yang dipilih
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=TIdak ada respon dari server
noResultsFor=Tidak ada hasil untuk '{1}'
noRevisions=Tidak ada revisi
+noSearchResults=No search results found
normal=normal
north=Utara
notADiagramFile=Bukan sebuah file diagram
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Cetak
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properti-properti
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Data struktur serara radial
readOnly=Baca saja
reconnecting=Menghubungi kembali
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=File ini dibuat atau diubah oleh draw.io pro. Anda akan diarahkan sekarang
realtimeTimeout=Sepertinya Anda telah membuat beberapa perubahan selagi offline. Kami minta maaf, perubahan ini tidak dapat disimpan.
redo=Ulangi
@@ -512,6 +532,7 @@ restoring=Mengembalikan
retryingIn=Mencoba lagi dalam () detik
retryingLoad=Pemanggilan gagal. Mecoba lagi...
retryingLogin=Waktu login habis. Mencoba lagi...
+revision=Revision
revisionHistory=revisi yang lalu
right=Kanan
rightAlign=Rata Kanan
@@ -563,6 +584,7 @@ solid=Padat
sourceSpacing=Spasi Sumber
south=Selatan
software=Software
+space=Space
spacing=Spasi
specialLink=Tautan spesial
standard=Standard
@@ -571,6 +593,7 @@ straight=Lurus
strokeColor=Warna Garis
style=Gaya
subscript=Subskrip
+summary=Summary
superscript=Superskrip
support=Bantuan
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Tidak ada yang dipilih
other=Lainnya
softwaredesign=desain piranti lunak
venndiagrams=Diagram Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Bingkai skema
diff --git a/war/resources/dia_it.txt b/war/resources/dia_it.txt
index 37626503..563138a1 100644
--- a/war/resources/dia_it.txt
+++ b/war/resources/dia_it.txt
@@ -8,6 +8,7 @@ addImages=Aggiungi immagini
addImageUrl=Aggiungi immagine da URL
addLayer=Aggiungi layer
addProperty=Aggiungi proprietà
+address=Address
addToExistingDrawing=Aggiungi al disegno esistente
addWaypoint=Aggiungi punto di passaggio
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Allinea
alignment=Allineamento
allChangesLost=Tutte le modifiche saranno perse!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angolo
@@ -40,6 +43,7 @@ authorizing=Autorizzando
automatic=Automatico
autosave=Salvataggio automatico
autosize=Ridimensionamento automatico
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Riduci/Espandi
collapse-expand=Clicca per ridurre/espandere\Clicca e premi shift per muovere gli oggetti vicini\Clicca e premi alt per proteggere le dimensioni del gruppo
collapsible=Riducibile
comic=Comic
+comment=Comment
commentsNotes=Commenti/Note
connect=Connetti
connecting=Connessione
@@ -273,6 +278,8 @@ forum=Forum di discussione/Aiuto
fromTemplate=Da modello
fromTemplateUrl=Da modello tramite URL
fromText=Dal testo
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Generale
github=GitHub
@@ -306,7 +313,9 @@ htmlText=Testo HTML
iframe=IFrame
ignore=Ignora
image=Immagine
+imageUrl=Image URL
images=Immagini
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Importa
@@ -327,7 +336,8 @@ insertRowBefore=Inserisci riga sopra
insertRowAfter=Inserisci riga sotto
insertText=Inserisci testo
inserting=Inserimento in corso
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Nome non valido
invalidOrMissingFile=File mancante o non valido
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Lingua
leanMapping=Lean Mapping
lastChange=Ultima modifica {1} fa
lessThanAMinute=meno di un minuto
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minuto
minutes=minuti
@@ -377,6 +389,8 @@ manual=Manuale
middle=Al centro
misc=Miscellanea
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Altro
moreResults=Altri risultati
moreShapes=Altre forme
@@ -390,6 +404,7 @@ networking=Networking
new=Nuovo
newLibrary=Nuova libreria
nextPage=Next Page
+noAttachments=No attachments found
noColor=Nessun colore
noFiles=Nessun file
noFileSelected=Nessun file selezionato
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Nessuna risposta dal server
noResultsFor=Nessun risultato per '{1}'
noRevisions=Nessuna revisione
+noSearchResults=No search results found
normal=Normale
north=Nord
notADiagramFile=Non un file di diagramma
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Stampa
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Proprietà
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Albero radiale
readOnly=Sola lettura
reconnecting=Riconessione
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Questo file è stato creato o modificato in draw.io pro. Sarai reindirizzato ora.
realtimeTimeout=Sembra che tu abbia fatto alcune modifiche mentre eri offline. Purtroppo queste modifiche non possono essere salvate.
redo=Ripeti
@@ -512,6 +532,7 @@ restoring=Recupero in corso
retryingIn=Nuovo tentativo in {1} secondi
retryingLoad=Caricamento non riuscito. Nuovo tentativo in corso...
retryingLogin=Login time out. Nuovo tentativo in corso...
+revision=Revision
revisionHistory=Vedi modifiche precedenti
right=A destra
rightAlign=Allinea a destra
@@ -563,6 +584,7 @@ solid=Solido
sourceSpacing=Spaziatura dell'origine
south=Sud
software=Software
+space=Space
spacing=Spaziatura
specialLink=Link speciale
standard=Standard
@@ -571,6 +593,7 @@ straight=Diritta
strokeColor=Colore linea
style=Stile
subscript=Indice
+summary=Summary
superscript=Testo ingrandito
support=Supporto
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Non è stato selezionato nulla
other=Altro
softwaredesign=Disegno del software
venndiagrams=Diagrammi di Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Rappresentazione in 3D
diff --git a/war/resources/dia_ja.txt b/war/resources/dia_ja.txt
index 0fc055a6..0a009198 100644
--- a/war/resources/dia_ja.txt
+++ b/war/resources/dia_ja.txt
@@ -8,6 +8,7 @@ addImages=画像を追加
addImageUrl=画像のURLを追加
addLayer=レイヤーを追加
addProperty=属性を追加
+address=Address
addToExistingDrawing=既存の図面に追加
addWaypoint=途中点を追加
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=整列
alignment=文字配置
allChangesLost=すべての変更が失われます!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=アンドロイド
angle=角度
@@ -40,6 +43,7 @@ authorizing=認証中...
automatic=自動
autosave=自動保存
autosize=自動サイズ
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=折りたたむ / 拡げる
collapse-expand=折りたたむ / 拡げる
collapsible=折りたたみ可
comic=Comic
+comment=Comment
commentsNotes=コメント / 備考
connect=接続する
connecting=接続中
@@ -273,6 +278,8 @@ forum=ヘルプ・ディスカッション
fromTemplate=テンプレートから
fromTemplateUrl=テンプレートURLから
fromText=テキストから
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=一般
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTMLテキスト
iframe=iFrame
ignore=無視する
image=イメージ
+imageUrl=Image URL
images=イメージ
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=画像が大きすぎます
imgur=Imgur
import=インポート
@@ -327,7 +336,8 @@ insertRowBefore=行を上に挿入
insertRowAfter=行を下に挿入
insertText=文字を挿入
inserting=挿入中
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=無効な名前です
invalidOrMissingFile=無効または不明なファイル
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=言語
leanMapping=Lean Mapping
lastChange={1}保存されました。
lessThanAMinute=1分以内に
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=分前に
minutes=分前に
@@ -377,6 +389,8 @@ manual=マニュアル
middle=上下中央揃え
misc=その他
mockups=モックアップ
+modificationDate=Modification date
+modifiedBy=Modified by
more=その他
moreResults=その他の結果
moreShapes=その他の図形
@@ -390,6 +404,7 @@ networking=新規
new=新規作成
newLibrary=新規ライブラリ
nextPage=Next Page
+noAttachments=No attachments found
noColor=色なし
noFiles=ファイルなし
noFileSelected=ファイルが選ばれていません。
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=サーバーの応答がありません。
noResultsFor={1}'での検索結果はありません
noRevisions=改訂はありません。
+noSearchResults=No search results found
normal=ノーマル
north=上
notADiagramFile=ダイアグラムファイルではありません。
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=印刷
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=属性
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=放射状図
readOnly=読み取り専用
reconnecting=再接続中
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=このファイルはdraw.io Proで作成されました。リダイレクトします。
realtimeTimeout=オフライン時にいくつかの修正があったようですが、それらは保存されません。申し訳ございません。
redo=やり直し
@@ -512,6 +532,7 @@ restoring=復帰中
retryingIn={1}秒後に再試行します
retryingLoad=ロードが失敗しました。再試行中。
retryingLogin=ログインがタイムアウトしました。再試行中。
+revision=Revision
revisionHistory=改訂履歴
right=右
rightAlign=右揃え
@@ -563,6 +584,7 @@ solid=実線
sourceSpacing=始点の間隔
south=下
software=ソフトウェア
+space=Space
spacing=間隔
specialLink=特別なリンク
standard=Standard
@@ -571,6 +593,7 @@ straight=直線
strokeColor=線の色
style=スタイル
subscript=下付き文字
+summary=Summary
superscript=上付き文字
support=サポート
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=何も選択されていません。
other=その他
softwaredesign=ソフトウェアデザイン
venndiagrams=ベン図表
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=ワイヤーフレーム
diff --git a/war/resources/dia_kn.txt b/war/resources/dia_kn.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_kn.txt
+++ b/war/resources/dia_kn.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_ko.txt b/war/resources/dia_ko.txt
index 9439a7f1..cfd8df3e 100644
--- a/war/resources/dia_ko.txt
+++ b/war/resources/dia_ko.txt
@@ -8,6 +8,7 @@ addImages=이미지 추가
addImageUrl=이미지 URL 추가
addLayer=레이어 추가
addProperty=속성 추가
+address=Address
addToExistingDrawing=기존 그림에 추가
addWaypoint=중간점 추가
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=정렬
alignment=정렬
allChangesLost=모든 변경내용이 손실됩니다!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=각
@@ -40,6 +43,7 @@ authorizing=승인중
automatic=자동
autosave=자동 저장
autosize=자동 크기
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=접기/펼치기
collapse-expand=클릭하여 접기/펼치기\nShift + 클릭하여 인접한 객체 이동\nAlt + 클릭하여 그룹 크기 유지
collapsible=접기가능
comic=Comic
+comment=Comment
commentsNotes=코멘트/메모
connect=연결
connecting=연결중
@@ -273,6 +278,8 @@ forum=토론/문의 포럼
fromTemplate=템플릿에서
fromTemplateUrl=템플릿 URL에서
fromText=텍스트에서
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=일반
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML 텍스트
iframe=IFrame
ignore=무시
image=이미지
+imageUrl=Image URL
images=이미지
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=가져오기
@@ -327,7 +336,8 @@ insertRowBefore=위에 열 삽입
insertRowAfter=아래에 열 삽입
insertText=텍스트 삽입
inserting=삽입중
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=유효하지 않은 이름
invalidOrMissingFile=유효하지 않거나 분실된 파일
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=언어
leanMapping=Lean Mapping
lastChange={1}전 마지막으로 변경됨
lessThanAMinute=방금
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=분
minutes=분
@@ -377,6 +389,8 @@ manual=수동
middle=중간
misc=기타
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=그 외
moreResults=그 외 결과
moreShapes=그 외 도형
@@ -390,6 +404,7 @@ networking=Networking
new=새로 만들기
newLibrary=새로운 라이브러리
nextPage=Next Page
+noAttachments=No attachments found
noColor=색 없음
noFiles=파일 없음
noFileSelected=선택된 파일 없음
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=서버로부터 응답 없음
noResultsFor={1}'에 대한 결과 없음
noRevisions=수정내용 없음
+noSearchResults=No search results found
normal=정상
north=상
notADiagramFile=다이어그램 파일이 아님
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=인쇄
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=속성
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=방사형 트리
readOnly=읽기 전용
reconnecting=다시 연결중
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=이 파일은 draw.io pro에서 생성 또는 수정되었습니다. 지금 페이지를 이동합니다.
realtimeTimeout=일부 변경내용이 오프라인 상태에서 입력되었습니다. 변경내용을 저장할 수 없습니다.
redo=다시 실행
@@ -512,6 +532,7 @@ restoring=복구중
retryingIn={1)초 후 재시도 예정
retryingLoad=불러오기 실패. 재시도중…
retryingLogin=로그인 시간 초과. 재시도중…
+revision=Revision
revisionHistory=수정 내역
right=오른쪽
rightAlign=오른쪽 정렬
@@ -563,6 +584,7 @@ solid=실선
sourceSpacing=소스 간격
south=하
software=Software
+space=Space
spacing=간격
specialLink=특수 링크
standard=Standard
@@ -571,6 +593,7 @@ straight=직선
strokeColor=선 색
style=스타일
subscript=아래 첨자
+summary=Summary
superscript=위 첨자
support=고객지원
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=아무것도 선택되지 않았습니다
other=기타
softwaredesign=소프트웨어 설계
venndiagrams=벤 다이어그램
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=와이어 프레임
diff --git a/war/resources/dia_lt.txt b/war/resources/dia_lt.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_lt.txt
+++ b/war/resources/dia_lt.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_lv.txt b/war/resources/dia_lv.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_lv.txt
+++ b/war/resources/dia_lv.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_ml.txt b/war/resources/dia_ml.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_ml.txt
+++ b/war/resources/dia_ml.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_mr.txt b/war/resources/dia_mr.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_mr.txt
+++ b/war/resources/dia_mr.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_ms.txt b/war/resources/dia_ms.txt
index b656b406..9cfc433e 100644
--- a/war/resources/dia_ms.txt
+++ b/war/resources/dia_ms.txt
@@ -8,6 +8,7 @@ addImages=Tambah imej-imej
addImageUrl=Tambah URL imej
addLayer=Tambah lapisan
addProperty=Tambah sifat
+address=Address
addToExistingDrawing=Tambah ke lukisan yang sedia ada
addWaypoint=Tambah titik arah
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Menjajar
alignment=Penjajaran
allChangesLost=Semua perubahan akan hilang!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Sudut
@@ -40,6 +43,7 @@ authorizing=Mengizinkan
automatic=Automatik
autosave=Simpan secara automatik
autosize=Mengubah saiz secara automatik
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Runtuhkan/Kembangkan
collapse-expand=Klik untuk runtuhkan/kembangkan\nShift-klik untuk gerakkan jiran-jiran\nAlt-klik untuk melindungi saiz kumpulan
collapsible=boleh diruntuhkan
comic=Comic
+comment=Comment
commentsNotes=Ulasan-ulasan/Nota-nota
connect=Menyambung
connecting=Sedang menyambung
@@ -273,6 +278,8 @@ forum=Perbincangan/Forum Bantuan
fromTemplate=Daripada templat
fromTemplateUrl=Daripada URL templat
fromText=Daripada teks
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Umum
github=GitHub
@@ -306,7 +313,9 @@ htmlText=Teks HTML
iframe=IFrame
ignore=Abaikan
image=Imej
+imageUrl=Image URL
images=Imej-imej
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Masukkan baris di atas
insertRowAfter=Masukkan baris selepas
insertText=Masukkan teks
inserting=Memasukkan
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Nama yang tidak sah
invalidOrMissingFile=Fail yang tidak sah atau hilang
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Bahasa
leanMapping=Lean Mapping
lastChange=Perubahan terakhir pada {1} yang lalu
lessThanAMinute=Kurang daripada satu minit
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=Minit
minutes=Minit
@@ -377,6 +389,8 @@ manual=Manual
middle=Tengah
misc=Beraneka
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Lebih banyak
moreResults=Lebih banyak keputusan
moreShapes=Lebih banyak bentuk
@@ -390,6 +404,7 @@ networking=Networking
new=Baru
newLibrary=Perpustakaan baru
nextPage=Next Page
+noAttachments=No attachments found
noColor=Tiada warna
noFiles=Tiada fail-fail
noFileSelected=Tiada fail yang dipilih
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Tiada respons daripada pelayan
noResultsFor=Tiada keputusan untuk '{1}'
noRevisions=Tiada semakan
+noSearchResults=No search results found
normal=Normal
north=Utara
notADiagramFile=Bukan satu fail gambarajah
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Cetak
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Sifat-sifat
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Untuk dibaca sahaja
reconnecting=Sambung semula
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Fail ini telah dicipta atau diubahsuai dalam draw.io pro. Anda akan diarahkan semula sekarang.
realtimeTimeout=Ia kelihatan anda mempunyai perubahan semasa di luar talian. Kami meminta maaf bahawa perubahan ini tidak dapat disimpan.
redo=Buat semula
@@ -512,6 +532,7 @@ restoring=Mengembalikan
retryingIn=Cuba lagi dalam {1} saat
retryingLoad=Gagal untuk memuatkan, Sedang mencuba lagi...
retryingLogin=Masa daftar masuk tamat. Mencuba lagi...
+revision=Revision
revisionHistory=Sejarah semakan
right=kanan
rightAlign=Jajaran kanan
@@ -563,6 +584,7 @@ solid=Pepejal
sourceSpacing=Jarak antara sumber
south=Selatan
software=Software
+space=Space
spacing=Jarak antara sasaran
specialLink=Pautan istimewa
standard=Standard
@@ -571,6 +593,7 @@ straight=Lurus
strokeColor=Warna garis
style=Gaya
subscript=Subskrip
+summary=Summary
superscript=Superskrip
support=Sokongan
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Tiada apa-apa yang dipilih
other=Lain-lain
softwaredesign=Reka bentuk perisian
venndiagrams=Gambarajah Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Bingkai kawat
diff --git a/war/resources/dia_nl.txt b/war/resources/dia_nl.txt
index 722e7996..92448d60 100644
--- a/war/resources/dia_nl.txt
+++ b/war/resources/dia_nl.txt
@@ -8,6 +8,7 @@ addImages=Afbeeldingen toevoegen
addImageUrl=Afbeeldings-url toevoegen
addLayer=Layer toevoegen
addProperty=Eigenschap toevoegen
+address=Address
addToExistingDrawing=Toevoegen aan bestaande tekening
addWaypoint=Waypoint toevoegen
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=In lijn brengen
alignment=Uitlijnen
allChangesLost=Alle veranderingen zullen verloren gaan!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Hoek
@@ -40,6 +43,7 @@ authorizing=Autoriseren
automatic=Automatisch
autosave=Automatisch opslaan
autosize=Automatisch Formaat
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Verkleinen/Vergroten
collapse-expand=Verkleinen/Vergroten
collapsible=Verkleinbaar
comic=Comic
+comment=Comment
commentsNotes=Commentaar/Aantekeningen
connect=Verbinden
connecting=Bezig te verbinden
@@ -273,6 +278,8 @@ forum=Discussie-/Helpforums
fromTemplate=Van sjabloon
fromTemplateUrl=Van template URL
fromText=Van tekst
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Algemeen
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML tekst
iframe=IFrame
ignore=Negeren
image=Afbeelding
+imageUrl=Image URL
images=Afbeeldingen
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Importeren
@@ -327,7 +336,8 @@ insertRowBefore=Voeg rij boven toe
insertRowAfter=Voeg rij na toe
insertText=Text invoegen
inserting=Invoegen
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Ongeldige naam
invalidOrMissingFile=Onjuist of niet gevonden bestand
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Taal
leanMapping=Lean Mapping
lastChange=Laatste verandering {1} minuten geleden
lessThanAMinute=Minder dan een minuut
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=Minuut
minutes=Minuten
@@ -377,6 +389,8 @@ manual=Handleiding
middle=Midden
misc=Diverse
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Meer
moreResults=Meer resultaten
moreShapes=Meer vormen
@@ -390,6 +404,7 @@ networking=Networking
new=Nieuw
newLibrary=Nieuwe bibliotheek
nextPage=Next Page
+noAttachments=No attachments found
noColor=Geen kleur
noFiles=Geen bestanden
noFileSelected=Geen bestand geselecteerd
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Geen reactie van de server
noResultsFor=Geen resultaten voor '{1}'
noRevisions=Geen revisies
+noSearchResults=No search results found
normal=Normaal
north=Noord
notADiagramFile=Geen diagrambestand
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Afdrukken
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Eigenschappen
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radiale boom
readOnly=Alleen-Lezen
reconnecting=Bezig met opnieuw te verbinden
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Dit bestand is gemaakt of aangepast in draw.io. U wordt nu doorgestuurd.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Herhalen
@@ -512,6 +532,7 @@ restoring=Herstellen
retryingIn=Opnieuw proberen in {1} seconde(n)
retryingLoad=Laden mislukt. Opnieuw proberen...
retryingLogin=Login verlopen. Opnieuw proberen...
+revision=Revision
revisionHistory=Revisiegeschiedenis
right=Rechts
rightAlign=Rechts uitlijnen
@@ -563,6 +584,7 @@ solid=Solide
sourceSpacing=Bron Interlinie
south=Zuid
software=Software
+space=Space
spacing=Interlinie
specialLink=Speciale link
standard=Standard
@@ -571,6 +593,7 @@ straight=Recht
strokeColor=Lijn Kleur
style=Stijl
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Help
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Niets geselecteerd
other=Overig
softwaredesign=Softwareontwerp
venndiagrams=Venn diagrammen
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Draadframes
diff --git a/war/resources/dia_no.txt b/war/resources/dia_no.txt
index 0b7b009b..aa81bb00 100644
--- a/war/resources/dia_no.txt
+++ b/war/resources/dia_no.txt
@@ -8,6 +8,7 @@ addImages=Legg til bilder
addImageUrl=Legg til bilde-URL
addLayer=Legg til lag
addProperty=Legg til egenskap
+address=Address
addToExistingDrawing=Legg til i eksisterende tegning
addWaypoint=Legg til støttepunkt
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Juster
alignment=Justering
allChangesLost=Alle endringer vil gå tapt
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Vinkel
@@ -40,6 +43,7 @@ authorizing=Autoriserer
automatic=Automatisk
autosave=Automatisk lagring
autosize=Tilpass størrelse
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Minimer/utvid
collapse-expand=Klikk for å minimere/utvide\nShift-klikk for å flytte nærliggende\nAlt-klikk for å bevare gruppestørrelse
collapsible=Kan minimeres
comic=Comic
+comment=Comment
commentsNotes=Kommentarer/notater
connect=Koble til
connecting=Kobler til
@@ -273,6 +278,8 @@ forum=Diskusjon/hjelpeforum
fromTemplate=Fra mal
fromTemplateUrl=Fra URL for mal
fromText=Fra tekst
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Generell
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML-tekst
iframe=iFrame
ignore=Ignorer
image=Bilde
+imageUrl=Image URL
images=Bilder
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Importer
@@ -327,7 +336,8 @@ insertRowBefore=Sett inn rad ovenfor
insertRowAfter=Sett inn rad nedenfor
insertText=Sett inn tekst
inserting=Setter inn
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Ugyldig navn
invalidOrMissingFile=Ugyldig eller manglende fil
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Språk
leanMapping=Lean-mapping
lastChange=Siste endring for {1} siden
lessThanAMinute=mindre enn ett minutt
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minutt
minutes=minutter
@@ -377,6 +389,8 @@ manual=Manual
middle=Midten
misc=Øvrig
mockups=Testmodeller
+modificationDate=Modification date
+modifiedBy=Modified by
more=Mer
moreResults=Flere treff
moreShapes=Flere former
@@ -390,6 +404,7 @@ networking=Nettverksbygging
new=Ny
newLibrary=Nytt bibliotek
nextPage=Next Page
+noAttachments=No attachments found
noColor=Ingen farge
noFiles=Ingen filer
noFileSelected=Ingen fil valgt
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Ingen respons fra server
noResultsFor=Ingen treff for '{1}'
noRevisions=Ingen revisjoner
+noSearchResults=No search results found
normal=Normal
north=Nord
notADiagramFile=Ikke en diagramfil
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Skriv ut
printAllPages=Print All Pages
procEng=Prosessteknikk
+project=Project
+priority=Priority
properties=Egenskaper
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Reol
radialTree=Radialt tre
readOnly=Skrivebeskyttet
reconnecting=Kobler til på nytt
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Denne filen ble opprettet eller endret i draw.io pro. Du blir nå omdirigert dit.
realtimeTimeout=Det ser ut til at du har foretatt endringer mens du var offline. Vi beklager, men disse endringene kan ikke lagres.
redo=Gjør om
@@ -512,6 +532,7 @@ restoring=Gjenoppretter
retryingIn=Prøver igjen om {1} sekund(er)
retryingLoad=Lasting feilet. Prøver på nytt...
retryingLogin=Innloggingen ble tidsavbrutt. Prøver på nytt...
+revision=Revision
revisionHistory=Revideringshistorikk
right=Høyre
rightAlign=Høyrejuster
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Kildeavstand
south=Sør
software=Programvare
+space=Space
spacing=Avstand
specialLink=Spesiell lenke
standard=Standard
@@ -571,6 +593,7 @@ straight=Rett
strokeColor=Linjefarge
style=Stil
subscript=Senket skrift
+summary=Summary
superscript=Hevet skrift
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Ingenting er valgt
other=Annet
softwaredesign=Programvaredesign
venndiagrams=Venn-diagram
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Trådmodeller
diff --git a/war/resources/dia_pl.txt b/war/resources/dia_pl.txt
index 96883b19..02e9631b 100644
--- a/war/resources/dia_pl.txt
+++ b/war/resources/dia_pl.txt
@@ -8,6 +8,7 @@ addImages=Dodaj obrazy
addImageUrl=Dodaj adres URL obrazu
addLayer=Dodaj warstwę
addProperty=Dodaj atrybut
+address=Address
addToExistingDrawing=Dodaj do istniejącego rysunku
addWaypoint=Dodaj punkt trasy
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Wyrównaj
alignment=Wyrównywanie
allChangesLost=Wszystkie zmiany zostaną utracone!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Kąt
@@ -40,6 +43,7 @@ authorizing=Autoryzacja
automatic=Automatycznie
autosave=Automatyczny zapis
autosize=Automatycznie dopasowanie rozmiaru
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Zwiń/Rozwiń
collapse-expand=Kliknij, aby zwinąć/rozwinąć\nkliknij prztrzymując klawisz Shift, aby przesunąć sąsiadujące \nkliknij przytrzymując klawisz Alt, aby zabezpieczyć rozmiar grupy
collapsible=Zwijalny
comic=Comic
+comment=Comment
commentsNotes=Komentarze/uwagi
connect=Połącz
connecting=Łączenie
@@ -273,6 +278,8 @@ forum=Dyskusja/Forum wsparcia
fromTemplate=Z szablonu
fromTemplateUrl=Z adresu URL szablonu
fromText=Z tekstu
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Ogólny
github=GitHub
@@ -306,7 +313,9 @@ htmlText=Tekst w HTML
iframe=IFrame
ignore=Ignoruj
image=Obraz
+imageUrl=Image URL
images=Obrazy
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Obraz zbyt duży
imgur=Imgur
import=Importuj
@@ -327,7 +336,8 @@ insertRowBefore=Wstaw wiersz u góry
insertRowAfter=Wstaw wiersz u dołu
insertText=Wstaw tekst
inserting=Wstawianie
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Nieprawidłowa nazwa
invalidOrMissingFile=Nieprawidłowy lub brakujący plik
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Język
leanMapping=Lean Mapping
lastChange=Ostatnia zmiana {1} temu
lessThanAMinute=poniżej minuty
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minutę
minutes=minut
@@ -377,6 +389,8 @@ manual=Ręczny
middle=Środek
misc=Różne
mockups=Modele
+modificationDate=Modification date
+modifiedBy=Modified by
more=Więcej
moreResults=Więcej wyników
moreShapes=Więcej kształtów
@@ -390,6 +404,7 @@ networking=Sieci komputerowe
new=Nowy
newLibrary=Nowa biblioteka
nextPage=Next Page
+noAttachments=No attachments found
noColor=Brak koloru
noFiles=Brak plików
noFileSelected=Nie wybrano żadnego pliku
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Brak odpowiedzi z serwera
noResultsFor=Brak wyników dla '{1}'
noRevisions=Brak zmian
+noSearchResults=No search results found
normal=Normalny
north=Północ
notADiagramFile=To nie jest plik diagramu
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Drukuj
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Właściwości
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Szafa serwerowa
radialTree=Drzewo radialne
readOnly=Tylko do odczytu
reconnecting=Łączę ponownie
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Ten plik został utworzony w programie draw.io pro. Teraz nastąpi przekierowanie.
realtimeTimeout=Wygląda na to, że dokonał-eś/aś kilku zmian w trybie offline. Bardzo nam przykro, ale te zmiany nie mogą zostać zapisane.
redo=Powtórz
@@ -512,6 +532,7 @@ restoring=Przywracanie
retryingIn=Ponawiam w ciągu {1} sekund/y
retryingLoad=Błąd ładowania. Ponawiam...
retryingLogin=Upłynął czas logowania. Ponawiam...
+revision=Revision
revisionHistory=Historia zmian
right=Do prawej
rightAlign=Wyrównaj do prawej
@@ -563,6 +584,7 @@ solid=Ciągła
sourceSpacing=Rozmieszczenie źródła
south=Południe
software=Oprogramowanie
+space=Space
spacing=Rozmieszczenie
specialLink=Łącze specjalne
standard=Standardowe
@@ -571,6 +593,7 @@ straight=Prosty
strokeColor=Kolor linii
style=Styl
subscript=Indeks dolny
+summary=Summary
superscript=Indeks górny
support=Wsparcie
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nic nie wybrano
other=Inne
softwaredesign=Projekt oprogramowania
venndiagrams=Diagramy Venna
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Projekty ramowe
diff --git a/war/resources/dia_pt-br.txt b/war/resources/dia_pt-br.txt
index 16338d62..4f68a15b 100644
--- a/war/resources/dia_pt-br.txt
+++ b/war/resources/dia_pt-br.txt
@@ -8,6 +8,7 @@ addImages=Adicionar imagens
addImageUrl=Adicionar URL da imagem
addLayer=Adicionar camada
addProperty=Adicionar propriedade
+address=Address
addToExistingDrawing=Adicionar ao desenho existente
addWaypoint=Adicionar ponto de notificação
adjustTo=Ajustar para
@@ -16,6 +17,8 @@ align=Alinhar 
alignment=Alinhamento
allChangesLost=Todas as modificações serão perdidas! 
allPages=Todas as páginas
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Ângulo
@@ -40,6 +43,7 @@ authorizing=Autorizando
automatic=Automático
autosave=Salvamento automático
autosize=Auto dimensionar 
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Recolher/Expandir
collapse-expand=Recolher/Expandir
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comentários/Notas
connect=Conectar
connecting=Conetando
@@ -273,6 +278,8 @@ forum=Fóruns Discussão/Ajuda
fromTemplate=Do modelo
fromTemplateUrl=Do modelo de URL
fromText=Do texto
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Geral
github=GitHub
@@ -306,7 +313,9 @@ htmlText=Texto HTML
iframe=IFrame
ignore=Ignorar
image=Imagem
+imageUrl=Image URL
images=Imagens
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Importar
@@ -327,7 +336,8 @@ insertRowBefore=Inserir linha acima
insertRowAfter=Inserir linha abaixo
insertText=Inserir texto
inserting=Inserindo
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Nome inválido
invalidOrMissingFile=Arquivo inválido ou em falta
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Linguagem
leanMapping=Lean Mapping
lastChange=Última mudança {1} atrás
lessThanAMinute=menos de um minuto
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minuto
minutes=minutos
@@ -377,6 +389,8 @@ manual=Manual
middle=Meio
misc=Miscelânea
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Mais
moreResults=Mais resultados
moreShapes=Mais formas
@@ -390,6 +404,7 @@ networking=Networking
new=Novo 
newLibrary=Nova biblioteca
nextPage=Next Page
+noAttachments=No attachments found
noColor=Sem cor
noFiles=Nenhum arquivo
noFileSelected=Nenhum arquivo selecionado
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Sem resposta do servidor
noResultsFor=Sem resultados para '{1}'
noRevisions=Nenhuma revisão
+noSearchResults=No search results found
normal=Normal
north=Norte 
notADiagramFile=Não é um arquivo de diagrama
@@ -471,6 +487,8 @@ previousPage=Página anterior
print=Imprimir 
printAllPages=Imprimir todas as páginas
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Propriedades
publish=Publicar
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Árvore radial
readOnly=Somente leitura
reconnecting=Reconetando
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Esse arquivo foi criado ou modificado em draw.io pro. Você será redirecionado agora.
realtimeTimeout=Parece que você fez algumas mudanças enquanto estava offline. Infelizmente essas mudanças não podem ser salvas.
redo=Refazer 
@@ -512,6 +532,7 @@ restoring=Restaurando
retryingIn=Tentando novamente em {1} segundo(s)
retryingLoad=Carregamento falhou. Tentanto novamente...
retryingLogin=Tempo de login esgotado. Tentando novamente...
+revision=Revision
revisionHistory=Histórico de revisões
right=Direita 
rightAlign=Alinhar à direita 
@@ -563,6 +584,7 @@ solid=Sólido
sourceSpacing=Espaçamento entre fontes
south=Sul
software=Software
+space=Space
spacing=Espaçamento 
specialLink=Link especial
standard=Standard
@@ -571,6 +593,7 @@ straight=Reto
strokeColor=Cor da linha 
style=Estilo 
subscript=Subescrever
+summary=Summary
superscript=Sobrescrever
support=Ajuda
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nenhuma seleção
other=Outros
softwaredesign=Design de software
venndiagrams=Diagramas de Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_pt.txt b/war/resources/dia_pt.txt
index 6aa889f5..80593fde 100644
--- a/war/resources/dia_pt.txt
+++ b/war/resources/dia_pt.txt
@@ -8,6 +8,7 @@ addImages=Adicionar imagens
addImageUrl=Adicionar URL da imagem
addLayer=Adicionar camada
addProperty=Adicionar propriedade
+address=Address
addToExistingDrawing=Adicionar ao desenho existente
addWaypoint=Adicionar ponto de notificação
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Alinhar 
alignment=Alinhamento
allChangesLost=Todas as alterações serão perdidas! 
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Ângulo
@@ -40,6 +43,7 @@ authorizing=A autorizar
automatic=Automático
autosave=Guardar automáticamente
autosize=Dimensionar automáticamente
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Reduzir/Ampliar
collapse-expand=Clique para reduzir/ampliar\ Prima Shift para mover os vizinhos n\Prima Alt para proteger o tamanho do grupo
collapsible=Reduzível
comic=Comic
+comment=Comment
commentsNotes=Comentários/Notas
connect=Conetar
connecting=A conetar
@@ -273,6 +278,8 @@ forum=Fóruns de discussão e ajuda
fromTemplate=Do modelo
fromTemplateUrl=Do modelo de URL
fromText=Do texto
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Geral
github=GitHub
@@ -306,7 +313,9 @@ htmlText=Texto HTML
iframe=IFrame
ignore=Ignorar
image=Imagem
+imageUrl=Image URL
images=Imagens
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Importar
@@ -327,7 +336,8 @@ insertRowBefore=Inserir linha acima
insertRowAfter=Inserir linha abaixo
insertText=Inserir texto
inserting=A inserir
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Nome inválido
invalidOrMissingFile=Ficheiro inválido ou em falta
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Linguagem
leanMapping=Lean Mapping
lastChange=A última alteração foi realizada {1} atrás
lessThanAMinute=menos de um minuto
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minuto
minutes=minutos
@@ -377,6 +389,8 @@ manual=Manual
middle=Meio
misc=Diversos
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Mais
moreResults=Mais resultados
moreShapes=Mais formas
@@ -390,6 +404,7 @@ networking=Networking
new=Novo 
newLibrary=Nova biblioteca
nextPage=Next Page
+noAttachments=No attachments found
noColor=Sem cor
noFiles=Nenhum ficheiro
noFileSelected=Nenhum ficheiro selecionado
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Sem resposta do servidor
noResultsFor=Sem resultados para '{1}'
noRevisions=Nenhuma revisão
+noSearchResults=No search results found
normal=Normal
north=Norte 
notADiagramFile=Não é um ficheiro de diagrama
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Imprimir 
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Propriedades
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Árvore radial
readOnly=Somente de leitura
reconnecting=A reconetar
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Este ficheiro foi criado ou modificado em draw.io pro. Será redirecionado.
realtimeTimeout=Parece que realizou algumas alterações enquanto estava desconetado. Lamentoamos, mas estas alterações não podem ser guardadas.
redo=Refazer 
@@ -512,6 +532,7 @@ restoring=A restaurar
retryingIn=A tentar novamente em {1} segundo(s)
retryingLoad=Erro no carregamento. A tentar novamente...
retryingLogin=Tempo de inicio da sessão esgotado. A tentar novamente...
+revision=Revision
revisionHistory=Histórico de revisões
right=Direita 
rightAlign=Alinhar à direita 
@@ -563,6 +584,7 @@ solid=Sólido
sourceSpacing=Espaçamento entre fontes
south=Sul
software=Software
+space=Space
spacing=Espaçamento 
specialLink=Link especial
standard=Standard
@@ -571,6 +593,7 @@ straight=Reto
strokeColor=Cor da linha 
style=Estilo 
subscript=Subescrever
+summary=Summary
superscript=Sobrescrever
support=Ajuda
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nenhuma seleção
other=Outros
softwaredesign=Design de software
venndiagrams=Diagramas de Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_ro.txt b/war/resources/dia_ro.txt
index 0a951c9f..73014448 100644
--- a/war/resources/dia_ro.txt
+++ b/war/resources/dia_ro.txt
@@ -8,6 +8,7 @@ addImages=Adaugă imagini
addImageUrl=Adaugă imagine URL
addLayer=Adaugă layer
addProperty=Adaugă proprietate
+address=Address
addToExistingDrawing=Adaugă la desenul existent
addWaypoint=Adaugă reper
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Aliniază
alignment=Aliniere
allChangesLost=Toate modificările vor fi pierdute!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Unghi
@@ -40,6 +43,7 @@ authorizing=Se autorizează
automatic=Automat
autosave=Salvare automată
autosize=Auto-dimensionare
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Micșorează/Extinde
collapse-expand= Apasă pentru a micşora/extinde\nShift-apasă pentru a muta vecinii \nAlt-apasă pentru a păstra mărimea grupului
collapsible=Reductibil
comic=Comic
+comment=Comment
commentsNotes=Comentarii/Note
connect=Conectare
connecting=În curs de conectare
@@ -273,6 +278,8 @@ forum=Forumuri de Discuții/Ajutor
fromTemplate=Din template
fromTemplateUrl=Din URL template
fromText=Din text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=Text HTML
iframe=IFrame
ignore=Ignoră
image=Imagine
+imageUrl=Image URL
images=Imagini
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Importare
@@ -327,7 +336,8 @@ insertRowBefore=Inserează rând deasupra
insertRowAfter=Inserează rând dedesubt
insertText= Inserează text
inserting=Se inserează
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Nume invalid
invalidOrMissingFile=Fișier invalid sau inexistent
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Limbă
leanMapping=Lean Mapping
lastChange=Ultima modificare {1} în urmă
lessThanAMinute=mai puţin de un minut
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minut
minutes=minute
@@ -377,6 +389,8 @@ manual=Manual
middle=Mijloc
misc=Diverse
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Mai mult
moreResults=Mai multe rezultate
moreShapes=Mai multe forme
@@ -390,6 +404,7 @@ networking=Networking
new=Nou
newLibrary=Bibliotecă nouă
nextPage=Next Page
+noAttachments=No attachments found
noColor=Fără culoare
noFiles=Nu există fișiere
noFileSelected=Nu a fost selectat nici un fișier
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Nici un răspuns de la server
noResultsFor=Nu există rezultate pentru '{1}'
noRevisions=Nici o revizie
+noSearchResults=No search results found
normal=Normal
north=Nord
notADiagramFile=Nu e un fişier de diagramă
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Imprimare
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Caracteristici
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Arbore radial
readOnly=Doar pentru citit
reconnecting=Reconectare
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Acest fişier a fost creat sau modificat cu draw.io pro. Acum vei fi redirecţionat.
realtimeTimeout=Se pare că ai făcut nişte modificări în timp ce erai offline. Ne pare rău, aceste modificări nu pot fi salvate.
redo=Refacere
@@ -512,6 +532,7 @@ restoring=Se recuperează
retryingIn=Reincercare în {1} secunde
retryingLoad=Încercarea a eşuat. Se încearcă din nou...
retryingLogin=Timpul de logare a expirat. Se încearcă din nou...
+revision=Revision
revisionHistory=Istoric revizii
right=Dreapta
rightAlign=Aliniere la dreapta
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Spațierea sursei
south=Sud
software=Software
+space=Space
spacing=Spațiere
specialLink=Link special
standard=Standard
@@ -571,6 +593,7 @@ straight=Drept
strokeColor=Culoarea liniei
style=Stil
subscript=Indice
+summary=Summary
superscript=Text mărit
support=Suport
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nu ai selectat nimic
other=Alt
softwaredesign=Design software
venndiagrams=Diagrame Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframe-uri
diff --git a/war/resources/dia_ru.txt b/war/resources/dia_ru.txt
index b28af193..e7bffda8 100644
--- a/war/resources/dia_ru.txt
+++ b/war/resources/dia_ru.txt
@@ -8,6 +8,7 @@ addImages=Добавить картинку
addImageUrl=Добавить ссылку на картинку
addLayer=Добавить слой
addProperty=Добавить свойство
+address=Address
addToExistingDrawing=Добавить к существующему документу
addWaypoint=Добавить путевую точку
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Выровнять
alignment=Выравнивание
allChangesLost=Все изменения будут потеряны!
allPages=Все страницы
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Угол
@@ -40,6 +43,7 @@ authorizing=Авторизация
automatic=Автоматически
autosave=Автосохранение
autosize=Авторазмер
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Свернуть/Развернуть
collapse-expand=Свернуть/Развернуть\nShift+щелчок - перемещение соседних элементов\nAlt+щелчок - сохранить размер группы
collapsible=Сворачиваемый
comic=Comic
+comment=Comment
commentsNotes=Комментарии/Заметки
connect=Соединить
connecting=Подключение
@@ -273,6 +278,8 @@ forum=Обсуждение/Справочный форум
fromTemplate=Из шаблона
fromTemplateUrl=Из шаблона по ссылке
fromText=Из текста
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Полный экран
general=Общие
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML текст
iframe=IFrame
ignore=Игнорировать
image=Изображение
+imageUrl=Image URL
images=Изображения
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Изображение слишком большое
imgur=Imgur
import=Импортировать
@@ -328,6 +337,7 @@ insertRowAfter=Вставить строку снизу
insertText=Текст
inserting=Вставка
invalidFilename=Название диаграммы не должно сорежать следующие символы: \ / | : ; { < & + ? =
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Некорректное имя
invalidOrMissingFile=Файл поврежден или отсутствует
invalidPublicUrl=Некорректный адрес
@@ -342,8 +352,10 @@ language=Язык
leanMapping=Lean Mapping
lastChange=Последнее изменение {1} назад
lessThanAMinute=меньше минуты
+licensingError=Licensing Error
licenseHasExpired=Лицензия на {1} истекла {2}. Нажмите сюда.
licenseWillExpire=Лицензия на {1} истекает {2}. Нажмите сюда.
+linkText=Link Text
list=List
minute=минуту
minutes=минут
@@ -377,6 +389,8 @@ manual=Вручную
middle=Посередине
misc=Дополнительные
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Еще
moreResults=Другие результаты
moreShapes=Другие фигуры
@@ -390,6 +404,7 @@ networking=Сеть
new=Создать
newLibrary=Новая библиотека
nextPage=Следующая страница
+noAttachments=No attachments found
noColor=Нет цвета
noFiles=Нет файлов
noFileSelected=Файлы не выделены
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Нет ответа от сервера
noResultsFor=Нет результатов для '{1}'
noRevisions=Нет ревизий
+noSearchResults=No search results found
normal=Обычный
north=Север
notADiagramFile=Не файл диаграммы
@@ -471,6 +487,8 @@ previousPage=Предыдущая страница
print=Печать
printAllPages=Пачать всех страниц
procEng=Техн. процессы
+project=Project
+priority=Priority
properties=Свойства
publish=Опубликовать
publishConfirmation=Диаграмма будет опубликована на igmur.com
@@ -483,6 +501,8 @@ rack=Стойки и оборудование
radialTree=Радиальное дерево
readOnly=Только для чтения
reconnecting=Восстановление соединения
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Файл был создан или изменен в более новой версии редактора. Выполняется перенаправление
realtimeTimeout=Похоже, вы внесли некоторые правки, пока находились не в сети. Приносим свои извинения, эти изменения не могут быть сохранены.
redo=Вернуть
@@ -512,6 +532,7 @@ restoring=Восстанавливается
retryingIn=Повторная попытка через {1} с
retryingLoad=Загрузка не удалась. Пробуем еще раз...
retryingLogin=Время входа истекло. Пробуем еще раз...
+revision=Revision
revisionHistory=История изменений
right=Справа
rightAlign=По правому краю
@@ -563,6 +584,7 @@ solid=Сплошная линия
sourceSpacing=От начального узла
south=Юг
software=Software
+space=Space
spacing=Интервал
specialLink=Специальная ссылка
standard=Standard
@@ -571,6 +593,7 @@ straight=По прямой
strokeColor=Цвет линии
style=Стиль
subscript=Нижний индекс
+summary=Summary
superscript=Верхний индекс
support=Поддержка
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Ничего не выбрано
other=Другое
softwaredesign=Проектирование ПО
venndiagrams=Диаграммы Венна
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Макеты интерфейсов (UI)
diff --git a/war/resources/dia_sk.txt b/war/resources/dia_sk.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_sk.txt
+++ b/war/resources/dia_sk.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_sl.txt b/war/resources/dia_sl.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_sl.txt
+++ b/war/resources/dia_sl.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_sr.txt b/war/resources/dia_sr.txt
index 9c8e9d47..96df28d3 100644
--- a/war/resources/dia_sr.txt
+++ b/war/resources/dia_sr.txt
@@ -8,6 +8,7 @@ addImages=Dodaj slike
addImageUrl=Dodaj URL slike
addLayer=Dodaj sloj
addProperty=Dodaj osobinu
+address=Address
addToExistingDrawing=Dodaj na postojeći crtež
addWaypoint=Dodaj waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Poravnaj
alignment=Poravnanje
allChangesLost=Sve promene će biti izgubljene!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Ugao
@@ -40,6 +43,7 @@ authorizing=Autorizacija
automatic=Automatski
autosave=Auto-snimanje
autosize=Automatska veličina
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Spusti/proširi
collapse-expand=Spusti/proširi
collapsible=Kolapsirajući
comic=Comic
+comment=Comment
commentsNotes=Komentari/Beleške
connect=Poveži
connecting=Povezivanje
@@ -273,6 +278,8 @@ forum=Forum
fromTemplate=Od šablona
fromTemplateUrl=Prema URL-u šablona
fromText=Od teksta
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Opšti
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML tekst
iframe=IFrame
ignore=Ignoriši
image=Slika
+imageUrl=Image URL
images=Slike
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -328,6 +337,7 @@ insertRowAfter=Umetni red ispod
insertText=Insert Text
inserting=Umetanje
invalidFilename=Imena dijagrama ne smeju sadržati sledeće znake : \ / | : ; { < & + ? =
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Neispravno ime
invalidOrMissingFile=Neispravan ili nepostojeći dokument
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Jezik
leanMapping=Lean Mapping
lastChange=Poslednja promena pre {1}
lessThanAMinute=manje od minut
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minut
minutes=minuta
@@ -377,6 +389,8 @@ manual=Ručno
middle=Sredina
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Više
moreResults=Još rezultata
moreShapes=Još oblika
@@ -390,6 +404,7 @@ networking=Networking
new=Novi
newLibrary=Nova biblioteka
nextPage=Next Page
+noAttachments=No attachments found
noColor=Bez boje
noFiles=Nema fajlova
noFileSelected=Nijedan izabrani dokument
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Nema odgovora od servera
noResultsFor=Nema više rezultata za {1}
noRevisions=Nema revizija
+noSearchResults=No search results found
normal=Normal
north=Sever
notADiagramFile=Nije dijagram dokument
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Štampa
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Osobine
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radijalno drvo
readOnly=Samo čitanje
reconnecting=Rekonekcija
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Ovaj dokument je kreiran ili menjan u draw.io pro. Sada ćete biti preusmereni.
realtimeTimeout=Izgleda da ste napravili nekoliko promena dok ste bili bez konekcije. Žao nam je, ove promene se ne mogu sačuvati.
redo=Ponovi
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Ponovni pokušaj za {1} sekundi
retryingLoad=Učitavanje neuspešno. Ponovni pokušaj...
retryingLogin=Vreme logovanja isteklo. Ponovni pokušaj...
+revision=Revision
revisionHistory=Istorija revizije
right=Desno
rightAlign=Desno poravnanje
@@ -563,6 +584,7 @@ solid=Puna linija
sourceSpacing=Proređivanje izvora
south=Jug
software=Software
+space=Space
spacing=Proređivanje
specialLink=Posebna veza
standard=Standard
@@ -571,6 +593,7 @@ straight=Pravo
strokeColor=Boja linije
style=Stil
subscript=Potpis
+summary=Summary
superscript=Natpis
support=Podrška
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Ništa nije izabrano
other=Ostali
softwaredesign=Dizajn softvera
venndiagrams=Venovi dijagrami
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Žičani modeli
diff --git a/war/resources/dia_sv.txt b/war/resources/dia_sv.txt
index 1a6a3c0f..d9c40fcf 100644
--- a/war/resources/dia_sv.txt
+++ b/war/resources/dia_sv.txt
@@ -8,6 +8,7 @@ addImages=Lägg till bilder
addImageUrl=Lägg till URL för bild
addLayer=Lägg till lager
addProperty=Lägg till egenskap
+address=Address
addToExistingDrawing=Lägg till på befintlig ritning
addWaypoint=Lägg till vägpunkt
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Justera
alignment=Justering
allChangesLost=Alla ändringar kommer gå förlorade!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Vinkel
@@ -40,6 +43,7 @@ authorizing=Auktorisering
automatic=Automatisk
autosave=Spara automatiskt
autosize=Storleksändra automatiskt
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Minimera/Expandera
collapse-expand=Klicka för att Minimera/Expandera\nShift-klick för att flytta intilliggande \nAlt-klick för att slydda gruppstorleken
collapsible=Minimerbar
comic=Comic
+comment=Comment
commentsNotes=Kommentarer/Anteckningar
connect=Anslut
connecting=Ansluter
@@ -273,6 +278,8 @@ forum=Diskussion/Hjälpforum
fromTemplate=Från mall
fromTemplateUrl=Från URL för mall
fromText=Från text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Allmänt
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML text
iframe=iFrame
ignore=Ignorera
image=Bild
+imageUrl=Image URL
images=Bilder
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Importera
@@ -327,7 +336,8 @@ insertRowBefore=Infoga rad ovanför
insertRowAfter=Infoga rad efter
insertText=Infoga text
inserting=Infogar
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Felaktigt namn
invalidOrMissingFile=Felaktig eller saknad fil
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Språk
leanMapping=Lean Mapping
lastChange=Senaste ändring {1} sedan
lessThanAMinute=mindre än en minut
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minut
minutes=minuter
@@ -377,6 +389,8 @@ manual=Handbok
middle=Mitten
misc=Övrigt
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Mer
moreResults=Mer resultat
moreShapes=Mer former
@@ -390,6 +404,7 @@ networking=Networking
new=Ny
newLibrary=Nytt bibliotek
nextPage=Next Page
+noAttachments=No attachments found
noColor=Ingen färg
noFiles=Inga filer
noFileSelected=Inga filer har valts
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Inget svar från server
noResultsFor=Inga resultat för  '{1}'
noRevisions=Inga revisioner
+noSearchResults=No search results found
normal=Normal
north=Norr
notADiagramFile=Inte en diagramfil
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Skriv ut
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Egenskaper
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radiellt träd
readOnly=Skrivskyddad
reconnecting=Återansluter
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Denna fil skapades eller modifierades i draw.io pro. Du kommer nu omdirigeras dit.
realtimeTimeout=Det ser ut som du gjort några ändringar medan du varit offline. Vi beklagar men dessa ändringar kan inte sparas.
redo=Gör om
@@ -512,6 +532,7 @@ restoring=Återställer
retryingIn=Försöker igen om {1} sekunder
retryingLoad=Kunde inte ladda, försöker igen…
retryingLogin=Det tog för lång tid att logga in, försöker igen…
+revision=Revision
revisionHistory=Revideringshistorik
right=Höger
rightAlign=Högerjustera
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Källavstånd
south=Söder
software=Software
+space=Space
spacing=Avstånd
specialLink=Särskild länk
standard=Standard
@@ -571,6 +593,7 @@ straight=Rak
strokeColor=Linjefärg
style=Stil
subscript=Nedsänkt text
+summary=Summary
superscript=Upphöjd text
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Inget har valts
other=Annat
softwaredesign=Mjukvarudesign
venndiagrams=Venn diagram
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Trådmodeller
diff --git a/war/resources/dia_sw.txt b/war/resources/dia_sw.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_sw.txt
+++ b/war/resources/dia_sw.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_ta.txt b/war/resources/dia_ta.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_ta.txt
+++ b/war/resources/dia_ta.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_te.txt b/war/resources/dia_te.txt
index 54d30d35..4bc728bc 100644
--- a/war/resources/dia_te.txt
+++ b/war/resources/dia_te.txt
@@ -8,6 +8,7 @@ addImages=Add Images
addImageUrl=Add Image URL
addLayer=Add Layer
addProperty=Add Property
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Align
alignment=Alignment
allChangesLost=All changes will be lost!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Angle
@@ -40,6 +43,7 @@ authorizing=Authorizing
automatic=Automatic
autosave=Autosave
autosize=Autosize
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Collapse/Expand
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=Collapsible
comic=Comic
+comment=Comment
commentsNotes=Comments/Notes
connect=Connect
connecting=Connecting
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=From Template
fromTemplateUrl=From Template URL
fromText=From Text
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=General
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=Ignore
image=Image
+imageUrl=Image URL
images=Images
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Import
@@ -327,7 +336,8 @@ insertRowBefore=Insert Row Above
insertRowAfter=Insert Row After
insertText=Insert Text
inserting=Inserting
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Invalid name
invalidOrMissingFile=Invalid or missing file
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Language
leanMapping=Lean Mapping
lastChange=Last change {1} ago
lessThanAMinute=less than a minute
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=minute
minutes=minutes
@@ -377,6 +389,8 @@ manual=Manual
middle=Middle
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=More
moreResults=More Results
moreShapes=More Shapes
@@ -390,6 +404,7 @@ networking=Networking
new=New
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=No Color
noFiles=No Files
noFileSelected=No file selected
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=No response from server
noResultsFor=No results for '{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=North
notADiagramFile=Not a diagram file
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Print
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Properties
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=Redo
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn=Retrying in {1} second(s)
retryingLoad=Load failed. Retrying...
retryingLogin=Login time out. Retrying...
+revision=Revision
revisionHistory=Revision History
right=Right
rightAlign=Right Align
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=Source Spacing
south=South
software=Software
+space=Space
spacing=Spacing
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=Line Color
style=Style
subscript=Subscript
+summary=Summary
superscript=Superscript
support=Support
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=Other
softwaredesign=Software Design
venndiagrams=Venn Diagrams
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Wireframes
diff --git a/war/resources/dia_th.txt b/war/resources/dia_th.txt
index 2b34b9ef..9305bea9 100644
--- a/war/resources/dia_th.txt
+++ b/war/resources/dia_th.txt
@@ -8,6 +8,7 @@ addImages=เพิ่มรูปภาพ
addImageUrl=เพิ่ม URL รูปภาพ
addLayer=เพิ่มชั้น
addProperty=เพิ่มคุณสมบัติ
+address=Address
addToExistingDrawing=เพิ่มเข้าสู่การวาดปัจจุบัน
addWaypoint=เพิ่มการวางตำแหน่ง
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=จัดเรียงแนวเดียวกัน
alignment=การจัดเรียงแนวเดียวกัน
allChangesLost=การเปลี่ยนแปลงทั้งหมดจะสูญหาย
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=มุม
@@ -40,6 +43,7 @@ authorizing=การอนุญาต
automatic=อัตโนมัติ
autosave=บันทึกโดยอัตโนมัติ
autosize=ขนาดอัติโนมัติ
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=ย่อ/ขยาย
collapse-expand=คลิกเพื่อย่อ/ขยาย\n กดชิฟแล้วคลิกเพื่อย้ายเพื่อนบ้าน\n กดอัลเทอเนท แล้วคลิกเพื่อป้องกันขนาดของกลุ่ม
collapsible=ที่สามารถย่อได้
comic=Comic
+comment=Comment
commentsNotes=หมายเหตุ/บันทึกข้อความ
connect=เชื่อมต่อ
connecting=กำลังเชื่อมต่อ
@@ -273,6 +278,8 @@ forum=พูดคุย/ฟอรั่มให้ความช่วยเ
fromTemplate=จากรูปแบบ
fromTemplateUrl=จากรูปแบบ URL
fromText=จากข้อความ
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=ทั่วไป
github=GitHub
@@ -306,7 +313,9 @@ htmlText=ข้อความ HTML
iframe=IFrame
ignore=ละเลย
image=รูปภาพ
+imageUrl=Image URL
images=รูปภาพหลายรูป
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=นำเข้า
@@ -327,7 +336,8 @@ insertRowBefore=แทรกบรรทัดข้างบน
insertRowAfter=แทรกบรรทัดข้างล่าง
insertText=แทรกข้อความ
inserting=การแทรก
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=ชื่อที่ใช้ไม่ได้
invalidOrMissingFile=ไฟล์ไม่ถูกต้องหรือไฟล์สูญหาย
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=ภาษา
leanMapping=Lean Mapping
lastChange=การเปลี่ยนแปลงครั้งสุดท้าย เมื่อ {1} ที่แล้ว
lessThanAMinute=น้อยกว่าหนึ่งนาที
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=นาที
minutes=นาที
@@ -377,6 +389,8 @@ manual=คู่มือ
middle=กลาง
misc=เบ็ดเตล็ด
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=เพิ่มเต็ม
moreResults=ผลลัพธ์เพิ่มเติม
moreShapes=รูปร่างเพิ่มเติม
@@ -390,6 +404,7 @@ networking=Networking
new=ใหม่
newLibrary=ที่จัดเก็บเอกสารใหม่
nextPage=Next Page
+noAttachments=No attachments found
noColor=ไม่มีสี
noFiles=ไม่มีไฟล์
noFileSelected=ไม่มีไฟล์ที่เลือก
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=ไม่มีการตอบรับจากเซิฟเวอร์
noResultsFor=ไม่มีผลลัพธ์สำหรับ '{1}'
noRevisions=ไม่มีการปรับปรุง
+noSearchResults=No search results found
normal=ปกติ
north=ทิศเหนือ
notADiagramFile=ไม่ใช่ไฟล์แผนภาพ
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=พิมพ์
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=คุณสมบัติ
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=กลุ่มเส้นรัศมี
readOnly=อ่านเท่านั้น
reconnecting=เชื่อมต่ออีกครั้ง
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=ไฟล์นี้ถูกสร้างและปรับปรุงใน draw.io โปร คุณจะถูกนำไปที่นั่นเดี๋ยวนี้
realtimeTimeout=คุณได้ทำการเปลี่ยนแปลงบางอย่างในขณะที่ออฟไลน์ เราต้องขออภัยด้วย การเปลี่ยนแปลงเหล่านี้ไม่สามารถถูกบันทึกได้
redo=ทำอีกครั้ง
@@ -512,6 +532,7 @@ restoring=กำลังฟื้นฟู
retryingIn=ลองใหม่อีกครั้งใน {1} วินาที
retryingLoad=โหลดไม่สำเร็จ กำลังลองใหม่
retryingLogin=เกินกำหนดเวลาการเข้าใช้งาน กำลังลองใหม่
+revision=Revision
revisionHistory=ประวัติการปรับปรุง
right=ขวา
rightAlign=จัดเรียงด้านขวา
@@ -563,6 +584,7 @@ solid=แข็ง
sourceSpacing=เว้นวรรคแหล่งข้อมูล
south=ทิศใต้
software=Software
+space=Space
spacing=การเว้นวรรค
specialLink=Link พิเศษ
standard=Standard
@@ -571,6 +593,7 @@ straight=ตรง
strokeColor=เส้นสี
style=รูปแบบ
subscript=ดรรชนีล่าง
+summary=Summary
superscript=ดรรชนีบน
support=ช่วยเหลือ
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=ไม่ได้เลือกอ่ะไร
other=อื่นๆ
softwaredesign=การออกแบบซอฟท์แวร์
venndiagrams=แผนภาพ Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=แบบร่างแผนงาน
diff --git a/war/resources/dia_tr.txt b/war/resources/dia_tr.txt
index f2556474..8e83bae9 100644
--- a/war/resources/dia_tr.txt
+++ b/war/resources/dia_tr.txt
@@ -8,6 +8,7 @@ addImages=Resim ekle
addImageUrl=Resim URL'si ekle
addLayer=Katman ekle
addProperty=Özellik ekle
+address=Address
addToExistingDrawing=Mevcut çizime ekle
addWaypoint=Ara nokta ekle
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Hizala
alignment=Hizalama
allChangesLost=Tüm değişiklikler kaybolacaktır!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Açı
@@ -40,6 +43,7 @@ authorizing=Yetkilendiriliyor
automatic=Otomatik
autosave=Otomatik kaydet
autosize=Otomatik boyutlandır
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Daralt/Genişlet
collapse-expand=Daraltmak/genişletmek için tıklayın\nKomşuları taşımak için Shift ile tıklayın\nGrup boyutlarını korumak için Alt ile tıklayın
collapsible=Daraltılabilir
comic=Comic
+comment=Comment
commentsNotes=Yorumlar/Notlar
connect=Bağlan
connecting=Bağlanıyor
@@ -273,6 +278,8 @@ forum=Tartışma/Yardım Forumları
fromTemplate=Şablondan
fromTemplateUrl=Şablon URL'sinden
fromText=Metinden
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Genel
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML metin
iframe=IFrame
ignore=Göz ardı et
image=Resim
+imageUrl=Image URL
images=Resimler
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=İçe aktar
@@ -327,7 +336,8 @@ insertRowBefore=Üste satır ekle
insertRowAfter=Alta satır ekle
insertText=Metin ekle
inserting=Ekleniyor
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Geçersiz isim
invalidOrMissingFile=Geçersiz veya olmayan dosya
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Dil
leanMapping=Lean Mapping
lastChange=Son değişiklik {1} önce
lessThanAMinute=bir dakikadan az
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=dakika
minutes=dakika
@@ -377,6 +389,8 @@ manual=Elle
middle=Orta
misc=Çeşitli
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Daha
moreResults=Daha fazla sonuç
moreShapes=Daha fazla şekil
@@ -390,6 +404,7 @@ networking=Networking
new=Yeni
newLibrary=Yeni kütüphane
nextPage=Next Page
+noAttachments=No attachments found
noColor=Renk yok
noFiles=Dosya yok
noFileSelected=Hiç dosya seçilmedi
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Sunucudan yanıt yok
noResultsFor='{1}' için sonuç yok
noRevisions=Düzenleme yok
+noSearchResults=No search results found
normal=Normal
north=Kuzey
notADiagramFile=Diyagram dosyası değil
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Yazdır
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Özellikler
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Dairesel ağaç
readOnly=Salt okunur
reconnecting=Yeniden bağlanıyor
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Dosya draw.io pro sürümüyle oluşturulmuş veya değiştirilmiş. Şimdi yönlendirileceksiniz.
realtimeTimeout=Görünüşe göre çevrimdışıyken bazı değişiklikler yapmışsınız. Üzgünüz, bu değişiklikler kaydedilemez.
redo=Yinele
@@ -512,6 +532,7 @@ restoring=Eski Haline Alınıyor
retryingIn={1} saniye içinte tekrar denenecek
retryingLoad=Yükleme başarısız. Tekrar deneniyor...
retryingLogin=Giriş zaman-aşımı. Tekrar deneniyor...
+revision=Revision
revisionHistory=Düzeltme geçmişi
right=Sağ
rightAlign=Sağa hizala
@@ -563,6 +584,7 @@ solid=Katı
sourceSpacing=Kaynak boşluğu
south=Güney
software=Software
+space=Space
spacing=Boşluk
specialLink=Özel link
standard=Standard
@@ -571,6 +593,7 @@ straight=Düz
strokeColor=Çizgi rengi
style=Stil
subscript=Alt-simge
+summary=Summary
superscript=Üst-simge
support=Destek
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Hiçbir şey seçilmedi
other=Diğer
softwaredesign=Yazılım tasarımı
venndiagrams=Venn diyagramları
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Tel-kafesler
diff --git a/war/resources/dia_uk.txt b/war/resources/dia_uk.txt
index d83fc162..9407aad9 100644
--- a/war/resources/dia_uk.txt
+++ b/war/resources/dia_uk.txt
@@ -8,6 +8,7 @@ addImages=Додати малюнки
addImageUrl=Додати URL-адресу малюнка
addLayer=Додати шар
addProperty=Додати властивість
+address=Address
addToExistingDrawing=Додати до існуючого документа
addWaypoint=Додати шляхову точку
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Вирівняти
alignment=Вирівнювання
allChangesLost=Всі зміни будуть втрачені!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Кут
@@ -40,6 +43,7 @@ authorizing=Авторизація
automatic=Автоматично
autosave=Автозбереження
autosize=Авторозмір
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Згорнути/Розгорнути
collapse-expand=Клікніть щоб згорнути/розгорнути\nклікніть з затиснутою клавішею Shift, щоб перемістити сусідів \nклікніть з затиснутою клавішею Alt, щоб обмежити розмір групи
collapsible=Згортуване
comic=Comic
+comment=Comment
commentsNotes=Коментарі/Примітки
connect=Підключити
connecting=Підключаю
@@ -273,6 +278,8 @@ forum=Обговорення/Довідковий форум
fromTemplate=З шаблону
fromTemplateUrl=З шаблону за URL-адресою
fromText=З тексту
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Загальний
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML текст
iframe=IFrame
ignore=Ігнорувати
image=Зображення
+imageUrl=Image URL
images=Зображення
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Імпорт
@@ -327,7 +336,8 @@ insertRowBefore=Вставити рядок зверху
insertRowAfter=Вставити рядок внизу
insertText=Вставити текст
inserting=Вставляю
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Недійсне ім'я
invalidOrMissingFile=Файл недійсний або відсутній
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Мова
leanMapping=Lean Mapping
lastChange=Остання зміна {1} тому
lessThanAMinute=менше хвилини
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=хвилину
minutes=хвилин
@@ -377,6 +389,8 @@ manual=Вручну
middle=Посередині
misc=Різне
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Більше
moreResults=Більше результатів
moreShapes=Більше форм
@@ -390,6 +404,7 @@ networking=Networking
new=Створити
newLibrary=Нова бібліотека
nextPage=Next Page
+noAttachments=No attachments found
noColor=Немає кольору
noFiles=Немає файлів
noFileSelected=Файли не виділені
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Сервер не відповідає
noResultsFor=Немає результатів для'{1}'
noRevisions=Немає ревізій
+noSearchResults=No search results found
normal=Звичайний
north=Північ
notADiagramFile=Не є файлом діаграми
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=Роздрукувати
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Властивості
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Радіальне дерево
readOnly=Лише для читання
reconnecting=Повторне підключення
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Цей файл був створений чи змінений на draw.io pro. Зараз ви будете переміщені.
realtimeTimeout=Схоже, що ви внесли деякі зміни, перебуваючи поза мережею. Вибачте, але ці зміни не можуть бути збережені.
redo=Повторити
@@ -512,6 +532,7 @@ restoring=Відновлюю
retryingIn=Повторна спроба через {1} секунд(у)
retryingLoad=Не вдалося завантажити. Спробуємо ще раз...
retryingLogin=Час для входу закінчився. Спробуємо ще раз...
+revision=Revision
revisionHistory=Історія змін
right=Справа
rightAlign=Вирівнювання по правому краю
@@ -563,6 +584,7 @@ solid=Суцільний
sourceSpacing=Від початкового вузла
south=Південь
software=Software
+space=Space
spacing=Інтервал
specialLink=Спеціальне посилання
standard=Standard
@@ -571,6 +593,7 @@ straight=Прямий
strokeColor=Колір лінії
style=Стиль
subscript=Нижній індекс
+summary=Summary
superscript=Верхній індекс
support=Підтримка
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Нічого не вибрано
other=Інше
softwaredesign=Розробка програмного забезпечення
venndiagrams=Діаграми Венна
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Макети інтерфейсу
diff --git a/war/resources/dia_vi.txt b/war/resources/dia_vi.txt
index fe7f9b8c..bee1d903 100644
--- a/war/resources/dia_vi.txt
+++ b/war/resources/dia_vi.txt
@@ -8,6 +8,7 @@ addImages=Thêm ảnh
addImageUrl=Thêm đường dẫn ảnh
addLayer=Thêm lớp
addProperty=Thêm thuộc tính
+address=Address
addToExistingDrawing=Thêm vào bản vẽ sẵn có
addWaypoint=Thêm điểm tham chiếu
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=Căn lề
alignment=Sự căn lề
allChangesLost=Tất cả thay đổi sẽ mất!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=Góc
@@ -40,6 +43,7 @@ authorizing=Đang cấp phép
automatic=Tự động
autosave=Tự động lưu
autosize=Tự động chọn kích thước
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=Thu gọn/Mở rộng
collapse-expand=Nhấp chuột để thu gọn/mở rộng\nShift - nhấp chuột để di chuyển hàng xóm\nAtl - nhấp chuột để bảo vệ kích thước nhóm
collapsible=Có thể thu gọn
comic=Comic
+comment=Comment
commentsNotes=Bình luận/Ghi chú
connect=Kết nối
connecting=Đang kết nối
@@ -273,6 +278,8 @@ forum=Thảo luận/Diễn đàn trợ giúp
fromTemplate=Từ bản mẫu
fromTemplateUrl=Từ đường dẫn bản mẫu
fromText=Từ văn bản
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=Chung
github=GitHub
@@ -306,7 +313,9 @@ htmlText=Văn bản HTML
iframe=IFrame
ignore=Bỏ qua
image=Ảnh
+imageUrl=Image URL
images=Ảnh
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=Nhập
@@ -327,7 +336,8 @@ insertRowBefore=Chèn dòng trên
insertRowAfter=Chèn dòng dưới
insertText=Chèn văn bản
inserting=Đang chèn
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=Tên không hợp lệ
invalidOrMissingFile=Tập tin không hợp lệ hay thiếu
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=Ngôn ngữ
leanMapping=Lean Mapping
lastChange=Thay đổi lần cuối {1} trước
lessThanAMinute=ít hơn một phút
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=phút
minutes=phút
@@ -377,6 +389,8 @@ manual=Hướng dẫn
middle=Giữa
misc=Linh tinh
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=Xem thêm
moreResults=Xem thêm kết quả
moreShapes=Xem thêm hình
@@ -390,6 +404,7 @@ networking=Networking
new=Mới
newLibrary=Thư viện mới
nextPage=Next Page
+noAttachments=No attachments found
noColor=Không có màu
noFiles=Không có tập tin
noFileSelected=Không có tập tin được chọn
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=Không có phản hồi từ máy chủ
noResultsFor=Không có kết quả cho '{1}'
noRevisions=Không có sửa đổi
+noSearchResults=No search results found
normal=Bình thường
north=Bắc
notADiagramFile=Không phải tập tin biểu đồ
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=In
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=Thuộc tính
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Cây hướng tâm
readOnly=Chỉ đọc
reconnecting=Đang kết nối lại
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=Tập tin này được tạo hay sửa đổi trong draw.io pro. Bạn sẽ được chuyển hướng ngay bây giờ.
realtimeTimeout=Có vẻ như bạn đã làm một số thay đổi khi đăng xuất. Xin lỗi, những thay đổi này không thể được lưu.
redo=Làm lại
@@ -512,6 +532,7 @@ restoring=Đang phục hồi
retryingIn=Thử lại trong {1} giây
retryingLoad=Tải thất bại. Đang thử lại...
retryingLogin=Đăng nhập quá giờ. Đang thử lại...
+revision=Revision
revisionHistory=Lịch sử sửa đổi
right=Phải
rightAlign=Căn lề phải
@@ -563,6 +584,7 @@ solid=Rắn
sourceSpacing=Khoảng cách nguồn
south=Nam
software=Software
+space=Space
spacing=Khoảng cách
specialLink=Đường dẫn đặc biệt
standard=Standard
@@ -571,6 +593,7 @@ straight=Thẳng
strokeColor=Màu hàng
style=Phong cách
subscript=Chỉ số dưới
+summary=Summary
superscript=Chỉ số trên
support=Hỗ trợ
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Không có gì được chọn
other=Khác
softwaredesign=Thiết kế phần mềm
venndiagrams=Biểu đồ Venn
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=Khung dây
diff --git a/war/resources/dia_zh-tw.txt b/war/resources/dia_zh-tw.txt
index 8ddb22ba..216afbee 100644
--- a/war/resources/dia_zh-tw.txt
+++ b/war/resources/dia_zh-tw.txt
@@ -8,6 +8,7 @@ addImages=新增圖片
addImageUrl=新增圖片超連結
addLayer=新增圖層
addProperty=新增屬性
+address=Address
addToExistingDrawing=Add to Existing Drawing
addWaypoint=Add Waypoint
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=對齊
alignment=對齊
allChangesLost=所有的修改將不會被儲存!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=角度
@@ -40,6 +43,7 @@ authorizing=授權中
automatic=自動偵測(瀏覽器)
autosave=自動儲存
autosize=自動調整大小
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=收起/展開
collapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size
collapsible=可收展
comic=Comic
+comment=Comment
commentsNotes=備註
connect=連線
connecting=連線中
@@ -273,6 +278,8 @@ forum=Discussion/Help Forums
fromTemplate=從樣板開啟
fromTemplateUrl=從樣板連結
fromText=從文字
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=全螢幕
general=通用
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML Text
iframe=IFrame
ignore=忽略
image=圖片
+imageUrl=Image URL
images=圖片
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=圖片太大
imgur=Imgur
import=輸入
@@ -327,7 +336,8 @@ insertRowBefore=插入上方列
insertRowAfter=插入下方列
insertText=插入文字
inserting=正在插入
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=無效名稱
invalidOrMissingFile=無效或遺失的檔案
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=語言
leanMapping=Lean Mapping
lastChange={1}之前修改
lessThanAMinute=一分鐘內
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=分鐘
minutes=分鐘
@@ -377,6 +389,8 @@ manual=手冊
middle=垂直置中
misc=其他
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=更多
moreResults=更多結果
moreShapes=更多圖形
@@ -390,6 +404,7 @@ networking=Networking
new=新增
newLibrary=New Library
nextPage=Next Page
+noAttachments=No attachments found
noColor=無顏色
noFiles=無檔案
noFileSelected=未選擇檔案
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=伺服器無回應
noResultsFor=沒有找到 ‘{1}’
noRevisions=No revisions
+noSearchResults=No search results found
normal=Normal
north=向上漸層
notADiagramFile=不是圖表檔案
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=列印
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=屬性
publish=發佈
publishConfirmation=此會將您的圖表發佈至 imgur.com
@@ -483,6 +501,8 @@ rack=Rack
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.
realtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.
redo=重作
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn={1}秒後重試
retryingLoad=載入失敗,重試中...
retryingLogin=登入超時,重試中...
+revision=Revision
revisionHistory=版本歷史
right=右
rightAlign=向右對齊
@@ -563,6 +584,7 @@ solid=實線
sourceSpacing=來源間距
south=向下漸層
software=軟體
+space=Space
spacing=間距
specialLink=Special Link
standard=Standard
@@ -571,6 +593,7 @@ straight=Straight
strokeColor=邊線顏色
style=物件樣式
subscript=下標
+summary=Summary
superscript=上標
support=協助
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=未選擇
other=其他
softwaredesign=軟體設計
venndiagrams=文氏圖
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=線框圖
diff --git a/war/resources/dia_zh.txt b/war/resources/dia_zh.txt
index 6c712135..7de04eaa 100644
--- a/war/resources/dia_zh.txt
+++ b/war/resources/dia_zh.txt
@@ -8,6 +8,7 @@ addImages=添加图像
addImageUrl=添加图像链接
addLayer=添加图层
addProperty=添加属性
+address=Address
addToExistingDrawing=添加到当前的图形
addWaypoint=添加航点
adjustTo=Adjust to
@@ -16,6 +17,8 @@ align=对齐
alignment=对齐
allChangesLost=所有修改都不会被保存!
allPages=All Pages
+allProjects=All Projects
+allSpaces=All Spaces
allTags=All Tags
android=Android
angle=角度
@@ -40,6 +43,7 @@ authorizing=授权中
automatic=自动
autosave=自动保存
autosize=自动调整大小
+attachments=Attachments
aws=AWS
aws3d=AWS 3D
azure=Azure
@@ -98,6 +102,7 @@ collapseExpand=收起/展开
collapse-expand=收起/展开
collapsible=收展开关
comic=Comic
+comment=Comment
commentsNotes=备注
connect=连接
connecting=连接
@@ -273,6 +278,8 @@ forum=讨论组/帮助论坛
fromTemplate=从模板
fromTemplateUrl=从模板链接
fromText=从文本
+fromUrl=From URL
+fromThisPage=From this page
fullscreen=Fullscreen
general=通用
github=GitHub
@@ -306,7 +313,9 @@ htmlText=HTML文本
iframe=IFrame
ignore=忽略
image=图像
+imageUrl=Image URL
images=图像
+imagePreviewError=This image couldn't be loaded for preview. Please check the URL.
imageTooBig=Image too big
imgur=Imgur
import=导入
@@ -327,7 +336,8 @@ insertRowBefore=上面插入行
insertRowAfter=下面插入行
insertText=Insert Text
inserting=正在插入
-invalidFilename=Diagram names must not contain the following characters : \ / | : ; { } < > & + ? = "
+invalidFilename=Diagram names must not contain the following characters: \ / | : ; { } < > & + ? = "
+invalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidName=无效名
invalidOrMissingFile=无效或丢失的文件
invalidPublicUrl=Invalid public URL
@@ -342,8 +352,10 @@ language=语言
leanMapping=Lean Mapping
lastChange={1}以前最新更改
lessThanAMinute=一分钟以内
+licensingError=Licensing Error
licenseHasExpired=The license for {1} has expired on {2}. Click here.
licenseWillExpire=The license for {1} will expire on {2}. Click here.
+linkText=Link Text
list=List
minute=分钟
minutes=分钟
@@ -377,6 +389,8 @@ manual=手册
middle=垂直居中
misc=Misc
mockups=Mockups
+modificationDate=Modification date
+modifiedBy=Modified by
more=更多
moreResults=更多结果
moreShapes=更多图库
@@ -390,6 +404,7 @@ networking=Networking
new=新建
newLibrary=新建库
nextPage=Next Page
+noAttachments=No attachments found
noColor=无颜色
noFiles=无文件
noFileSelected=没有选择文件
@@ -402,6 +417,7 @@ noPreview=No preview
noResponse=服务器无响应
noResultsFor=没有找到'{1}'
noRevisions=No revisions
+noSearchResults=No search results found
normal=正常
north=向上
notADiagramFile=不是图表文件
@@ -471,6 +487,8 @@ previousPage=Previous Page
print=打印
printAllPages=Print All Pages
procEng=Proc. Eng.
+project=Project
+priority=Priority
properties=属性
publish=Publish
publishConfirmation=This will make your diagram public on imgur.com.
@@ -483,6 +501,8 @@ rack=Rack
radialTree=径向树
readOnly=只读
reconnecting=重新连接
+recentlyUpdated=Recently Updated
+recentlyViewed=Recently Viewed
redirectToNewApp=文件是由draw.io pro所创建或修改的,正在重定向。
realtimeTimeout=似乎你在离线状态下做过更改。对不起,这些更改不能保存。
redo=重做
@@ -512,6 +532,7 @@ restoring=Restoring
retryingIn={1}秒后重试
retryingLoad=载入失败,正在重试...
retryingLogin=登录超时,正在重试...
+revision=Revision
revisionHistory=Revision History
right=右
rightAlign=右对齐
@@ -563,6 +584,7 @@ solid=Solid
sourceSpacing=始端间距
south=向下
software=Software
+space=Space
spacing=间距
specialLink=特殊链接
standard=Standard
@@ -571,6 +593,7 @@ straight=直线
strokeColor=线颜色
style=样式
subscript=下标
+summary=Summary
superscript=上标
support=支持
sysml=SysML
@@ -646,4 +669,6 @@ nothingIsSelected=Nothing is selected
other=其他
softwaredesign=软件设计图
venndiagrams=文氏图
+webEmailOrOther=Web, email or any other internet address
+webLink=Web Link
wireframes=线框图
diff --git a/war/templates/softwaredesign/database.xml b/war/templates/softwaredesign/database.xml
index 041276f1..a1bac543 100644
--- a/war/templates/softwaredesign/database.xml
+++ b/war/templates/softwaredesign/database.xml
@@ -1 +1 @@
-<mxfile type="device" userAgent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36" version="@DRAWIO-VERSION@" editor="www.draw.io"><diagram>7V1dt6I60v41+1IXyId42fvr9Flr+l0906fnzFyyla28jcZBdn+cX38qWEGTIIRtUJDohQpYCSR5nlSlqnLnPKx//paG29UnsoiSu4m1+HnnPN5NJhNrGsAHPfJrf8S2/On+yDKNF3jscOBL/FfELsSjb/Ei2nEXZoQkWbzlD87JZhPNM+5YmKbkB3/ZK0n4UrfhEkvEAumBL/MwYfU4HP0zXmSr/dFg4h+Of4zi5YqVbPuz/ZmXcP5tmZK3DZZ3N3Fe89f+9DpksvJynSd4iikhIIZ+W/98iBL6JNkzwsrtsl+sYnfO/SpbJ/DDhq/56ecTf8Z7qP4z3EoabfA29sWdlIe3+D1M3pjAiZ/Af++3XDn+/97oHd2vw3QZb+6cD3DW2kLngCLhCdCDo4xs9ydcdiKLfmajMImX+I85VCtKj84tojlJwywmeAE84yhN4g0UCtewQuHbEj/zqu2ylGyW7Oi/CNQRz8Cd8iePTsAN8cdWKZRIn41wvPmdJ9ErXELPBHhGrPrviwey3oabX6yQF6Hw/wvXx3chVbaNSj1Gu3kab/PHf+GiH9IozKLFh+zSBX/dLq5T8NMmfEmiRXmxwqD+HqVZDMj1YT90HvORdY8D6XFf1j2Bq14T8gOOvMYwqp37V7LJEHdtCgz093O4jhMK2R+j5HtEpfKIQYfLt+iBJATGJZTtWJbj+D49swoXuXR6GS3h6KJH98l+9rAI+c8SCiFu0fuKkFHyQ4hKv0VkHWUpDA4Lzzq2NbaOXigAuWdmj333cNJ192d/HGDd9hFnV8eQzsA3RCpZFuUeMBK+IEyWQyaT0WfIFLCos6hpQNGAogHFk6BooVBERceajN3Z4YUT9npU9DSgIruZPqMiqAqbRQj41v3JpFzVi4xXaRp7qYIHxgT/hr6++LrJYhhjhoMMB3WHg1yBguDfRxQ0CdzxEQPNAkeRg9jBszgI69JnDvq6A5Hd5x+hmoZ7dJf5j3CXXaPcp3V4ec6hvekaN/s53O1+kPQE9BuONRx7HY4NpjOORdFIjxzrOsiVPKmWmcs4ig10UCzyed8p9nNK/h/WmHqydHC6xhci3uuUird8+YJPz24MVAlQ5YEp3goOwIOmpGKNmDfUe6omKUsHVuGqQK9NUklM26YHBimxokYlMAsTZsI60IUJ3ijkef545kurFrUk4OkgASSkPpPARwLG4LD7q7W/L+SaXooGrrQeMjAeeAQwNtxjuKfLCxK8BjLhFZCiyMssSGBhfSafP+J19GUVRX1QQsrqamjghkwzhguMDax7DGTbUyQLJB2fmdprWYb98SyWwTCMm2CZj+StD+vfpfUVXfqvSEjXWqGnN/wASLkktA9fvPRw9+3Spf7zLQQ3rezid9sF+v8UbiBo6uLdzMwCDB834mPXFtbTFeNFoKk00DOuefWZnh/J/G3dj4WokqoaFbAlB+XnlKyH4xnNetYDwBZ87AZGe4b1Os56kyqnsSCwx8BxB0OoooKqxWnsBoLMZYNXVwnwal5T13EBGRjvfsnCNLvGMtzTZmFW/67AerJRSUX5NuxY46eI/Mc8VByb81BBi+pF9EPmzd13822J2a/L1ttrWSmN56Cx1RlcPmgt7qTKddD1vLK4llq1hYHqWcB8AykNigWoB7LLHvYl9Gh1rbTWF1zKutLaXd1tGxSps/jPbD4ViuKEbqYhE4pzA1HovUKL64GEmcuZuZxB4QKFZ4IrLp+zLwh4+zRCbe1UztUxlbuBsGU0+/QKmqvqfOtBxGYS1xA+fKa0FXM4PpeQImDMdODFDYQOQ8eHft8jzw0cqddy4LgiVFTfsgEKMeJHDPnh02DOJv57lrq14MYNRJtSJ9pj35bOGomu4Ow7MIXvT5Je/BFfDYbNyrrR5g3LVthUQRPnaRfdumo1eC3MWhZKK7QZZAD4QPeJgV9kG0E73cOR49bY0SHOLlnE4ZpsFn+saIfan2LXuuzAc96qjxYVtYDNZLAskmYrsiSbMHk6HK3ehoVt3ALhQnO2Hw0+PyhoCasM3OYCtLTKRmJtUhWmjP/6TGI6tTz5l32d8KrjvWLYH1mHYH88JWh/I5KgvGmLqqu1thzSZo3HwH9Ci6fRLv6LDmpsJGF8lg/iJHyJkvtiT5+jsYO7+vDDmMptZYjW9BjW43E7JLzLwwZC6iN5hJ0vjRKYG37nt0NS6DisEKG5yevrjq6OndfScnSEvMfRqWZO9yBj2pl7cGc2s8fgusjhJiyKaWl3t0xT6hae570Gpgv765uiO8uUyaE73mMturOmgLglxzvl0l3pm32ibZsJVGUGH/KVNhCrjydceVYwOJ5gI6kzPBGMZ/ahK/g2Irxe+JAnCAOjDX3NrqfVRx5L14bDfmR7QkAKtpnejlAWXdktHol+xtl/sB3p9//Sf44hMd3ZFFOmQDSkmKlfBd1uVQq+8n7QUKAqxcwguqmBWI0UIwcvDY9icJB1lGICwZvfGVvO4aw9bQN3WIcbMAFp6xSaCKgV/dQrcwLut92pVDNBlFOlDQeceTg4Fnaia84bTSWqEofnVhGHJFYfcXiyH+jgiIONno4SB0tHrxcxZF+zgTGDvlbXZLgUW52PMRlBjlAuPTXbTlhvtyhzKeqmopJfrVVRQSw/R1GBvZsByHlSqEyfd6IvqIhRXhFxqLJTI0wjo8g20+ExCg6jzjDKSPBanPJxJyz7k14skc2eQ6MYbd1ATy8QN5bX08xliT17rnvgLXFMgL1ZnQlKULf5WoiSGGUmcKl9qkaYRiaQrZ7DYwLsSre9Pu7J5sehQb22dtYL9YX20Eaz+2UBSx3TFjZwN7m6MJ7Sxs1/U5WBNmNTXmABWufYpFxxFZqH42mVG1p5UzeVqLxe7lTZpCSx+njDl5XQwfEGG1qd1SBGs+nYO86I0cb6hS/rkgPjFX39QNf6BZ+hyhVF6Gn32/OjLeMOloRBmTsqV6298oiiBkRyjnjlJXKmbxSOez6f81Pw49NIK8ZdtxhYt62O+IN319XXzl1e9p6WJbHprP6RL1Fw+sd56xUs/PssbUR0teV1h0BUGxVIpKFE5RXySu9dSaw+2pjKSu7gaIMNtM7RRmHe4OcmRYizXriR9dKB0Yq+ftAnbQQMRzenjeCxs1Y4LArJPLx7DSL9mohRXuGYUKNVjTCN3GAiO4rR0SFuKA0ALqiCz7k4s1uhisFHfujrFh1e+552P65Dx9o3M/0qM4Mjuy95VRnyTjkuKYhRX/uWF9IlYRqZwQRkFKPjto1NzJ45YKgfRIxFcIMxFmVYj7ytjPU2Nficj/UqYtS1gBKVoj2sZ57aQ8Z6Njq6ayFqBRMGH0Whr907PM0Puh8VocXFtWmwQx4NJ7iTVu1pcmqaryBGGfrzSLoaYRqh3wQ7FKOje65KekFg8OEM+hq6FR/XyRjiWNzAhVRQjh1MA9ePRrbgpaKnJ9xgxAM+So4OsLn15IGq3IXwPXmgJIF68kBJYjWShYmHKMZOd8hC1Av1QMTgAyL0NbQmfZBP88T0lkI95HdxCFpZFWIu87dEHPicOOLA61SJwxeI3GluPqoVoUoOU8E9VRKkjw5mskFxcHTARsRtLxHMZAPhwNhAXzu3FB4nwn8bvUCeE/Qe/cty+zVUG/LsFBUplZp7FDWVqOyCWpndTxJ7gimg8UJ6++yyLb0AtjI5q2/ZTGsZNJlgg3TIECW6J7YAKzbbwXDA7KKt4S+ha9jjYObCPNMHk+IMUMNqy05ls23Kj3rG1x1s4dKUdBbhbpWHKbwnaLoskR/bVEI5TEEIPm2euK9OgjIHCHnn28vMZ7MIu8px3dqEIc8DXDthqKGPF5JlZP2eTlPmn9zQC21kjQP7+M1cElk6Xm6QTtlgOTd3n9A/RIVCtaNNmOJ5StCJnnYQpBlLmhm9NyTfzq2FKScaUTmflYZTzmKvH7YXX3M8qRWh2s5Fbs9TgnQiimyAxqd95jSxGOc9mTAUvbmz7iqt2CFs5gt/1AHmqziBzcbOnC4OuANo9llky1DOODhKD95KdnCblXltTGd5EDhMb2hEngkPEJIacnEeQobD+hZpKFDZQcUSNqyrkasR/m1ZURwo/LOmvW2zsw0KgIF7zQ3eEty3sdxoM6uCIr6/JGT+ba9B6lQC96akIhFCLpNlQWBZ2UpzOuenWsjp3ND4oGmIi3wSvNu7XWQQSVJjy7NijVF/OJnaR7jeR8f4Qw/e1+D9/fmcAPwWuKsGczqXwk20S/IZ5oW4WKYrnANJ8DMldHfjw+VpuF19IouIXvE3</diagram></mxfile> \ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?> <mxfile type="device" userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" version="@DRAWIO-VERSION@" editor="www.draw.io"><diagram name="Page-1">7V1tc6M4Ev41/mgX4p2PEyfZ2aqbq7nLzO7tR2IUmxuMfJjMJPvrD4xkWxJgKRZGNmSrdhIJWoKWnket7hYTa75++y0LN6svKILJxDSit4l1PzFNz3CK/5cF71UBAI5dlSyzOMJlh4Kn+G+ICw1c+hpHcEtdmCOU5PGGLlygNIWLnCoLswz9oi97QQnd6iZc4haNQ8HTIkwgd9mfcZSvqlLfdA/ln2G8XJGWgRtUNc/h4scyQ68pbm9iWi+7n6p6HRJZuN3tKozQr6Mi62FizTOE8uq39dscJuW7Ja+N3Je/k75OrLtVvk6KP0Dx6676seFmIHJz8XQZTPPj5hrl4af+GSavRKDpJsW9dxuqHfd/r+UT3a3DbBmnE+tTUWts3nZNGlXhNEebqsImFTl8y6dhEi/xHYuiWzA7qovgAmVhHiN8QfHaYZbEKdxdQxotflvif3dd2+YZSpek9N+o6COuKZ6Urjyq2LBlq2xSvp5Htlz+yRP4klc1Pq5hu/57NEfrTZi+k0aemcb/Ga5hW2e76NQ93C6yeLN7/Rduep7BMIfRp/zSDX/fRP00/JCGzwmM6ptlJvVPmOVxAWafqqlzv5tZd3gi3Vdt3aHiqpdkhz0vcTGrrbsXlOYYioGJ/34M13FSovhnmPyEpVQaMcrp8gPOUYKyXduWYViW65Y1BNnKy8oWji66tx/Ao4Ob4G/mUAjjVvlc8O2oCKPSbxCtYZ4Vk8PAtRYwZsbRDxaA6SgAM9c+VNqYm34dkB64GGdXxyhPwDfE7LLct3vAyOIXDJP1kElkXDNkMlikLWqOoDiC4giKjaBouBQqWoY5s4PDjy+Kio4CVAQ3gIqF9ZBGYaY9LBaLSb6rF5mv3DL2Ug0PjAn+KMZ69D3N42TkoJGDdOIgm6Egk6Ig07dnwTEFWYIcRArP4iDz+jno+xZeA/8w3Ry5R3Wb/wi3eR/tPqzDy3NOOZr6eNiv4Xb7C2UN0D9y7Mix/XCs7wUUiwYUx9qWUUeqddtlFMX6KijWug2K/Zqh/8JFfiWug+YeX4h4+2kVP/LlG25e3YxQxUCVE4CZ4R+Ax6GgChj0Rr0juiVlqMAq+/qxap7EpW70hyiuo6NJcEPbUeOCdWQBGccEvSnkOO4scDmvxUkScFSQgHP9JPAZJXEU6u+t/T3ie3opGujJHzIwHrgvwHjknpF7dOIe1iFBWyAmbYDsm7yMQ8K9fvL5Fq/h0wrCazBC6vo60sANbc2MXDDugenHQAB4BkU6LtlqP8kyngqW8W6IZT6j12vwf9f2lw3p75GQ+vLQlw88L5ByibIerMBv4fbHpVv912uY5nF+8afVgf6/hGm4vPwwG1cBIx9L8bENGH+6YL6IqcQN5V8/Pd+jxev6OhxRNV0dTcCOApQfM7TupeFeIqPJyJoXsFX8sx0Y7Y2spznrmW1BY74PZuDIBycal60kaOwGksz5DS9dCbC3qKl+QkAGxrtPeZjlfbjhHtJo9P71wHr8ppKI8T2y44k4RYuOULEAFaHiXdA+JNHc18yODdt+ulJkn7uUA+OrweP3iMvtVotttoUO2o5Tl9dy0myxVADzDRxpsHdAzdE2n1ctXAc+N/f6gq6snnx3px57RJFTO/4BoI9CEVzQBQpOQrFuIAv9qtCiP5AY13LjWm5E4T0KB3bbmX2+T+9PO4JLOVvFUu4G0pbxts9VQXNbny8bqjIu4rSHD9di13D2RwAjUIEX56YOF3OsETJIXQNqUNXNwCGHGmcHcHxkxjAvgZ40zVNVXQTHBztw+YbbH3lECjblh835oc/BDEz3I75uJcBxA+mmZRTt9sNAccFdoh6ifQdm8f2Jsou/4t6WbKNrfTTnR5adNG+qApZ2A0ETXgmz1uXSMjqDafSp/HZM8RfawEJPd0XJsTa25RQnl0RxuEZp9G1VDqiqilxrk4LHnVbvy+UcjJbwCbeFsnyFligNk4dDaft3WMiXW9BrtoDkvVRlRUNLiC8jXxcoW2tV0jvzwuveLb7rK4rLpWXjLVWf8FUHjRxufGNubBJUPQgnaKfafdfFtM3ntBmzWcppPIPb+O9yUmMlMfOzfhIn4TNM7vbf+TmaO/hLP/Q0NrqaoidGDBnx+BNJ+Cknhw9QCM/kKR58GUyKteFPSI1IgYFDGmHUjV5etvBsTfPpEfxHjprUnFUgM+qZenFnqtkJmGluOB3o3a6zlPTC892ogRG+XhbdyVGZFLqbguhOVAGCmeU0xXS3Bmc36FZOoCgzuJ6UWHU8YfOrgsHxBJlJ2vCEPwvAYSi4wO8CPvgFwsBoQ53a1Wh96jg0b0yBw2SkeF0MhLr0Sr14BL7F+X+wHsvf/yrvnJnO+RRTZ0BIUozntkG33XYGX/04kBQoSjGBKSVWIcXw2UvDoxhfa4rxmXB+a2ZYh1rgdYE7ZMANmICUDQpFBNSJferURQHrxS9KLJNAjjYsn4Fj5lN08rwhK1GUOBy7jTg4seqIwzFH4iCzR1PicLowTRw+2GxgzKBO64o2LlmtmxQGTE06+88l3xNWOyzqYor0IhJiqBjKDRW3hnEkDRVgGgWQ06TQen5ew1gQESPsEbHc08IUMgq/Zzo8RrE1Y5QpE7bo0YknZicUw297Do1ilA0DNaOA/bK8GjXXneypF2VIM4FXwwSuLBPUoK68L0RIjDAT2OZpYQqZgN/1HB4TeJoxQTf7D/z249CgXpme1UL93nroQu1uXcaSXtBfKCh735kLM88hf/+F1SjLC5aCPSmb9ULTcOy1haHVq1pWorC/3Grbk+LEquMNlzdCB8cbZGppwxusBTENvJlzfCRGF/4Ll7clB8Yr6saBKv8FfUSVzYpQo/fbi6Ot4w5yCoMwd7R6rZ36jCIJIjlHvLCL3KdxBBgufegnE8enkFbGcN39xNKGVjoxR9zBh+uq07PObm/P1J4mjuwPk7M/zvNXkPzvs6wRNtSWth181mwUIBFJicIe8tboXU6sOtrweCN3cLRBJpp2tLHf3qDXJvsUZ7Vww9ulA6MVdePgmqwRT/8sEGnuADXcIevhMDzOm+BIZPrJiBH2cJjWaWEKuWHM7NjPDo24oTYBeE8V9KGLAeiEKgaf+aFuWGjs+/b0z+tQ4fsmW7/CzGDx4UtO2xF5TYFLAmLEfd+8I50TppAZxoSM/ezQiBk6wACynzlgqB9EjoV/gzkWdVjvSGI9AEqwXkSMuBVQY1J0h/UkUnvIWE9mh3ZY32kAjD/4LAp1etd4me/rnxWhJMTVlIT+XTYcE07a9lGTpmW+gBhh6N9l0p0QphD6x2SH/ezQBvqnrL7VgMDg0xnUKbqTGFdz5hVd9G1gOBbwPd924RRYXYyEG8x4MGrowJajg/Zjm1o/Q9jg8pUTqOYcKE6sQrIY8yH2c0cfsmDtQjUQMfiECHWKVmQP0sc8Ebtlbx7aTHUXXqGA3yq8euJwaogDyBGHyxC5Jb99dFKEKDl4/glB6ugg4DcUB0cHZEZoQwedbB0H/AbhwNhAnZ47So9j4b+LUcCvCa4e/evO9pM0Gyw264A5Ukk+okhWonAIauvpfpzYBqYolBe+H122KS/Ynjm2gMEvLYZHJoFmZDK12PDEDmAFGPw6Ymjsokzxl7A1wMwP7GKd6Zq+GxSoYXS1TwXId8qPRsb3LZQnnSjcrnZpCh9Jmq47yI98VEI4TYFJPpU/uO+UBGEOCNrlqDMPgCHiXOxswQCEFgwn6OMZ5Tlaf2TQ1MUnS0ahTY2ZD47/IyGJ5DheapJ6ZLKce3YfMz5Yg0J0oJn2CUENI+0gSDGWyG16p2j3ObcOlpw+PzIsySUnYCZxII8nJ0WI6tlyTghSiSj8BjR+22cuE/fz/EoWDPvRrM1SkQ1X6WQfAhi8CbpYxUkkrP+m5eKAB4DimEXihrJm/tHx4J2cDg4AbzT2gunkHAQK0yU3kQPmBQYenefhy2pEUqBwgIrhSclVCP+ANxQHCv9EtdrBv+L5zdt/A4V7dQrvCO67cDcCIHc+23OCFj8qC1KlEVhtJe0PQgCTo1MQyKlstWc6ex2d6Sy5+aBoirN84n84up1lEE6S9M6zYI+x/dB4tA9zvYsD4w8juOrBx8fzOQn4HXDXCczR7gg3dl/SpDGIzosltsI5kFT8maHy68aHy7Nws/qCIlhe8X8=</diagram></mxfile> \ No newline at end of file