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

github.com/jgraph/drawio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Benson [draw.io] <david@jgraph.com>2021-05-11 18:47:08 +0300
committerDavid Benson [draw.io] <david@jgraph.com>2021-05-11 18:47:08 +0300
commitc8c3b9a69e51e729d9ad31c843a2f5bf8563747b (patch)
tree0befe137190660c68de12fc0626d38d1b0e08c80
parent09b1a53894784fd01e0fef7363b8bc02024ebd64 (diff)
14.6.12 releasev14.6.12
-rw-r--r--.github/FUNDING.yml3
-rw-r--r--ChangeLog20
-rw-r--r--README.md4
-rw-r--r--VERSION2
-rw-r--r--src/main/webapp/img/LICENSE95
-rw-r--r--src/main/webapp/js/app.min.js848
-rw-r--r--src/main/webapp/js/diagramly/App.js10
-rw-r--r--src/main/webapp/js/diagramly/Devel.js2
-rw-r--r--src/main/webapp/js/diagramly/Editor.js39
-rw-r--r--src/main/webapp/js/diagramly/EditorUi.js33
-rw-r--r--src/main/webapp/js/diagramly/Menus.js2
-rw-r--r--src/main/webapp/js/diagramly/Minimal.js3
-rw-r--r--src/main/webapp/js/diagramly/sidebar/Sidebar.js6
-rw-r--r--src/main/webapp/js/grapheditor/EditorUi.js20
-rw-r--r--src/main/webapp/js/grapheditor/Shapes.js29
-rw-r--r--src/main/webapp/js/grapheditor/Sidebar.js5
-rw-r--r--src/main/webapp/js/json/json2.min.js7
-rw-r--r--src/main/webapp/js/viewer-static.min.js931
-rw-r--r--src/main/webapp/js/viewer.min.js931
-rw-r--r--src/main/webapp/mxgraph/mxClient.js10
-rw-r--r--src/main/webapp/package-lock.json2822
-rw-r--r--src/main/webapp/package.json10
-rw-r--r--src/main/webapp/resources/dia_ar.txt50
-rw-r--r--src/main/webapp/resources/dia_es.txt6
-rw-r--r--src/main/webapp/resources/dia_ru.txt292
-rw-r--r--src/main/webapp/service-worker.js2
-rw-r--r--src/main/webapp/service-worker.js.map2
-rw-r--r--src/main/webapp/stencils/LICENSE95
-rw-r--r--src/main/webapp/templates/LICENSE95
-rw-r--r--src/main/webapp/templates/index.xml3
-rw-r--r--src/main/webapp/templates/software/git_flow_1.pngbin0 -> 5880 bytes
-rw-r--r--src/main/webapp/templates/software/git_flow_1.xml1
-rw-r--r--src/main/webapp/templates/software/git_flow_2.pngbin0 -> 5918 bytes
-rw-r--r--src/main/webapp/templates/software/git_flow_2.xml1
-rw-r--r--src/main/webapp/templates/software/git_flow_3.pngbin0 -> 4020 bytes
-rw-r--r--src/main/webapp/templates/software/git_flow_3.xml1
-rw-r--r--src/main/webapp/yarn.lock395
37 files changed, 4947 insertions, 1828 deletions
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
deleted file mode 100644
index bed780aa..00000000
--- a/.github/FUNDING.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-# These are supported funding model platforms
-
-github: jgraph
diff --git a/ChangeLog b/ChangeLog
index aadc9e4f..f2611804 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+11-MAY-2021: 14.6.12
+
+- Fixes sidebar preview for sketch theme
+- Disables handwritten fonts in sketch theme with rough=0
+- Fixes inconsistent pointer event handling
+- Fixes ignored comic style for rectangle shape
+- Adds modifier keys for wheel scrolling in sketch theme
+- Disables page view after page format change with sketch theme
+- Updates ar and ru translations
+
+07-MAY-2021: 14.6.11
+
+- Fixes Dropbox client in dev mode
+- Adds iconsearch CF worker
+- Updates Gliffy translations for BPMN 2.0
+- Removes JSON2 usage. Required for IE7- which doesn't work since VML support removed.
+- Reverts parameters for sidebar so default style is not applied.
+- Adds gitflow examples
+- Additional Spanish translations
+
04-MAY-2021: 14.6.10
- Adds zoomFactor config option
diff --git a/README.md b/README.md
index 3026f4cf..f6ef015d 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,10 @@ License
-------
The source code in this repo is licensed under the Apache v2.
+The JGraph provided icons and diagram templates are licensed under the [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). Additional terms may also apply where the icons are originally defined by a third-party copyright holder. We have checked in all cases that the original license allows use in this project.
+
+Additional minified JavaScript files and Java libraries are used in this project. All of the licenses are deemed compatible with the Apache 2.0, nothing is GPL or AGPL.
+
Development
-----------
diff --git a/VERSION b/VERSION
index 1e3a6bcb..4e192399 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-14.6.10 \ No newline at end of file
+14.6.12 \ No newline at end of file
diff --git a/src/main/webapp/img/LICENSE b/src/main/webapp/img/LICENSE
new file mode 100644
index 00000000..a6d97f0c
--- /dev/null
+++ b/src/main/webapp/img/LICENSE
@@ -0,0 +1,95 @@
+Creative Commons Attribution 4.0 International Public License
+
+By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
+
+Section 1 – Definitions.
+
+ Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
+ Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
+ Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
+ Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
+ Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
+ Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
+ Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
+ Licensor means the individual(s) or entity(ies) granting rights under this Public License.
+ Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
+ Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
+ You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
+
+Section 2 – Scope.
+
+ License grant.
+ Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
+ reproduce and Share the Licensed Material, in whole or in part; and
+ produce, reproduce, and Share Adapted Material.
+ Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
+ Term. The term of this Public License is specified in Section 6(a).
+ Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
+ Downstream recipients.
+ Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
+ No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
+ No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
+
+ Other rights.
+ Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
+ Patent and trademark rights are not licensed under this Public License.
+ To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
+
+Section 3 – License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the following conditions.
+
+ Attribution.
+
+ If You Share the Licensed Material (including in modified form), You must:
+ retain the following if it is supplied by the Licensor with the Licensed Material:
+ identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
+ a copyright notice;
+ a notice that refers to this Public License;
+ a notice that refers to the disclaimer of warranties;
+ a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
+ indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
+ indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
+ You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
+ If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
+ If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License.
+
+Section 4 – Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
+
+ for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
+ if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and
+ You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
+
+Section 5 – Disclaimer of Warranties and Limitation of Liability.
+
+ Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
+ To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
+
+ The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
+
+Section 6 – Term and Termination.
+
+ This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
+
+ Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
+ automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
+ upon express reinstatement by the Licensor.
+ For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
+ For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
+ Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
+
+Section 7 – Other Terms and Conditions.
+
+ The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
+ Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
+
+Section 8 – Interpretation.
+
+ For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
+ To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
+ No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
+ Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. \ No newline at end of file
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index 9adad299..8be0b410 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -240,7 +240,7 @@ function setCurrentXml(a,b){null!=window.parent&&null!=window.parent.openFile&&w
(function(){if("undefined"!==typeof JSON&&isLocalStorage)try{var a=localStorage.getItem(".drawio-config"),b=!0;null!=a&&(b=JSON.parse(a).showStartScreen);0==b&&(urlParams.splash="0")}catch(d){}a=urlParams["export"];null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),EXPORT_URL=a);a=urlParams.gitlab;null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];
null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=window.location.host;if("test.draw.io"!=a){var c="diagrams.net",b=a.length-c.length,c=a.lastIndexOf(c,b);-1!==c&&c===b?window.DRAWIO_LOG_URL="https://log.diagrams.net":(c="draw.io",b=a.length-c.length,c=a.lastIndexOf(c,b),-1!==c&&c===b&&(window.DRAWIO_LOG_URL="https://log.draw.io"))}})();
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";"trello"==urlParams.mode&&(urlParams.tr="1");"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"14.6.9",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"14.6.11",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||
0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -626,9 +626,10 @@ mxShape.prototype.paint=function(a){var b=!1;if(null!=a&&this.outline){var c=a.s
null!=this.stencil&&this.stencilPointerEvents){var n=this.createBoundingBox();this.dialect==mxConstants.DIALECT_SVG?(m=this.createTransparentSvgRectangle(n.x,n.y,n.width,n.height),this.node.appendChild(m)):(e=a.createRect("rect",n.x/e,n.y/e,n.width/e,n.height/e),e.appendChild(a.createTransparentFill()),e.stroked="false",a.root.appendChild(e))}null!=this.stencil?this.stencil.drawShape(a,this,f,g,k,l):(a.setStrokeWidth(this.strokewidth),e=this.getWaypoints(),null!=e?1<e.length&&this.paintEdgeShape(a,
e):this.paintVertexShape(a,f,g,k,l));null!=m&&null!=a.state&&null!=a.state.transform&&m.setAttribute("transform",a.state.transform);null!=a&&this.outline&&!b&&(a.rect(f,g,k,l),a.stroke())};mxShape.prototype.getWaypoints=function(){var a=this.points,b=null;if(null!=a&&(b=[],0<a.length)){var c=this.scale,d=Math.max(c,1),e=a[0];b.push(new mxPoint(e.x/c,e.y/c));for(var f=1;f<a.length;f++){var g=a[f];(Math.abs(e.x-g.x)>=d||Math.abs(e.y-g.y)>=d)&&b.push(new mxPoint(g.x/c,g.y/c));e=g}}return b};
mxShape.prototype.configureCanvas=function(a,b,c,d,e){var f=null;null!=this.style&&(f=this.style.dashPattern);a.setAlpha(this.opacity/100);a.setFillAlpha(this.fillOpacity/100);a.setStrokeAlpha(this.strokeOpacity/100);null!=this.isShadow&&a.setShadow(this.isShadow);null!=this.isDashed&&a.setDashed(this.isDashed,null!=this.style?1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1):!1);null!=f&&a.setDashPattern(f);null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?
-(b=this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b.x,b.y,b.width,b.height,this.gradientDirection)):a.setFillColor(this.fill);a.setStrokeColor(this.stroke);null==this.style||null!=this.fill&&this.fill!=mxConstants.NONE||"0"!=mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||(a.pointerEvents=!1)};mxShape.prototype.getGradientBounds=function(a,b,c,d,e){return new mxRectangle(b,c,d,e)};
-mxShape.prototype.updateTransform=function(a,b,c,d,e){a.scale(this.scale);a.rotate(this.getShapeRotation(),this.flipH,this.flipV,b+d/2,c+e/2)};mxShape.prototype.paintVertexShape=function(a,b,c,d,e){this.paintBackground(a,b,c,d,e);this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(a.setShadow(!1),this.paintForeground(a,b,c,d,e))};mxShape.prototype.paintBackground=function(a,b,c,d,e){};mxShape.prototype.paintForeground=function(a,b,c,d,e){};
-mxShape.prototype.paintEdgeShape=function(a,b){};mxShape.prototype.getArcSize=function(a,b){var c;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?c=Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,c=Math.min(a*c,b*c));return c};
+(b=this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b.x,b.y,b.width,b.height,this.gradientDirection)):a.setFillColor(this.fill);a.setStrokeColor(this.stroke);this.configurePointerEvents(a)};mxShape.prototype.configurePointerEvents=function(a){null==this.style||null!=this.fill&&this.fill!=mxConstants.NONE||"0"!=mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||(a.pointerEvents=!1)};
+mxShape.prototype.getGradientBounds=function(a,b,c,d,e){return new mxRectangle(b,c,d,e)};mxShape.prototype.updateTransform=function(a,b,c,d,e){a.scale(this.scale);a.rotate(this.getShapeRotation(),this.flipH,this.flipV,b+d/2,c+e/2)};mxShape.prototype.paintVertexShape=function(a,b,c,d,e){this.paintBackground(a,b,c,d,e);this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(a.setShadow(!1),this.paintForeground(a,b,c,d,e))};
+mxShape.prototype.paintBackground=function(a,b,c,d,e){};mxShape.prototype.paintForeground=function(a,b,c,d,e){};mxShape.prototype.paintEdgeShape=function(a,b){};
+mxShape.prototype.getArcSize=function(a,b){var c;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?c=Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,c=Math.min(a*c,b*c));return c};
mxShape.prototype.paintGlassEffect=function(a,b,c,d,e,f){var g=Math.ceil(this.strokewidth/2);a.setGradient("#ffffff","#ffffff",b,c,d,.6*e,"south",.9,.1);a.begin();f+=2*g;this.isRounded?(a.moveTo(b-g+f,c-g),a.quadTo(b-g,c-g,b-g,c-g+f),a.lineTo(b-g,c+.4*e),a.quadTo(b+.5*d,c+.7*e,b+d+g,c+.4*e),a.lineTo(b+d+g,c-g+f),a.quadTo(b+d+g,c-g,b+d+g-f,c-g)):(a.moveTo(b-g,c-g),a.lineTo(b-g,c+.4*e),a.quadTo(b+.5*d,c+.7*e,b+d+g,c+.4*e),a.lineTo(b+d+g,c-g));a.close();a.fill()};
mxShape.prototype.addPoints=function(a,b,c,d,e,f,g){if(null!=b&&0<b.length){g=null!=g?g:!0;var k=b[b.length-1];if(e&&c){b=b.slice();var l=b[0],l=new mxPoint(k.x+(l.x-k.x)/2,k.y+(l.y-k.y)/2);b.splice(0,0,l)}var m=b[0],l=1;for(g?a.moveTo(m.x,m.y):a.lineTo(m.x,m.y);l<(e?b.length:b.length-1);){g=b[mxUtils.mod(l,b.length)];var n=m.x-g.x,m=m.y-g.y;if(c&&(0!=n||0!=m)&&(null==f||0>mxUtils.indexOf(f,l-1))){var p=Math.sqrt(n*n+m*m);a.lineTo(g.x+n*Math.min(d,p/2)/p,g.y+m*Math.min(d,p/2)/p);for(m=b[mxUtils.mod(l+
1,b.length)];l<b.length-2&&0==Math.round(m.x-g.x)&&0==Math.round(m.y-g.y);)m=b[mxUtils.mod(l+2,b.length)],l++;n=m.x-g.x;m=m.y-g.y;p=Math.max(1,Math.sqrt(n*n+m*m));n=g.x+n*Math.min(d,p/2)/p;m=g.y+m*Math.min(d,p/2)/p;a.quadTo(g.x,g.y,n,m);g=new mxPoint(n,m)}else a.lineTo(g.x,g.y);m=g;l++}e?a.close():a.lineTo(k.x,k.y)}};
@@ -691,7 +692,7 @@ mxArrowConnector.prototype.isMarkerStart=function(){return mxUtils.getValue(this
function mxText(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,x,y,B,A,z){mxShape.call(this);this.value=a;this.bounds=b;this.color=null!=e?e:"black";this.align=null!=c?c:mxConstants.ALIGN_CENTER;this.valign=null!=d?d:mxConstants.ALIGN_MIDDLE;this.family=null!=f?f:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(m||0);this.spacingRight=this.spacing+parseInt(n||0);
this.spacingBottom=this.spacing+parseInt(p||0);this.spacingLeft=this.spacing+parseInt(q||0);this.horizontal=null!=r?r:!0;this.background=t;this.border=u;this.wrap=null!=x?x:!1;this.clipped=null!=y?y:!1;this.overflow=null!=B?B:"visible";this.labelPadding=null!=A?A:0;this.textDirection=z;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;
mxText.prototype.replaceLinefeeds=!0;mxText.prototype.verticalTextRotation=-90;mxText.prototype.ignoreClippedStringSize=!0;mxText.prototype.ignoreStringSize=!1;mxText.prototype.textWidthPadding=8!=document.documentMode||mxClient.IS_EM?3:4;mxText.prototype.lastValue=null;mxText.prototype.cacheEnabled=!0;mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode||mxClient.IS_EM};mxText.prototype.getSvgScreenOffset=function(){return 0};
-mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};
+mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};mxText.prototype.configurePointerEvents=function(a){};
mxText.prototype.paint=function(a,b){var c=this.scale,d=this.bounds.x/c,e=this.bounds.y/c,f=this.bounds.width/c,c=this.bounds.height/c;this.updateTransform(a,d,e,f,c);this.configureCanvas(a,d,e,f,c);if(b)a.updateText(d,e,f,c,this.align,this.valign,this.wrap,this.overflow,this.clipped,this.getTextRotation(),this.node);else{var g=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,k=g?"html":"",l=this.value;g||"html"!=k||(l=mxUtils.htmlEntities(l,!1));"html"!=k||mxUtils.isNode(this.value)||
(l=mxUtils.replaceTrailingNewlines(l,"<div><br></div>"));var l=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==k?l.replace(/\n/g,"<br/>"):l,m=this.textDirection;m!=mxConstants.TEXT_DIRECTION_AUTO||g||(m=this.getAutoDirection());m!=mxConstants.TEXT_DIRECTION_LTR&&m!=mxConstants.TEXT_DIRECTION_RTL&&(m=null);a.text(d,e,f,c,l,this.align,this.valign,this.wrap,k,this.overflow,this.clipped,this.getTextRotation(),m)}};
mxText.prototype.redraw=function(){if(this.visible&&this.checkBounds()&&this.cacheEnabled&&this.lastValue==this.value&&(mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML))if("DIV"==this.node.nodeName)mxClient.IS_SVG?this.redrawHtmlShapeWithCss3():(this.updateSize(this.node,null==this.state||null==this.state.view.textDiv),mxClient.IS_IE&&(null==document.documentMode||8>=document.documentMode)?this.updateHtmlFilter():this.updateHtmlTransform()),this.updateBoundingBox();else{var a=
@@ -1465,9 +1466,9 @@ mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST][mxUtils.mod(a,4)]};mxGra
mxGraph.prototype.getImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_IMAGE]:null};mxGraph.prototype.isTransparentState=function(a){var b=!1;if(null!=a)var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE),b=b==mxConstants.NONE&&c==mxConstants.NONE&&null==this.getImage(a);return b};
mxGraph.prototype.getVerticalAlign=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null};mxGraph.prototype.getIndicatorColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_COLOR]:null};mxGraph.prototype.getIndicatorGradientColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null};
mxGraph.prototype.getIndicatorShape=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_SHAPE]:null};mxGraph.prototype.getIndicatorImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_IMAGE]:null};mxGraph.prototype.getBorder=function(){return this.border};mxGraph.prototype.setBorder=function(a){this.border=a};
-mxGraph.prototype.isSwimlane=function(a,b){return null==a||this.model.getParent(a)==this.model.getRoot()||this.model.isEdge(a)?!1:this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};mxGraph.prototype.setEnabled=function(a){this.enabled=a};
-mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};
-mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};
+mxGraph.prototype.isSwimlane=function(a,b){return null==a||this.model.getParent(a)==this.model.getRoot()||this.model.isEdge(a)?!1:this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};
+mxGraph.prototype.setEnabled=function(a){this.enabled=a;this.fireEvent(new mxEventObject("enabledChanged","enabled",a))};mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};
+mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};
mxGraph.prototype.isCellCloneable=function(a){a=this.getCurrentCellStyle(a);return this.isCellsCloneable()&&0!=a[mxConstants.STYLE_CLONEABLE]};mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable};mxGraph.prototype.setCellsCloneable=function(a){this.cellsCloneable=a};mxGraph.prototype.getExportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canExportCell(a)}))};mxGraph.prototype.canExportCell=function(a){return this.exportEnabled};
mxGraph.prototype.getImportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canImportCell(a)}))};mxGraph.prototype.canImportCell=function(a){return this.importEnabled};mxGraph.prototype.isCellSelectable=function(a){return this.isCellsSelectable()};mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable};mxGraph.prototype.setCellsSelectable=function(a){this.cellsSelectable=a};
mxGraph.prototype.getDeletableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellDeletable(a)}))};mxGraph.prototype.isCellDeletable=function(a){a=this.getCurrentCellStyle(a);return this.isCellsDeletable()&&0!=a[mxConstants.STYLE_DELETABLE]};mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable};mxGraph.prototype.setCellsDeletable=function(a){this.cellsDeletable=a};
@@ -2086,10 +2087,10 @@ Editor.prototype.createUndoManager=function(){var a=this.graph,c=new mxUndoManag
d.length;g++)null!=a.view.getState(d[g])&&f.push(d[g]);a.setSelectionCells(f)}};c.addListener(mxEvent.UNDO,d);c.addListener(mxEvent.REDO,d);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
function Dialog(a,c,d,b,f,e,k,g,h,l,m){var p=d,n=b,q=mxUtils.getDocumentSize();null!=window.innerHeight&&(q.height=window.innerHeight);var t=q.height,u=Math.max(1,Math.round((q.width-d-64)/2)),v=Math.max(1,Math.round((t-b-a.footerHeight)/3));c.style.maxHeight="100%";d=null!=document.body?Math.min(d,document.body.scrollWidth-64):d;b=Math.min(b,t-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=
-Dialog.backdropColor,this.bg.style.height=t+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));q=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=q.x+"px";this.bg.style.top=q.y+"px";u+=q.x;v+=q.y;f&&document.body.appendChild(this.bg);var x=a.createDiv(h?"geTransDialog":"geDialog");f=this.getPosition(u,v,d,b);u=f.x;v=f.y;x.style.width=d+"px";x.style.height=b+"px";x.style.left=u+"px";x.style.top=v+"px";x.style.zIndex=this.zIndex;
-x.appendChild(c);document.body.appendChild(x);!g&&c.clientHeight>x.clientHeight-64&&(c.style.overflowY="auto");if(e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=v+14+"px",e.style.left=u+d+38-0+"px",e.style.zIndex=this.zIndex,mxEvent.addListener(e,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(e),this.dialogImg=e,!m)){var y=!1;mxEvent.addGestureListeners(this.bg,
-mxUtils.bind(this,function(a){y=!0}),null,mxUtils.bind(this,function(b){y&&(a.hideDialog(!0),y=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var e=l();null!=e&&(p=d=e.w,n=b=e.h)}e=mxUtils.getDocumentSize();t=e.height;this.bg.style.height=t+"px";u=Math.max(1,Math.round((e.width-d-64)/2));v=Math.max(1,Math.round((t-b-a.footerHeight)/3));d=null!=document.body?Math.min(p,document.body.scrollWidth-64):p;b=Math.min(n,t-64);e=this.getPosition(u,v,d,b);u=e.x;v=e.y;x.style.left=u+"px";
-x.style.top=v+"px";x.style.width=d+"px";x.style.height=b+"px";!g&&c.clientHeight>x.clientHeight-64&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=v+14+"px",this.dialogImg.style.left=u+d+38-0+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=k;this.container=x;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
+Dialog.backdropColor,this.bg.style.height=t+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));q=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=q.x+"px";this.bg.style.top=q.y+"px";u+=q.x;v+=q.y;f&&document.body.appendChild(this.bg);var w=a.createDiv(h?"geTransDialog":"geDialog");f=this.getPosition(u,v,d,b);u=f.x;v=f.y;w.style.width=d+"px";w.style.height=b+"px";w.style.left=u+"px";w.style.top=v+"px";w.style.zIndex=this.zIndex;
+w.appendChild(c);document.body.appendChild(w);!g&&c.clientHeight>w.clientHeight-64&&(c.style.overflowY="auto");if(e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=v+14+"px",e.style.left=u+d+38-0+"px",e.style.zIndex=this.zIndex,mxEvent.addListener(e,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(e),this.dialogImg=e,!m)){var y=!1;mxEvent.addGestureListeners(this.bg,
+mxUtils.bind(this,function(a){y=!0}),null,mxUtils.bind(this,function(b){y&&(a.hideDialog(!0),y=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var e=l();null!=e&&(p=d=e.w,n=b=e.h)}e=mxUtils.getDocumentSize();t=e.height;this.bg.style.height=t+"px";u=Math.max(1,Math.round((e.width-d-64)/2));v=Math.max(1,Math.round((t-b-a.footerHeight)/3));d=null!=document.body?Math.min(p,document.body.scrollWidth-64):p;b=Math.min(n,t-64);e=this.getPosition(u,v,d,b);u=e.x;v=e.y;w.style.left=u+"px";
+w.style.top=v+"px";w.style.width=d+"px";w.style.height=b+"px";!g&&c.clientHeight>w.clientHeight-64&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=v+14+"px",this.dialogImg.style.left=u+d+38-0+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=k;this.container=w;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":
IMAGE_PATH+"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png";
Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+
@@ -2121,7 +2122,7 @@ PageSetupDialog.addPageFormatPanel=function(a,c,d,b){function f(a,b,c){if(c||p!=
d.height==c.format.height?(g.value=c.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1,a=!0):d.width==c.format.height&&d.height==c.format.width&&(g.value=c.key,e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1,k.setAttribute("checked","checked"),k.defaultChecked=!0,a=k.checked=!0));a?(h.style.display="",m.style.display="none"):(p.value=d.width/100,n.value=d.height/100,e.setAttribute("checked","checked"),
g.value="custom",h.style.display="none",m.style.display="")}}c="format-"+c;var e=document.createElement("input");e.setAttribute("name",c);e.setAttribute("type","radio");e.setAttribute("value","portrait");var k=document.createElement("input");k.setAttribute("name",c);k.setAttribute("type","radio");k.setAttribute("value","landscape");var g=document.createElement("select");g.style.marginBottom="8px";g.style.width="202px";var h=document.createElement("div");h.style.marginLeft="4px";h.style.width="210px";
h.style.height="24px";e.style.marginRight="6px";h.appendChild(e);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));h.appendChild(c);k.style.marginLeft="10px";k.style.marginRight="6px";h.appendChild(k);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));h.appendChild(l);var m=document.createElement("div");m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";var p=document.createElement("input");
-p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in");h.style.display="none";m.style.display="none";for(var q={},t=PageSetupDialog.getFormats(),u=0;u<t.length;u++){var v=t[u];q[v.key]=v;var x=document.createElement("option");x.setAttribute("value",v.key);mxUtils.write(x,v.title);g.appendChild(x)}var y=!1;f();a.appendChild(g);mxUtils.br(a);
+p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in");h.style.display="none";m.style.display="none";for(var q={},t=PageSetupDialog.getFormats(),u=0;u<t.length;u++){var v=t[u];q[v.key]=v;var w=document.createElement("option");w.setAttribute("value",v.key);mxUtils.write(w,v.title);g.appendChild(w)}var y=!1;f();a.appendChild(g);mxUtils.br(a);
a.appendChild(h);a.appendChild(m);var G=d,E=function(a,c){var e=q[g.value];null!=e.format?(p.value=e.format.width/100,n.value=e.format.height/100,m.style.display="none",h.style.display=""):(h.style.display="none",m.style.display="");e=parseFloat(p.value);if(isNaN(e)||0>=e)p.value=d.width/100;e=parseFloat(n.value);if(isNaN(e)||0>=e)n.value=d.height/100;e=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),Math.floor(100*parseFloat(n.value)));"custom"!=g.value&&k.checked&&(e=new mxRectangle(0,0,
e.height,e.width));c&&y||e.width==G.width&&e.height==G.height||(G=e,null!=b&&b(G))};mxEvent.addListener(c,"click",function(a){e.checked=!0;E(a);mxEvent.consume(a)});mxEvent.addListener(l,"click",function(a){k.checked=!0;E(a);mxEvent.consume(a)});mxEvent.addListener(p,"blur",E);mxEvent.addListener(p,"click",E);mxEvent.addListener(n,"blur",E);mxEvent.addListener(n,"click",E);mxEvent.addListener(k,"change",E);mxEvent.addListener(e,"change",E);mxEvent.addListener(g,"change",function(a){y="custom"==g.value;
E(a,!0)});E();return{set:function(a){d=a;f(null,null,!0)},get:function(){return G},widthInput:p,heightInput:n}};
@@ -2129,10 +2130,10 @@ PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5
format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
{key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]};
var FilenameDialog=function(a,c,d,b,f,e,k,g,h,l,m,p){h=null!=h?h:!0;var n,q,t=document.createElement("table"),u=document.createElement("tbody");t.style.marginTop="8px";n=document.createElement("tr");q=document.createElement("td");q.style.whiteSpace="nowrap";q.style.fontSize="10pt";q.style.width=m?"80px":"120px";mxUtils.write(q,(f||mxResources.get("filename"))+":");n.appendChild(q);var v=document.createElement("input");v.setAttribute("value",c||"");v.style.marginLeft="4px";v.style.width=null!=p?p+
-"px":"180px";var x=mxUtils.button(d,function(){if(null==e||e(v.value))h&&a.hideDialog(),b(v.value)});x.className="geBtn gePrimaryBtn";this.init=function(){if(null!=f||null==k)if(v.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?v.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=t.parentNode;if(null!=a){var b=null;mxEvent.addListener(a,"dragleave",function(a){null!=b&&(b.style.backgroundColor="",b=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,
-"dragover",mxUtils.bind(this,function(a){null==b&&(!mxClient.IS_IE||10<document.documentMode)&&(b=v,b.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(a){null!=b&&(b.style.backgroundColor="",b=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(v.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),x.click());a.stopPropagation();a.preventDefault()}))}}};q=document.createElement("td");q.style.whiteSpace=
+"px":"180px";var w=mxUtils.button(d,function(){if(null==e||e(v.value))h&&a.hideDialog(),b(v.value)});w.className="geBtn gePrimaryBtn";this.init=function(){if(null!=f||null==k)if(v.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?v.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=t.parentNode;if(null!=a){var b=null;mxEvent.addListener(a,"dragleave",function(a){null!=b&&(b.style.backgroundColor="",b=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,
+"dragover",mxUtils.bind(this,function(a){null==b&&(!mxClient.IS_IE||10<document.documentMode)&&(b=v,b.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(a){null!=b&&(b.style.backgroundColor="",b=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(v.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),w.click());a.stopPropagation();a.preventDefault()}))}}};q=document.createElement("td");q.style.whiteSpace=
"nowrap";q.appendChild(v);n.appendChild(q);if(null!=f||null==k)u.appendChild(n),null!=m&&(null!=a.editor.diagramFileTypes&&(n=FilenameDialog.createFileTypes(a,v,a.editor.diagramFileTypes),n.style.marginLeft="6px",n.style.width="74px",q.appendChild(n),v.style.width=null!=p?p-40+"px":"140px"),q.appendChild(FilenameDialog.createTypeHint(a,v,m)));null!=k&&(n=document.createElement("tr"),q=document.createElement("td"),q.colSpan=2,q.appendChild(k),n.appendChild(q),u.appendChild(n));n=document.createElement("tr");
-q=document.createElement("td");q.colSpan=2;q.style.paddingTop="20px";q.style.whiteSpace="nowrap";q.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=l&&l()});m.className="geBtn";a.editor.cancelFirst&&q.appendChild(m);null!=g&&(p=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(g)}),p.className="geBtn",q.appendChild(p));mxEvent.addListener(v,"keypress",function(a){13==a.keyCode&&x.click()});q.appendChild(x);a.editor.cancelFirst||
+q=document.createElement("td");q.colSpan=2;q.style.paddingTop="20px";q.style.whiteSpace="nowrap";q.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=l&&l()});m.className="geBtn";a.editor.cancelFirst&&q.appendChild(m);null!=g&&(p=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(g)}),p.className="geBtn",q.appendChild(p));mxEvent.addListener(v,"keypress",function(a){13==a.keyCode&&w.click()});q.appendChild(w);a.editor.cancelFirst||
q.appendChild(m);n.appendChild(q);u.appendChild(n);t.appendChild(u);this.container=t};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(a,c,d){var b=document.createElement("img");b.style.cssText="vertical-align:top;height:16px;width:16px;margin-left:4px;background-repeat:no-repeat;background-position:center bottom;cursor:pointer;";mxUtils.setOpacity(b,70);var f=function(){b.setAttribute("src",Editor.helpImage);b.setAttribute("title",mxResources.get("help"));for(var a=0;a<d.length;a++)if(0<d[a].ext.length&&c.value.toLowerCase().substring(c.value.length-d[a].ext.length-1)=="."+d[a].ext){b.setAttribute("src",
mxClient.imageBasePath+"/warning.png");b.setAttribute("title",mxResources.get(d[a].title));break}};mxEvent.addListener(c,"keyup",f);mxEvent.addListener(c,"change",f);mxEvent.addListener(b,"click",function(c){var d=b.getAttribute("title");b.getAttribute("src")==Editor.helpImage?a.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=d&&a.showError(null,d,mxResources.get("help"),function(){a.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);
@@ -2147,8 +2148,8 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,b=nul
a.defaultPageBorderColor,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=e,c.style.backgroundColor=b,c.style.backgroundImage=d)};mxGraphView.prototype.createSvgGrid=function(a){for(var b=this.graph.gridSize*this.scale;b<this.minGridSize;)b*=2;for(var c=this.gridSteps*b,d=[],e=1;e<this.gridSteps;e++){var f=e*b;d.push("M 0 "+f+" L "+c+" "+f+" M "+f+" 0 L "+f+
" "+c)}return'<svg width="'+c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+d.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,c){a.apply(this,arguments);
if(null!=this.shiftPreview1){var d=this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+b,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+c,e))+"px";d.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,e=this.view.translate,g=this.pageFormat,f=d*this.pageScale,k=this.view.getBackgroundPageBounds();
-b=k.width;c=k.height;var h=new mxRectangle(d*e.x,d*e.y,g.width*f,g.height*f),u=(a=a&&Math.min(h.width,h.height)>this.minPageBreakDist)?Math.ceil(c/h.height)-1:0,v=a?Math.ceil(b/h.width)-1:0,x=k.x+b,y=k.y+c;null==this.horizontalPageBreaks&&0<u&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?u:v,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(k.x),
-Math.round(k.y+(c+1)*h.height)),new mxPoint(Math.round(x),Math.round(k.y+(c+1)*h.height))]:[new mxPoint(Math.round(k.x+(c+1)*h.width),Math.round(k.y)),new mxPoint(Math.round(k.x+(c+1)*h.width),Math.round(y))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);
+b=k.width;c=k.height;var h=new mxRectangle(d*e.x,d*e.y,g.width*f,g.height*f),u=(a=a&&Math.min(h.width,h.height)>this.minPageBreakDist)?Math.ceil(c/h.height)-1:0,v=a?Math.ceil(b/h.width)-1:0,w=k.x+b,y=k.y+c;null==this.horizontalPageBreaks&&0<u&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?u:v,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(k.x),
+Math.round(k.y+(c+1)*h.height)),new mxPoint(Math.round(w),Math.round(k.y+(c+1)*h.height))]:[new mxPoint(Math.round(k.x+(c+1)*h.width),Math.round(k.y)),new mxPoint(Math.round(k.x+(c+1)*h.width),Math.round(y))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);
a(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,d){for(var e=0;e<b.length;e++){if(this.graph.isTableCell(b[e])||this.graph.isTableRow(b[e]))return!1;if(this.graph.getModel().isVertex(b[e])){var g=this.graph.getCellGeometry(b[e]);if(null!=g&&g.relative)return!1}}return c.apply(this,arguments)};var d=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=
d.apply(this,arguments);a.intersects=mxUtils.bind(this,function(b,c){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,
e=this.graph.pageScale,f=d.width*e,d=d.height*e,e=Math.floor(Math.min(0,b)/f),n=Math.floor(Math.min(0,c)/d);return new mxRectangle(this.scale*(this.translate.x+e*f),this.scale*(this.translate.y+n*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/f)-e)*f,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-n)*d)};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,c){b.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
@@ -2159,16 +2160,16 @@ mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.pr
e="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=b.view.getState(a);if(null!=c){var d=a.clone();d.style="";var e=b.getCellStyle(d);a=[];var d=[],g;for(g in c.style)e[g]!=c.style[g]&&(a.push(c.style[g]),d.push(g));for(var f=b.getModel().getStyle(c.cell),k=null!=f?f.split(";"):[],f=0;f<k.length;f++){var h=
k[f],l=h.indexOf("=");if(0<=l){g=h.substring(0,l);var m=h.substring(l+1);null!=e[g]&&"none"==m&&(a.push(m),d.push(g))}}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",d,"values",a,"cells",[c.cell]))}}catch(W){this.handleError(W)}};this.clearDefaultStyle=function(){b.currentEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.currentVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
"keys",[],"values",[],"cells",[]))};var k=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<k.length;c++)0>mxUtils.indexOf(f,k[c])&&f.push(k[c]);var g="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),h=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor"],["opacity"],["align"],["html"]];for(c=0;c<h.length;c++)for(d=0;d<h[c].length;d++)f.push(h[c][d]);
-for(c=0;c<e.length;c++)0>mxUtils.indexOf(f,e[c])&&f.push(e[c]);var l=function(a,c,d,g,k,l,m){g=null!=g?g:b.currentVertexStyle;k=null!=k?k:b.currentEdgeStyle;d=null!=d?d:b.getModel();if(m){m=[];for(var n=0;n<a.length;n++)m=m.concat(d.getDescendants(a[n]));a=m}d.beginUpdate();try{for(n=0;n<a.length;n++){var p=a[n],q;if(c)q=["fontSize","fontFamily","fontColor"];else{var t=d.getStyle(p),Z=null!=t?t.split(";"):[];q=f.slice();for(var v=0;v<Z.length;v++){var u=Z[v],N=u.indexOf("=");if(0<=N){var x=u.substring(0,
-N),A=mxUtils.indexOf(q,x);0<=A&&q.splice(A,1);for(m=0;m<h.length;m++){var y=h[m];if(0<=mxUtils.indexOf(y,x))for(var z=0;z<y.length;z++){var aa=mxUtils.indexOf(q,y[z]);0<=aa&&q.splice(aa,1)}}}}}var M=d.isEdge(p);m=M?k:g;for(var Q=d.getStyle(p),v=0;v<q.length;v++){var x=q[v],E=m[x];null!=E&&("shape"!=x||M)&&(!M||l||0>mxUtils.indexOf(e,x))&&(Q=mxUtils.setStyle(Q,x,E))}Editor.simpleLabels&&(Q=mxUtils.setStyle(mxUtils.setStyle(Q,"html",null),"whiteSpace",null));d.setStyle(p,Q)}}finally{d.endUpdate()}};
+for(c=0;c<e.length;c++)0>mxUtils.indexOf(f,e[c])&&f.push(e[c]);var l=function(a,c,d,g,k,l,m){g=null!=g?g:b.currentVertexStyle;k=null!=k?k:b.currentEdgeStyle;d=null!=d?d:b.getModel();if(m){m=[];for(var n=0;n<a.length;n++)m=m.concat(d.getDescendants(a[n]));a=m}d.beginUpdate();try{for(n=0;n<a.length;n++){var p=a[n],q;if(c)q=["fontSize","fontFamily","fontColor"];else{var t=d.getStyle(p),Z=null!=t?t.split(";"):[];q=f.slice();for(var v=0;v<Z.length;v++){var u=Z[v],N=u.indexOf("=");if(0<=N){var w=u.substring(0,
+N),A=mxUtils.indexOf(q,w);0<=A&&q.splice(A,1);for(m=0;m<h.length;m++){var y=h[m];if(0<=mxUtils.indexOf(y,w))for(var z=0;z<y.length;z++){var aa=mxUtils.indexOf(q,y[z]);0<=aa&&q.splice(aa,1)}}}}}var M=d.isEdge(p);m=M?k:g;for(var Q=d.getStyle(p),v=0;v<q.length;v++){var w=q[v],E=m[w];null!=E&&("shape"!=w||M)&&(!M||l||0>mxUtils.indexOf(e,w))&&(Q=mxUtils.setStyle(Q,w,E))}Editor.simpleLabels&&(Q=mxUtils.setStyle(mxUtils.setStyle(Q,"html",null),"whiteSpace",null));d.setStyle(p,Q)}}finally{d.endUpdate()}};
b.addListener("cellsInserted",function(a,b){l(b.getProperty("cells"))});b.addListener("textInserted",function(a,b){l(b.getProperty("cells"),!0)});this.insertHandler=l;this.createDivs();this.createUi();this.refresh();var m=mxUtils.bind(this,function(a){null==a&&(a=window.event);return b.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=m,this.menubarContainer.onmousedown=m,this.toolbarContainer.onselectstart=m,this.toolbarContainer.onmousedown=
m,this.diagramContainer.onselectstart=m,this.diagramContainer.onmousedown=m,this.sidebarContainer.onselectstart=m,this.sidebarContainer.onmousedown=m,this.formatContainer.onselectstart=m,this.formatContainer.onmousedown=m,this.footerContainer.onselectstart=m,this.footerContainer.onmousedown=m,null!=this.tabContainer&&(this.tabContainer.onselectstart=m));!this.editor.chromeless||this.editor.editable?(c=function(a){if(null!=a){var b=mxEvent.getSource(a);if("A"==b.nodeName)for(;null!=b;){if("geHint"==
b.className)return!0;b=b.parentNode}}return m(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):b.panningHandler.usePopupTrigger=!1;b.init(this.diagramContainer);mxClient.IS_SVG&&null!=b.view.getDrawPane()&&(c=b.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=b.graphHandler){var p=b.graphHandler.start;
b.graphHandler.start=function(){null!=A.hoverIcons&&A.hoverIcons.reset();p.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var n=!1,q=this.hoverIcons.isResetEvent;
this.hoverIcons.isResetEvent=function(a,b){return n||q.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=a.which||b.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(n=!0,this.hoverIcons.reset(),b.container.style.cursor="move",b.isEditing()||mxEvent.getSource(a)!=b.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){b.container.style.cursor="";n=!1});mxEvent.addListener(document,
"keyup",this.keyupHandler);var t=b.panningHandler.isForcePanningEvent;b.panningHandler.isForcePanningEvent=function(a){return t.apply(this,arguments)||n||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var u=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return u.apply(this,arguments)||13==a.keyCode&&
-(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var v=b.isZoomWheelEvent;b.isZoomWheelEvent=function(){return n||v.apply(this,arguments)};var x=!1,y=null,G=null,E=null,F=mxUtils.bind(this,function(){if(null!=this.toolbar&&x!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var d=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),c.push(a));
-a=d}a=this.toolbar.fontMenu;d=this.toolbar.sizeMenu;if(null==E)this.toolbar.createTextToolbar();else{for(var e=0;e<E.length;e++)this.toolbar.container.appendChild(E[e]);this.toolbar.fontMenu=y;this.toolbar.sizeMenu=G}x=b.cellEditor.isContentEditing();y=a;G=d;E=c}}),A=this,I=b.cellEditor.startEditing;b.cellEditor.startEditing=function(){I.apply(this,arguments);F();if(b.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){var c=b.getSelectedEditingElement();null!=
+(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var v=b.isZoomWheelEvent;b.isZoomWheelEvent=function(){return n||v.apply(this,arguments)};var w=!1,y=null,G=null,E=null,F=mxUtils.bind(this,function(){if(null!=this.toolbar&&w!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var d=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),c.push(a));
+a=d}a=this.toolbar.fontMenu;d=this.toolbar.sizeMenu;if(null==E)this.toolbar.createTextToolbar();else{for(var e=0;e<E.length;e++)this.toolbar.container.appendChild(E[e]);this.toolbar.fontMenu=y;this.toolbar.sizeMenu=G}w=b.cellEditor.isContentEditing();y=a;G=d;E=c}}),A=this,I=b.cellEditor.startEditing;b.cellEditor.startEditing=function(){I.apply(this,arguments);F();if(b.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){var c=b.getSelectedEditingElement();null!=
c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=A.toolbar&&(A.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),A.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},0))};mxEvent.addListener(b.cellEditor.textarea,"input",c);mxEvent.addListener(b.cellEditor.textarea,"touchend",c);mxEvent.addListener(b.cellEditor.textarea,"mouseup",c);mxEvent.addListener(b.cellEditor.textarea,"keyup",c);c()}};var z=b.cellEditor.stopEditing;b.cellEditor.stopEditing=function(a,b){try{z.apply(this,arguments),F()}catch(N){A.handleError(N)}};
b.container.setAttribute("tabindex","0");b.container.style.cursor="default";if(window.self===window.top&&null!=b.container.parentNode)try{b.container.focus()}catch(L){}var H=b.fireMouseEvent;b.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();H.apply(this,arguments)};b.popupMenuHandler.autoExpand=!0;null!=this.menus&&(b.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
function(a){b.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};b.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));l(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),h=!1,l=!1;if(0<d.length)for(var m=0;m<d.length&&(h=b.getModel().isVertex(d[m])||h,!(l=b.getModel().isEdge(d[m])||
@@ -2223,7 +2224,7 @@ mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+
function(a){null!=n&&(window.clearTimeout(n),n=null);null!=q&&(window.clearTimeout(q),q=null);n=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);n=null;q=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";q=null}),600)}),a||200)}),u=mxUtils.bind(this,function(a){null!=n&&(window.clearTimeout(n),n=null);null!=q&&(window.clearTimeout(q),q=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,
a||30)});if("1"==urlParams.layers){this.layersDialog=null;var v=e(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var c=v.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius",
"5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=c.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);
-this.layersDialog.style.zIndex=c.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")),x=a.getModel();x.addListener(mxEvent.CHANGE,function(){v.style.display=1<x.getChildCount(x.root)?"":"none"})}"1"!=urlParams.openInSameWin&&this.addChromelessToolbarItems(e);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||e(mxUtils.bind(this,function(b){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==
+this.layersDialog.style.zIndex=c.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){v.style.display=1<w.getChildCount(w.root)?"":"none"})}"1"!=urlParams.openInSameWin&&this.addChromelessToolbarItems(e);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||e(mxUtils.bind(this,function(b){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==
this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(b)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(p=0;p<this.lightboxToolbarActions.length;p++){var y=this.lightboxToolbarActions[p];e(y.fn,y.icon,y.tooltip)}null!=f.refreshBtn&&e(mxUtils.bind(this,function(a){f.refreshBtn.url?window.location.href=f.refreshBtn.url:window.location.reload();mxEvent.consume(a)}),Editor.refreshLargeImage,
mxResources.get("refresh",null,"Refresh"));null!=f.fullscreenBtn&&window.self!==window.top&&e(mxUtils.bind(this,function(b){f.fullscreenBtn.url?a.openLink(f.fullscreenBtn.url):a.openLink(window.location.href);mxEvent.consume(b)}),Editor.fullscreenLargeImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(f.closeBtn&&window.self===window.top||a.lightbox&&("1"==urlParams.close||this.container!=document.body))&&e(mxUtils.bind(this,function(a){"1"==urlParams.close||f.closeBtn?window.close():
(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";a.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||u(30),t())}));mxEvent.addListener(this.chromelessToolbar,
@@ -2260,7 +2261,7 @@ function ChangePageSetup(a,c,d,b,f){this.ui=a;this.previousColor=this.color=c;th
ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var c=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=c}this.ignoreImage||(this.image=this.previousImage,c=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=c);null!=this.previousFormat&&(this.format=this.previousFormat,c=a.pageFormat,this.previousFormat.width!=c.width||this.previousFormat.height!=c.height)&&(this.ui.setPageFormat(this.previousFormat),
this.previousFormat=c);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled);null!=this.previousPageScale&&(a=this.ui.editor.graph.pageScale,this.previousPageScale!=a&&(this.ui.setPageScale(this.previousPageScale),this.previousPageScale=a))};
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat","previousPageScale"]);a.afterDecode=function(a,d,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;b.previousPageScale=b.pageScale;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);return b};mxCodecRegistry.register(a)})();EditorUi.prototype.setBackgroundColor=function(a){this.editor.graph.background=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("backgroundColorChanged"))};
-EditorUi.prototype.setFoldingEnabled=function(a){this.editor.graph.foldingEnabled=a;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))};EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageFormatChanged"))};
+EditorUi.prototype.setFoldingEnabled=function(a){this.editor.graph.foldingEnabled=a;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))};EditorUi.prototype.setPageFormat=function(a,c){c=null!=c?c:"1"==urlParams.sketch;this.editor.graph.pageFormat=a;c||(this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct());this.fireEvent(new mxEventObject("pageFormatChanged"))};
EditorUi.prototype.setPageScale=function(a){this.editor.graph.pageScale=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageScaleChanged"))};EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),c=this.actions.get("redo"),d=this.editor.undoManager,b=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());c.setEnabled(this.canRedo())});d.addListener(mxEvent.ADD,b);d.addListener(mxEvent.UNDO,b);d.addListener(mxEvent.REDO,b);d.addListener(mxEvent.CLEAR,b);var f=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){f.apply(this,arguments);b()};var e=this.editor.graph.cellEditor.stopEditing;
this.editor.graph.cellEditor.stopEditing=function(a,c){e.apply(this,arguments);b()};b()};
@@ -2369,7 +2370,7 @@ null,"process task"),this.createVertexTemplateEntry("rhombus;whiteSpace=wrap;htm
80,80,"","Internal Storage"),this.createVertexTemplateEntry("shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;",120,80,"","Cube"),this.createVertexTemplateEntry("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80,"","Step"),this.createVertexTemplateEntry("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60,"","Trapezoid"),this.createVertexTemplateEntry("shape=tape;whiteSpace=wrap;html=1;",
120,100,"","Tape"),this.createVertexTemplateEntry("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;",80,100,"","Note"),this.createVertexTemplateEntry("shape=card;whiteSpace=wrap;html=1;",80,100,"","Card"),this.createVertexTemplateEntry("shape=callout;whiteSpace=wrap;html=1;perimeter=calloutPerimeter;",120,80,"","Callout",null,null,"bubble chat thought speech message"),this.createVertexTemplateEntry("shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;",
30,60,"Actor","Actor",!1,null,"user person human stickman"),this.createVertexTemplateEntry("shape=xor;whiteSpace=wrap;html=1;",60,80,"","Or",null,null,"logic or"),this.createVertexTemplateEntry("shape=or;whiteSpace=wrap;html=1;",60,80,"","And",null,null,"logic and"),this.createVertexTemplateEntry("shape=dataStorage;whiteSpace=wrap;html=1;fixedSize=1;",100,80,"","Data Storage"),this.createVertexTemplateEntry("swimlane;startSize=0;",200,200,"","Container",null,null,"container swimlane lane pool group"),
-this.createVertexTemplateEntry("swimlane;",200,200,"Vertical Container","Container",null,null,"container swimlane lane pool group"),this.createVertexTemplateEntry("swimlane;horizontal=0;",200,200,"Horizontal Container","Horizontal Container",null,null,"container swimlane lane pool group"),this.addEntry("list group erd table",function(){var a=new mxCell("List",new mxGeometry(0,0,140,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;");
+this.createVertexTemplateEntry("swimlane;",200,200,"Vertical Container","Container",null,null,"container swimlane lane pool group"),this.createVertexTemplateEntry("swimlane;horizontal=0;",200,200,"Horizontal Container","Horizontal Container",null,null,"container swimlane lane pool group"),this.addEntry("list group erd table",function(){var a=new mxCell("List",new mxGeometry(0,0,140,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;");
a.vertex=!0;a.insert(c.cloneCell(d,"Item 1"));a.insert(c.cloneCell(d,"Item 2"));a.insert(c.cloneCell(d,"Item 3"));return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"List")}),this.addEntry("list item entry value group erd table",function(){return c.createVertexTemplateFromCells([c.cloneCell(d,"List Item")],d.geometry.width,d.geometry.height,"List Item")}),this.addEntry("curve",mxUtils.bind(this,function(){var a=new mxCell("",new mxGeometry(0,0,50,50),"curved=1;endArrow=classic;html=1;");
a.geometry.setTerminalPoint(new mxPoint(0,50),!0);a.geometry.setTerminalPoint(new mxPoint(50,0),!1);a.geometry.points=[new mxPoint(50,50),new mxPoint(0,0)];a.geometry.relative=!0;a.edge=!0;return this.createEdgeTemplateFromCells([a],a.geometry.width,a.geometry.height,"Curve")})),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;startArrow=classic;html=1;",100,100,"","Bidirectional Arrow",null,"line lines connector connectors connection connections arrow arrows bidirectional"),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;html=1;",
50,50,"","Arrow",null,"line lines connector connectors connection connections arrow arrows directional directed"),this.createEdgeTemplateEntry("endArrow=none;dashed=1;html=1;",50,50,"","Dashed Line",null,"line lines connector connectors connection connections arrow arrows dashed undirected no"),this.createEdgeTemplateEntry("endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;",50,50,"","Dotted Line",null,"line lines connector connectors connection connections arrow arrows dotted undirected no"),
@@ -2474,18 +2475,18 @@ mxClient.NO_FO||null==this.graph.view.getCanvas().ownerSVGElement?(g=this.graph.
this.sidebarTitles&&null!=f&&0!=k&&(b.style.height=this.thumbHeight+0+this.sidebarTitleSize+8+"px",c=document.createElement("div"),c.style.fontSize=this.sidebarTitleSize+"px",c.style.color="#303030",c.style.textAlign="center",c.style.whiteSpace="nowrap",mxClient.IS_IE&&(c.style.height=this.sidebarTitleSize+12+"px"),c.style.paddingTop="4px",mxUtils.write(c,f),b.appendChild(c));return a};
Sidebar.prototype.createSection=function(a){return mxUtils.bind(this,function(){var c=document.createElement("div");c.setAttribute("title",a);c.style.textOverflow="ellipsis";c.style.whiteSpace="nowrap";c.style.textAlign="center";c.style.overflow="hidden";c.style.width="100%";c.style.padding="14px 0";mxUtils.write(c,a);return c})};
Sidebar.prototype.createItem=function(a,c,d,b,f,e,k,g){g=null!=g?g:!0;var h=document.createElement("a");h.className="geItem";h.style.overflow="hidden";var l=2*this.thumbBorder;h.style.width=this.thumbWidth+l+"px";h.style.height=this.thumbHeight+l+"px";h.style.padding=this.thumbPadding+"px";mxEvent.addListener(h,"click",function(a){mxEvent.consume(a)});a=this.graph.cloneCells(a);this.editorUi.insertHandler(a,null,this.graph.model,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,
-!0,!0);this.createThumb(a,this.thumbWidth,this.thumbHeight,h,c,d,b,f,e);var m=new mxRectangle(0,0,f,e);1<a.length||a[0].vertex?(b=this.createDragSource(h,this.createDropHandler(a,!0,k,m),this.createDragPreview(f,e),a,m),this.addClickHandler(h,b,a),b.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(b=this.createDragSource(h,this.createDropHandler(a,!1,k,m),this.createDragPreview(f,e),a,m),this.addClickHandler(h,b,a));
-!mxClient.IS_IOS&&g&&mxEvent.addGestureListeners(h,null,mxUtils.bind(this,function(b){mxEvent.isMouseEvent(b)&&this.showTooltip(h,a,m.width,m.height,c,d)}));return h};
+"1"==urlParams.sketch,"1"==urlParams.sketch);this.createThumb(a,this.thumbWidth,this.thumbHeight,h,c,d,b,f,e);var m=new mxRectangle(0,0,f,e);1<a.length||a[0].vertex?(b=this.createDragSource(h,this.createDropHandler(a,!0,k,m),this.createDragPreview(f,e),a,m),this.addClickHandler(h,b,a),b.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(b=this.createDragSource(h,this.createDropHandler(a,!1,k,m),this.createDragPreview(f,
+e),a,m),this.addClickHandler(h,b,a));!mxClient.IS_IOS&&g&&mxEvent.addGestureListeners(h,null,mxUtils.bind(this,function(b){mxEvent.isMouseEvent(b)&&this.showTooltip(h,a,m.width,m.height,c,d)}));return h};
Sidebar.prototype.updateShapes=function(a,c){var d=this.editorUi.editor.graph,b=d.getCellStyle(a),f=[];d.model.beginUpdate();try{for(var e=d.getModel().getStyle(a),k="shadow dashed dashPattern fontFamily fontSize fontColor align startFill startSize endFill endSize strokeColor strokeWidth fillColor gradientColor html part noEdgeStyle edgeStyle elbow childLayout recursiveResize container collapsible connectable comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" "),g=
0;g<c.length;g++){var h=c[g];if(d.getModel().isVertex(h)==d.getModel().isVertex(a)||d.getModel().isEdge(h)==d.getModel().isEdge(a)){var l=d.getCurrentCellStyle(c[g]);d.getModel().setStyle(h,e);if("1"==mxUtils.getValue(l,"composite","0"))for(var m=d.model.getChildCount(h);0<=m;m--)d.model.remove(d.model.getChildAt(h,m));"umlLifeline"==l[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=b[mxConstants.STYLE_SHAPE]&&(d.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[h]),d.setCellStyles("participant",b[mxConstants.STYLE_SHAPE],
[h]));for(m=0;m<k.length;m++){var p=l[k[m]];null!=p&&d.setCellStyles(k[m],p,[h])}f.push(h)}}}finally{d.model.endUpdate()}return f};
Sidebar.prototype.createDropHandler=function(a,c,d,b){d=null!=d?d:!0;return mxUtils.bind(this,function(f,e,k,g,h,l){for(l=l?null:mxEvent.isTouchEvent(e)||mxEvent.isPenEvent(e)?document.elementFromPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)):mxEvent.getSource(e);null!=l&&l!=this.container;)l=l.parentNode;if(null==l&&f.isEnabled()){a=f.getImportableCells(a);if(0<a.length){f.stopEditing();l=null==k||mxEvent.isAltDown(e)?!1:f.isValidDropTarget(k,a,e);var m=null;null==k||l||(k=null);if(!f.isCellLocked(k||
f.getDefaultParent())){f.model.beginUpdate();try{g=Math.round(g);h=Math.round(h);if(c&&f.isSplitTarget(k,a,e)){var p=f.view.scale,n=f.view.translate,q=(g+n.x)*p,t=(h+n.y)*p,u=f.cloneCells(a);f.splitEdge(k,u,null,g-b.width/2,h-b.height/2,q,t);m=u}else 0<a.length&&(m=f.importCells(a,g,h,k));if(null!=f.layoutManager){var v=f.layoutManager.getLayout(k);if(null!=v)for(p=f.view.scale,n=f.view.translate,q=(g+n.x)*p,t=(h+n.y)*p,k=0;k<m.length;k++)v.moveCell(m[k],q,t)}!d||null!=e&&mxEvent.isShiftDown(e)||
-f.fireEvent(new mxEventObject("cellsInserted","cells",m))}catch(x){this.editorUi.handleError(x)}finally{f.model.endUpdate()}null!=m&&0<m.length&&(f.scrollCellToVisible(m[0]),f.setSelectionCells(m));f.editAfterInsert&&null!=e&&mxEvent.isMouseEvent(e)&&null!=m&&1==m.length&&window.setTimeout(function(){f.startEditing(m[0])},0)}}mxEvent.consume(e)}})};
+f.fireEvent(new mxEventObject("cellsInserted","cells",m))}catch(w){this.editorUi.handleError(w)}finally{f.model.endUpdate()}null!=m&&0<m.length&&(f.scrollCellToVisible(m[0]),f.setSelectionCells(m));f.editAfterInsert&&null!=e&&mxEvent.isMouseEvent(e)&&null!=m&&1==m.length&&window.setTimeout(function(){f.startEditing(m[0])},0)}}mxEvent.consume(e)}})};
Sidebar.prototype.createDragPreview=function(a,c){var d=document.createElement("div");d.className="geDragPreview";d.style.width=a+"px";d.style.height=c+"px";return d};
Sidebar.prototype.dropAndConnect=function(a,c,d,b,f){var e=this.getDropAndConnectGeometry(a,c[b],d,c),k=[];if(null!=e){var g=this.editorUi.editor.graph,h=null;g.model.beginUpdate();try{var l=g.getCellGeometry(a),m=g.getCellGeometry(c[b]),p=g.model.getParent(a),n=!0;if(null!=g.layoutManager){var q=g.layoutManager.getLayout(p);null!=q&&q.constructor==mxStackLayout&&(n=!1)}var k=g.model.isEdge(a)?null:g.view.getState(p),t=q=0;if(null!=k){var u=k.origin,q=u.x,t=u.y,v=e.getTerminalPoint(!1);null!=v&&(v.x+=
-u.x,v.y+=u.y)}var x=!g.isTableRow(a)&&!g.isTableCell(a)&&(g.model.isEdge(a)||null!=l&&!l.relative&&n),y=g.getCellAt((e.x+q+g.view.translate.x)*g.view.scale,(e.y+t+g.view.translate.y)*g.view.scale,null,null,null,function(a,b,c){return!g.isContainer(a.cell)});if(null!=y&&y!=p)k=g.view.getState(y),null!=k&&(u=k.origin,p=y,x=!0,g.model.isEdge(a)||(e.x-=u.x-q,e.y-=u.y-t));else if(!n||g.isTableRow(a)||g.isTableCell(a))e.x+=q,e.y+=t;q=m.x;t=m.y;g.model.isEdge(c[b])&&(t=q=0);k=c=g.importCells(c,e.x-(x?q:
-0),e.y-(x?t:0),x?p:null);if(g.model.isEdge(a))g.model.setTerminal(a,c[b],d==mxConstants.DIRECTION_NORTH);else if(g.model.isEdge(c[b])){g.model.setTerminal(c[b],a,!0);var G=g.getCellGeometry(c[b]);G.points=null;if(null!=G.getTerminalPoint(!1))G.setTerminalPoint(e.getTerminalPoint(!1),!1);else if(x&&g.model.isVertex(p)){var E=g.view.getState(p),u=E.cell!=g.view.currentRoot?E.origin:new mxPoint(0,0);g.cellsMoved(c,u.x,u.y,null,null,!0)}}else m=g.getCellGeometry(c[b]),q=e.x-Math.round(m.x),t=e.y-Math.round(m.y),
+u.x,v.y+=u.y)}var w=!g.isTableRow(a)&&!g.isTableCell(a)&&(g.model.isEdge(a)||null!=l&&!l.relative&&n),y=g.getCellAt((e.x+q+g.view.translate.x)*g.view.scale,(e.y+t+g.view.translate.y)*g.view.scale,null,null,null,function(a,b,c){return!g.isContainer(a.cell)});if(null!=y&&y!=p)k=g.view.getState(y),null!=k&&(u=k.origin,p=y,w=!0,g.model.isEdge(a)||(e.x-=u.x-q,e.y-=u.y-t));else if(!n||g.isTableRow(a)||g.isTableCell(a))e.x+=q,e.y+=t;q=m.x;t=m.y;g.model.isEdge(c[b])&&(t=q=0);k=c=g.importCells(c,e.x-(w?q:
+0),e.y-(w?t:0),w?p:null);if(g.model.isEdge(a))g.model.setTerminal(a,c[b],d==mxConstants.DIRECTION_NORTH);else if(g.model.isEdge(c[b])){g.model.setTerminal(c[b],a,!0);var G=g.getCellGeometry(c[b]);G.points=null;if(null!=G.getTerminalPoint(!1))G.setTerminalPoint(e.getTerminalPoint(!1),!1);else if(w&&g.model.isVertex(p)){var E=g.view.getState(p),u=E.cell!=g.view.currentRoot?E.origin:new mxPoint(0,0);g.cellsMoved(c,u.x,u.y,null,null,!0)}}else m=g.getCellGeometry(c[b]),q=e.x-Math.round(m.x),t=e.y-Math.round(m.y),
e.x=Math.round(m.x),e.y=Math.round(m.y),g.model.setGeometry(c[b],e),g.cellsMoved(c,q,t,null,null,!0),k=c.slice(),h=1==k.length?k[0]:null,c.push(g.insertEdge(null,null,"",a,c[b],g.createCurrentEdgeStyle()));null!=f&&mxEvent.isShiftDown(f)||g.fireEvent(new mxEventObject("cellsInserted","cells",c))}catch(F){this.editorUi.handleError(F)}finally{g.model.endUpdate()}g.editAfterInsert&&null!=f&&mxEvent.isMouseEvent(f)&&null!=h&&window.setTimeout(function(){g.startEditing(h)},0)}return k};
Sidebar.prototype.getDropAndConnectGeometry=function(a,c,d,b){var f=this.editorUi.editor.graph,e=f.view,k=1<b.length,g=f.getCellGeometry(a);b=f.getCellGeometry(c);null!=g&&null!=b&&(b=b.clone(),f.model.isEdge(a)?(a=f.view.getState(a),g=a.absolutePoints,c=g[0],f=g[g.length-1],d==mxConstants.DIRECTION_NORTH?(b.x=c.x/e.scale-e.translate.x-b.width/2,b.y=c.y/e.scale-e.translate.y-b.height/2):(b.x=f.x/e.scale-e.translate.x-b.width/2,b.y=f.y/e.scale-e.translate.y-b.height/2)):(g.relative&&(a=f.view.getState(a),
g=g.clone(),g.x=(a.x-e.translate.x)/e.scale,g.y=(a.y-e.translate.y)/e.scale),e=f.defaultEdgeLength,f.model.isEdge(c)&&null!=b.getTerminalPoint(!0)&&null!=b.getTerminalPoint(!1)?(c=b.getTerminalPoint(!0),f=b.getTerminalPoint(!1),e=f.x-c.x,c=f.y-c.y,e=Math.sqrt(e*e+c*c),b.x=g.getCenterX(),b.y=g.getCenterY(),b.width=1,b.height=1,d==mxConstants.DIRECTION_NORTH?(b.height=e,b.y=g.y-e,b.setTerminalPoint(new mxPoint(b.x,b.y),!1)):d==mxConstants.DIRECTION_EAST?(b.width=e,b.x=g.x+g.width,b.setTerminalPoint(new mxPoint(b.x+
@@ -2495,7 +2496,7 @@ b.width/2+e:d==mxConstants.DIRECTION_SOUTH?b.y=b.y+g.height/2+b.height/2+e:d==mx
Sidebar.prototype.isDropStyleTargetIgnored=function(a){return this.graph.isSwimlane(a.cell)||this.graph.isTableCell(a.cell)||this.graph.isTableRow(a.cell)||this.graph.isTable(a.cell)};
Sidebar.prototype.createDragSource=function(a,c,d,b,f){function e(a,b){var c;c=mxUtils.createImage(a.src);c.style.width=a.width+"px";c.style.height=a.height+"px";null!=b&&c.setAttribute("title",b);mxUtils.setOpacity(c,a==this.refreshTarget?30:20);c.style.position="absolute";c.style.cursor="crosshair";return c}function k(a,b,c,d){null!=d.parentNode&&(mxUtils.contains(c,a,b)?(mxUtils.setOpacity(d,100),M=d):mxUtils.setOpacity(d,d==z?30:20));return c}for(var g=this.editorUi,h=g.editor.graph,l=null,m=
null,p=this,n=0;n<b.length&&(null==m&&h.model.isVertex(b[n])?m=n:null==l&&h.model.isEdge(b[n])&&null==h.model.getTerminal(b[n],!0)&&(l=n),null==m||null==l);n++);var q=this.isDropStyleEnabled(b,m),t=mxUtils.makeDraggable(a,h,mxUtils.bind(this,function(a,d,e,g,f){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=b&&null!=y&&M==z){var k=a.isCellSelected(y.cell)?a.getSelectionCells():[y.cell],k=this.updateShapes(a.model.isEdge(y.cell)?b[0]:b[m],k);a.setSelectionCells(k)}else null!=
-b&&null!=M&&null!=v&&M!=z?(k=a.model.isEdge(v.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(v.cell,b,N,k,d))):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,0,0,h.autoscroll,!0,!0);h.addListener(mxEvent.ESCAPE,function(a,b){t.isActive()&&t.reset()});var u=t.mouseDown;t.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||(h.stopEditing(),u.apply(this,arguments))};var v=null,x=
+b&&null!=M&&null!=v&&M!=z?(k=a.model.isEdge(v.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(v.cell,b,N,k,d))):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,0,0,h.autoscroll,!0,!0);h.addListener(mxEvent.ESCAPE,function(a,b){t.isActive()&&t.reset()});var u=t.mouseDown;t.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||(h.stopEditing(),u.apply(this,arguments))};var v=null,w=
null,y=null,G=!1,E=e(this.triangleUp,mxResources.get("connect")),F=e(this.triangleRight,mxResources.get("connect")),A=e(this.triangleDown,mxResources.get("connect")),I=e(this.triangleLeft,mxResources.get("connect")),z=e(this.refreshTarget,mxResources.get("replace")),H=null,L=e(this.roundDrop),P=e(this.roundDrop),N=mxConstants.DIRECTION_NORTH,M=null,Q=t.createPreviewElement;t.createPreviewElement=function(a){var b=Q.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents="none");this.previewElementWidth=
b.style.width;this.previewElementHeight=b.style.height;return b};var Z=t.dragEnter;t.dragEnter=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("none");Z.apply(this,arguments)};var aa=t.dragExit;t.dragExit=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("");aa.apply(this,arguments)};t.dragOver=function(a,c){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=M&&this.currentGuide.hide();if(null!=this.previewElement){var d=a.view;if(null!=y&&M==z)this.previewElement.style.display=
a.model.isEdge(y.cell)?"none":"",this.previewElement.style.left=y.x+"px",this.previewElement.style.top=y.y+"px",this.previewElement.style.width=y.width+"px",this.previewElement.style.height=y.height+"px";else if(null!=v&&null!=M){null!=t.currentHighlight&&null!=t.currentHighlight.state&&t.currentHighlight.hide();var e=a.model.isEdge(v.cell)||null==l?m:l,g=p.getDropAndConnectGeometry(v.cell,b[e],N,b),k=a.model.isEdge(v.cell)?null:a.getCellGeometry(v.cell),h=a.getCellGeometry(b[e]),n=a.model.getParent(v.cell),
@@ -2512,9 +2513,9 @@ f.add(k(c,d,new mxRectangle(v.getCenterX()-this.triangleUp.width/2,l.y-this.tria
v&&l){f=[L,P,E,F,A,I];for(l=0;l<f.length;l++)null!=f[l].parentNode&&f[l].parentNode.removeChild(f[l]);a.model.isEdge(g)?(n=h.absolutePoints,null!=n&&(l=n[0],n=n[n.length-1],f=a.tolerance,new mxRectangle(c-f,d-f,2*f,2*f),L.style.left=Math.floor(l.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(l.y-this.roundDrop.height/2)+"px",P.style.left=Math.floor(n.x-this.roundDrop.width/2)+"px",P.style.top=Math.floor(n.y-this.roundDrop.height/2)+"px",null==a.model.getTerminal(g,!0)&&a.container.appendChild(L),
null==a.model.getTerminal(g,!1)&&a.container.appendChild(P))):(l=mxRectangle.fromRectangle(h),null!=h.shape&&null!=h.shape.boundingBox&&(l=mxRectangle.fromRectangle(h.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(h.cell),null!=n&&(l.x-=n.horizontalOffset/2,l.y-=n.verticalOffset/2,l.width+=n.horizontalOffset,l.height+=n.verticalOffset,null!=n.rotationShape&&null!=n.rotationShape.node&&"hidden"!=n.rotationShape.node.style.visibility&&
"none"!=n.rotationShape.node.style.display&&null!=n.rotationShape.boundingBox&&l.add(n.rotationShape.boundingBox)),E.style.left=Math.floor(h.getCenterX()-this.triangleUp.width/2)+"px",E.style.top=Math.floor(l.y-this.triangleUp.height)+"px",F.style.left=Math.floor(l.x+l.width)+"px",F.style.top=Math.floor(h.getCenterY()-this.triangleRight.height/2)+"px",A.style.left=E.style.left,A.style.top=Math.floor(l.y+l.height)+"px",I.style.left=Math.floor(l.x-this.triangleLeft.width)+"px",I.style.top=F.style.top,
-"eastwest"!=h.style.portConstraint&&(a.container.appendChild(E),a.container.appendChild(A)),a.container.appendChild(F),a.container.appendChild(I));null!=h&&(x=a.selectionCellsHandler.getHandler(h.cell),null!=x&&null!=x.setHandlesVisible&&x.setHandlesVisible(!1));G=!0}else for(f=[L,P,E,F,A,I],l=0;l<f.length;l++)null!=f[l].parentNode&&f[l].parentNode.removeChild(f[l]);G||null==x||x.setHandlesVisible(!0);g=mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)||null!=y&&M==z?null:mxDragSource.prototype.getDropTarget.apply(this,
+"eastwest"!=h.style.portConstraint&&(a.container.appendChild(E),a.container.appendChild(A)),a.container.appendChild(F),a.container.appendChild(I));null!=h&&(w=a.selectionCellsHandler.getHandler(h.cell),null!=w&&null!=w.setHandlesVisible&&w.setHandlesVisible(!1));G=!0}else for(f=[L,P,E,F,A,I],l=0;l<f.length;l++)null!=f[l].parentNode&&f[l].parentNode.removeChild(f[l]);G||null==w||w.setHandlesVisible(!0);g=mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)||null!=y&&M==z?null:mxDragSource.prototype.getDropTarget.apply(this,
arguments);f=a.getModel();if(null!=g&&(null!=M||!a.isSplitTarget(g,b,e))){for(;null!=g&&!a.isValidDropTarget(g,b,e)&&f.isVertex(f.getParent(g));)g=f.getParent(g);null!=g&&(a.view.currentRoot==g||!a.isValidRoot(g)&&0==a.getModel().getChildCount(g)||a.isCellLocked(g)||f.isEdge(g)||!a.isValidDropTarget(g,b,e))&&(g=null)}return g});t.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,arguments);for(var a=[L,P,z,E,F,A,I],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);
-null!=v&&null!=x&&x.reset();M=H=y=v=x=null};return t};
+null!=v&&null!=w&&w.reset();M=H=y=v=w=null};return t};
Sidebar.prototype.itemClicked=function(a,c,d,b){b=this.editorUi.editor.graph;b.container.focus();if(mxEvent.isAltDown(d)&&1==b.getSelectionCount()&&b.model.isVertex(b.getSelectionCell())){c=null;for(var f=0;f<a.length&&null==c;f++)b.model.isVertex(a[f])&&(c=f);null!=c&&(b.setSelectionCells(this.dropAndConnect(b.getSelectionCell(),a,mxEvent.isMetaDown(d)||mxEvent.isControlDown(d)?mxEvent.isShiftDown(d)?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH:mxEvent.isShiftDown(d)?mxConstants.DIRECTION_EAST:
mxConstants.DIRECTION_SOUTH,c,d)),b.scrollCellToVisible(b.getSelectionCell()))}else mxEvent.isShiftDown(d)&&!b.isSelectionEmpty()?(this.updateShapes(a[0],b.getSelectionCells()),b.scrollCellToVisible(b.getSelectionCell())):(a=mxEvent.isAltDown(d)?b.getFreeInsertPoint():b.getCenterInsertPoint(b.getBoundingBoxFromGeometry(a,!0)),c.drop(b,d,null,a.x,a.y,!0))};
Sidebar.prototype.addClickHandler=function(a,c,d){var b=c.mouseDown,f=c.mouseMove,e=c.mouseUp,k=this.editorUi.editor.graph.tolerance,g=null,h=this;c.mouseDown=function(c){b.apply(this,arguments);g=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));null!=this.dragElement&&(this.dragElement.style.display="none",mxUtils.setOpacity(a,50))};c.mouseMove=function(b){null!=this.dragElement&&"none"==this.dragElement.style.display&&null!=g&&(Math.abs(g.x-mxEvent.getClientX(b))>k||Math.abs(g.y-mxEvent.getClientY(b))>
@@ -2559,7 +2560,7 @@ this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.
d=this.graph.pageScale,e=c.width*d,c=c.height*d,d=this.graph.view.translate,g=this.graph.view.scale,f=this.graph.getPageLayout(),k=0;k<f.width;k++)b.push(new mxRectangle(((f.x+k)*e+d.x)*g,(f.y*c+d.y)*g,e*g,c*g));for(k=1;k<f.height;k++)b.push(new mxRectangle((f.x*e+d.x)*g,((f.y+k)*c+d.y)*g,e*g,c*g));a=b.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(a,b){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=
function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var n=this.graphHandler.getCells;this.graphHandler.getCells=function(a){for(var b=n.apply(this,arguments),c=new mxDictionary,d=[],e=0;e<b.length;e++){var g=this.graph.isTableCell(a)&&this.graph.isTableCell(b[e])&&this.graph.isCellSelected(b[e])?this.graph.model.getParent(b[e]):this.graph.isTableRow(a)&&this.graph.isTableRow(b[e])&&
this.graph.isCellSelected(b[e])?b[e]:this.graph.getCompositeParent(b[e]);null==g||c.get(g)||(c.put(g,!0),d.push(g))}return d};var q=this.graphHandler.start;this.graphHandler.start=function(a,b,c,d){var e=!1;this.graph.isTableCell(a)&&(this.graph.isCellSelected(a)?e=!0:a=this.graph.model.getParent(a));e||this.graph.isTableRow(a)&&this.graph.isCellSelected(a)||(a=this.graph.getCompositeParent(a));q.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(a,b){b=this.graph.getCompositeParent(b);
-return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var t=new mxRubberband(this);this.getRubberband=function(){return t};var u=(new Date).getTime(),v=0,x=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;x.apply(this,arguments);a!=this.currentState?(u=(new Date).getTime(),v=0):v=(new Date).getTime()-u};var y=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=
+return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var t=new mxRubberband(this);this.getRubberband=function(){return t};var u=(new Date).getTime(),v=0,w=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;w.apply(this,arguments);a!=this.currentState?(u=(new Date).getTime(),v=0):v=(new Date).getTime()-u};var y=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=
this.currentState&&a.getState()==this.currentState&&2E3<v||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&y.apply(this,arguments)};var G=this.isToggleEvent;this.isToggleEvent=function(a){return G.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var E=t.isForceRubberbandEvent;t.isForceRubberbandEvent=function(a){return E.apply(this,arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&
mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var F=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(F=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=F)}));this.popupMenuHandler.autoExpand=
!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var A=this.click;this.click=function(a){var b=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!b||a.isConsumed())return A.apply(this,arguments);var c=b?a.sourceState.cell:a.getCell();null!=c&&(c=this.getClickableLinkForCell(c),null!=c&&(this.isCustomLink(c)?this.customLinkClicked(c):this.openLink(c)));this.isEnabled()&&b&&this.clearSelection()};this.tooltipHandler.getStateForEvent=
@@ -2628,9 +2629,9 @@ Graph.prototype.selectCellsForConnectVertex=function(a,c,d){2==a.length&&this.mo
Graph.prototype.connectVertex=function(a,c,d,b,f,e,k,g){e=e?e:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var h=this.isCloneConnectSource(a),l=h?a:this.getCompositeParent(a),m=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(l.geometry.x,l.geometry.y);c==mxConstants.DIRECTION_NORTH?(m.x+=l.geometry.width/2,m.y-=d):c==
mxConstants.DIRECTION_SOUTH?(m.x+=l.geometry.width/2,m.y+=l.geometry.height+d):(m.x=c==mxConstants.DIRECTION_WEST?m.x-d:m.x+(l.geometry.width+d),m.y+=l.geometry.height/2);var p=this.view.getState(this.model.getParent(a));d=this.view.scale;var n=this.view.translate,l=n.x*d,n=n.y*d;null!=p&&this.model.isVertex(p.cell)&&(l=p.x,n=p.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(m.x+=a.parent.geometry.x,m.y+=a.parent.geometry.y);e=e?null:(new mxRectangle(l+m.x*d,n+m.y*d)).grow(40);e=null!=e?this.getCells(0,
0,0,0,null,null,e):null;var q=null!=e&&0<e.length?e.reverse()[0]:null,t=!1;null!=q&&this.model.isAncestor(q,a)&&(t=!0,q=null);null==q&&(e=this.getSwimlaneAt(l+m.x*d,n+m.y*d),null!=e&&(t=!1,q=e));for(e=q;null!=e;){if(this.isCellLocked(e)){q=null;break}e=this.model.getParent(e)}null!=q&&(e=this.view.getState(a),p=this.view.getState(q),null!=e&&null!=p&&mxUtils.intersects(e,p)&&(q=null));var u=!mxEvent.isShiftDown(b)||mxEvent.isControlDown(b)||f;u&&("1"!=urlParams.sketch||f)&&(c==mxConstants.DIRECTION_NORTH?
-m.y-=a.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=a.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-a.geometry.width/2:m.x+a.geometry.width/2);null==q||this.isCellConnectable(q)||this.isSwimlane(q)||(f=this.getModel().getParent(q),this.getModel().isVertex(f)&&this.isCellConnectable(f)&&(q=f));if(q==a||this.model.isEdge(q)||!this.isCellConnectable(q)&&!this.isSwimlane(q))q=null;var v=[],x=null!=q&&this.isSwimlane(q),y=x?null:q;f=mxUtils.bind(this,function(d){if(null==k||null!=d||
+m.y-=a.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=a.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-a.geometry.width/2:m.x+a.geometry.width/2);null==q||this.isCellConnectable(q)||this.isSwimlane(q)||(f=this.getModel().getParent(q),this.getModel().isVertex(f)&&this.isCellConnectable(f)&&(q=f));if(q==a||this.model.isEdge(q)||!this.isCellConnectable(q)&&!this.isSwimlane(q))q=null;var v=[],w=null!=q&&this.isSwimlane(q),y=w?null:q;f=mxUtils.bind(this,function(d){if(null==k||null!=d||
null==q&&h){this.model.beginUpdate();try{if(null==y&&u){for(var e=null!=d?d:a,f=this.getCellGeometry(e);null!=f&&f.relative;)e=this.getModel().getParent(e),f=this.getCellGeometry(e);e=h?a:this.getCompositeParent(e);y=null!=d?d:this.duplicateCells([e],!1)[0];null!=d&&this.addCells([y],this.model.getParent(a),null,null,null,!0);f=this.getCellGeometry(y);null!=f&&(null!=d&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?m.y-=f.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=f.height/2:m.x=c==mxConstants.DIRECTION_WEST?
-m.x-f.width/2:m.x+f.width/2),f.x=m.x-f.width/2,f.y=m.y-f.height/2);x?(this.addCells([y],q,null,null,null,!0),q=null):!u||null!=q||t||h||this.addCells([y],this.getDefaultParent(),null,null,null,!0)}var l=mxEvent.isControlDown(b)&&mxEvent.isShiftDown(b)&&u||null==q&&h?null:this.insertEdge(this.model.getParent(a),null,"",a,y,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var n=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=l.parent;)d=
+m.x-f.width/2:m.x+f.width/2),f.x=m.x-f.width/2,f.y=m.y-f.height/2);w?(this.addCells([y],q,null,null,null,!0),q=null):!u||null!=q||t||h||this.addCells([y],this.getDefaultParent(),null,null,null,!0)}var l=mxEvent.isControlDown(b)&&mxEvent.isShiftDown(b)&&u||null==q&&h?null:this.insertEdge(this.model.getParent(a),null,"",a,y,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var n=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=l.parent;)d=
this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==l.parent&&(n=d.parent.getIndex(d),this.model.add(d.parent,l,n))}null==q&&null!=y&&null!=a.parent&&h&&c==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,y,n));null!=l&&v.push(l);null==q&&null!=y&&v.push(y);null==y&&null!=l&&l.geometry.setTerminalPoint(m,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}}if(null!=g)g(v);else return v});if(null==k||null!=y||
!u||null==q&&h)return f(y);k(l+m.x*d,n+m.y*d,f)};Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),c=[],d,b;for(b in this.model.cells)if(d=this.model.cells[b],this.model.isVertex(d)||this.model.isEdge(d))this.isHtmlLabel(d)?(a.innerHTML=this.sanitizeHtml(this.getLabel(d)),d=mxUtils.extractTextWithWhitespace([a])):d=this.getLabel(d),d=mxUtils.trim(d.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<d.length&&c.push(d);return c.join(" ")};
Graph.prototype.convertValueToString=function(a){var c=this.model.getValue(a);if(null!=c&&"object"==typeof c){var d=null;if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var c=a.getAttribute("placeholder"),b=a;null==d&&null!=b;)null!=b.value&&"object"==typeof b.value&&(d=b.hasAttribute(c)?null!=b.getAttribute(c)?b.getAttribute(c):"":null),b=this.model.getParent(b);else d=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(d=c.getAttribute("label_"+Graph.diagramLanguage)),
@@ -2781,8 +2782,8 @@ m=this.getCellGeometry(c[f].cell),d=d+k;null!=m&&null!=l&&(m=m.clone(),a?m.x=Mat
return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q){var K=null;if(null!=q)for(K=new mxDictionary,m=0;m<q.length;m++)K.put(q[m],!0);if(q=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;var Y="page"==p?this.view.getBackgroundPageBounds():f&&null==K||d||"diagram"==p?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==Y)throw Error(mxResources.get("drawingEmpty"));
var ba=this.view.scale,t=mxUtils.createXmlDocument(),U=null!=t.createElementNS?t.createElementNS(mxConstants.NS_SVG,"svg"):t.createElement("svg");null!=a&&(null!=U.style?U.style.backgroundColor=a:U.setAttribute("style","background-color:"+a));null==t.createElementNS?(U.setAttribute("xmlns",mxConstants.NS_SVG),U.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):U.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/ba;var u=Math.max(1,Math.ceil(Y.width*a)+2*c)+(l?
5:0),v=Math.max(1,Math.ceil(Y.height*a)+2*c)+(l?5:0);U.setAttribute("version","1.1");U.setAttribute("width",u+"px");U.setAttribute("height",v+"px");U.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+u+" "+v);t.appendChild(U);var ia=null!=t.createElementNS?t.createElementNS(mxConstants.NS_SVG,"g"):t.createElement("g");U.appendChild(ia);var A=this.createSvgCanvas(ia);A.foOffset=e?-.5:0;A.textOffset=e?-.5:0;A.imageOffset=e?-.5:0;A.translate(Math.floor((c/b-Y.x)/ba),Math.floor((c/b-Y.y)/ba));var z=document.createElement("div"),
-W=A.getAlternateText;A.getAlternateText=function(a,b,c,d,e,f,g,h,k,l,m,n,K){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(z.innerHTML=f,f=mxUtils.extractTextWithWhitespace(z.childNodes));for(var r=Math.ceil(2*d/this.state.fontSize),w=[],B=0,C=0;(0==r||B<r)&&C<f.length;){var D=f.charCodeAt(C);if(10==D||13==D){if(0<B)break}else w.push(f.charAt(C)),255>D&&B++;C++}w.length<f.length&&1<f.length-w.length&&(f=mxUtils.trim(w.join(""))+"...");return f}catch(J){return W.apply(this,
-arguments)}else return W.apply(this,arguments)};var x=this.backgroundImage;if(null!=x){b=ba/b;var H=this.view.translate,I=new mxRectangle(H.x*b,H.y*b,x.width*b,x.height*b);mxUtils.intersects(Y,I)&&A.image(H.x,H.y,x.width,x.height,x.src,!0)}A.scale(a);A.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var y=h.drawCellState,la=h.getLinkForCellState;h.getLinkForCellState=function(a,b){var c=la.apply(this,arguments);return null==c||a.view.graph.isCustomLink(c)?null:c};h.getLinkTargetForCellState=
+W=A.getAlternateText;A.getAlternateText=function(a,b,c,d,e,f,g,h,k,l,m,n,r){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(z.innerHTML=f,f=mxUtils.extractTextWithWhitespace(z.childNodes));for(var x=Math.ceil(2*d/this.state.fontSize),B=[],C=0,D=0;(0==x||C<x)&&D<f.length;){var J=f.charCodeAt(D);if(10==J||13==J){if(0<C)break}else B.push(f.charAt(D)),255>J&&C++;D++}B.length<f.length&&1<f.length-B.length&&(f=mxUtils.trim(B.join(""))+"...");return f}catch(cb){return W.apply(this,
+arguments)}else return W.apply(this,arguments)};var w=this.backgroundImage;if(null!=w){b=ba/b;var H=this.view.translate,I=new mxRectangle(H.x*b,H.y*b,w.width*b,w.height*b);mxUtils.intersects(Y,I)&&A.image(H.x,H.y,w.width,w.height,w.src,!0)}A.scale(a);A.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var y=h.drawCellState,la=h.getLinkForCellState;h.getLinkForCellState=function(a,b){var c=la.apply(this,arguments);return null==c||a.view.graph.isCustomLink(c)?null:c};h.getLinkTargetForCellState=
function(a,b){return a.view.graph.getLinkTargetForCell(a.cell)};h.drawCellState=function(a,b){for(var c=a.view.graph,d=null!=K?K.get(a.cell):c.isCellSelected(a.cell),e=c.model.getParent(a.cell);!(f&&null==K||d)&&null!=e;)d=null!=K?K.get(e):c.isCellSelected(e),e=c.model.getParent(e);(f&&null==K||d)&&y.apply(this,arguments)};h.drawState(this.getView().getState(this.model.root),A);this.updateSvgLinks(U,k,!0);this.addForeignObjectWarning(A,U);return U}finally{q&&(this.useCssTransforms=!0,this.view.revalidate(),
this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,b){if("0"!=urlParams["svg-warning"]&&0<b.getElementsByTagName("foreignObject").length){var c=a.createElement("switch"),d=a.createElement("g");d.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=a.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||b.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),
e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var f=a.createElement("text");f.setAttribute("text-anchor","middle");f.setAttribute("font-size","10px");f.setAttribute("x","50%");f.setAttribute("y","100%");mxUtils.write(f,Graph.foreignObjectWarningText);c.appendChild(d);e.appendChild(f);c.appendChild(e);b.appendChild(c)}};Graph.prototype.updateSvgLinks=function(a,b,c){a=
@@ -2806,9 +2807,9 @@ this.textarea)};mxCellEditor.prototype.alignText=function(a,b){var c=null!=b&&mx
window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(U){}};var t=mxCellRenderer.prototype.initializeLabel;
mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));t.apply(this,arguments)};var u=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?u.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=
!1;var v=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){a=this.graph.getStartEditingCell(a,b);v.apply(this,arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);if(this.graph.getModel().isEdge(c)&&null!=
-d&&d.relative||this.graph.getModel().isEdge(a))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var x=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=
+d&&d.relative||this.graph.getModel().isEdge(a))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var w=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=
a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),
-a.removeAttribute("border"))):a.parentNode.removeChild(a)}x.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?c(this.textarea,d):Graph.removePasteFormatting(this.textarea))}),
+a.removeAttribute("border"))):a.parentNode.removeChild(a)}w.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?c(this.textarea,d):Graph.removePasteFormatting(this.textarea))}),
0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell);if(null!=a){var b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),c=this.saveSelection();if(this.codeViewMode){k=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<k.length&&"\n"==k.charAt(k.length-1)&&(k=k.substring(0,k.length-1));k=this.graph.sanitizeHtml(b?k.replace(/\n/g,"<br/>"):k,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,
mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,h=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&
h.push("underline");(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&h.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=h.join(" ");this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=
@@ -2969,11 +2970,11 @@ ArrangePanel.prototype.addGeometry=function(a){var c=this,d=this.editorUi,b=d.ed
this.isFloatUnit()),q=this.addUnitInput(k,this.getUnit(),20,44,function(){l.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),t=document.createElement("div");t.className="geSprite geSprite-fit";t.setAttribute("title",mxResources.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")");t.style.position="relative";t.style.cursor="pointer";t.style.marginTop="-3px";t.style.border="0px";t.style.left="42px";mxUtils.setOpacity(t,50);mxEvent.addListener(t,"mouseenter",
function(){mxUtils.setOpacity(t,100)});mxEvent.addListener(t,"mouseleave",function(){mxUtils.setOpacity(t,50)});mxEvent.addListener(t,"click",function(){d.actions.get("autosize").funct()});k.appendChild(t);e.row?(n.style.visibility="hidden",n.nextSibling.style.visibility="hidden"):this.addLabel(k,mxResources.get("width"),84);this.addLabel(k,mxResources.get("height"),20);mxUtils.br(k);g=document.createElement("div");g.style.paddingTop="8px";g.style.paddingRight="20px";g.style.whiteSpace="nowrap";g.style.textAlign=
"right";var u=this.createCellOption(mxResources.get("constrainProportions"),mxConstants.STYLE_ASPECT,null,"fixed","null");u.style.width="100%";g.appendChild(u);e.cell||e.row?t.style.visibility="hidden":k.appendChild(g);var v=u.getElementsByTagName("input")[0];this.addKeyHandler(n,E);this.addKeyHandler(q,E);h=this.addGeometryHandler(n,function(a,d,e){if(b.isTableCell(e))return b.setTableColumnWidth(e,d-a.width,!0),!0;0<a.width&&(d=Math.max(1,c.fromUnit(d)),v.checked&&(a.height=Math.round(a.height*
-d*100/a.width)/100),a.width=d)});l=this.addGeometryHandler(q,function(a,d,e){b.isTableCell(e)&&(e=b.model.getParent(e));if(b.isTableRow(e))return b.setTableRowHeight(e,d-a.height),!0;0<a.height&&(d=Math.max(1,c.fromUnit(d)),v.checked&&(a.width=Math.round(a.width*d*100/a.height)/100),a.height=d)});(e.resizable||e.row||e.cell)&&a.appendChild(k);var x=this.createPanel();x.style.paddingBottom="30px";g=document.createElement("div");g.style.position="absolute";g.style.width="70px";g.style.marginTop="0px";
-g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("position"));x.appendChild(g);var y=this.addUnitInput(x,this.getUnit(),84,44,function(){m.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),G=this.addUnitInput(x,this.getUnit(),20,44,function(){p.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());mxUtils.br(x);this.addLabel(x,mxResources.get("left"),84);this.addLabel(x,mxResources.get("top"),20);var E=mxUtils.bind(this,function(a,c,d){e=this.format.getSelectionState();
-if(e.containsLabel||e.vertices.length!=b.getSelectionCount()||null==e.width||null==e.height)k.style.display="none";else{k.style.display="";if(d||document.activeElement!=n)n.value=this.inUnit(e.width)+(""==e.width?"":" "+this.getUnit());if(d||document.activeElement!=q)q.value=this.inUnit(e.height)+(""==e.height?"":" "+this.getUnit())}if(e.vertices.length==b.getSelectionCount()&&null!=e.x&&null!=e.y){x.style.display="";if(d||document.activeElement!=y)y.value=this.inUnit(e.x)+(""==e.x?"":" "+this.getUnit());
-if(d||document.activeElement!=G)G.value=this.inUnit(e.y)+(""==e.y?"":" "+this.getUnit())}else x.style.display="none"});this.addKeyHandler(y,E);this.addKeyHandler(G,E);f.addListener(mxEvent.CHANGE,E);this.listeners.push({destroy:function(){f.removeListener(E)}});E();m=this.addGeometryHandler(y,function(a,b){b=c.fromUnit(b);a.relative?a.offset.x=b:a.x=b});p=this.addGeometryHandler(G,function(a,b){b=c.fromUnit(b);a.relative?a.offset.y=b:a.y=b});if(e.movable){if(0==e.edges.length&&1==e.vertices.length&&
-f.isEdge(f.getParent(e.vertices[0]))){var F=b.getCellGeometry(e.vertices[0]);null!=F&&F.relative&&(g=mxUtils.button(mxResources.get("center"),mxUtils.bind(this,function(a){f.beginUpdate();try{F=F.clone(),F.x=0,F.y=0,F.offset=new mxPoint,f.setGeometry(e.vertices[0],F)}finally{f.endUpdate()}})),g.setAttribute("title",mxResources.get("center")),g.style.width="202px",g.style.position="absolute",mxUtils.br(x),mxUtils.br(x),x.appendChild(g))}a.appendChild(x)}};
+d*100/a.width)/100),a.width=d)});l=this.addGeometryHandler(q,function(a,d,e){b.isTableCell(e)&&(e=b.model.getParent(e));if(b.isTableRow(e))return b.setTableRowHeight(e,d-a.height),!0;0<a.height&&(d=Math.max(1,c.fromUnit(d)),v.checked&&(a.width=Math.round(a.width*d*100/a.height)/100),a.height=d)});(e.resizable||e.row||e.cell)&&a.appendChild(k);var w=this.createPanel();w.style.paddingBottom="30px";g=document.createElement("div");g.style.position="absolute";g.style.width="70px";g.style.marginTop="0px";
+g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("position"));w.appendChild(g);var y=this.addUnitInput(w,this.getUnit(),84,44,function(){m.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),G=this.addUnitInput(w,this.getUnit(),20,44,function(){p.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());mxUtils.br(w);this.addLabel(w,mxResources.get("left"),84);this.addLabel(w,mxResources.get("top"),20);var E=mxUtils.bind(this,function(a,c,d){e=this.format.getSelectionState();
+if(e.containsLabel||e.vertices.length!=b.getSelectionCount()||null==e.width||null==e.height)k.style.display="none";else{k.style.display="";if(d||document.activeElement!=n)n.value=this.inUnit(e.width)+(""==e.width?"":" "+this.getUnit());if(d||document.activeElement!=q)q.value=this.inUnit(e.height)+(""==e.height?"":" "+this.getUnit())}if(e.vertices.length==b.getSelectionCount()&&null!=e.x&&null!=e.y){w.style.display="";if(d||document.activeElement!=y)y.value=this.inUnit(e.x)+(""==e.x?"":" "+this.getUnit());
+if(d||document.activeElement!=G)G.value=this.inUnit(e.y)+(""==e.y?"":" "+this.getUnit())}else w.style.display="none"});this.addKeyHandler(y,E);this.addKeyHandler(G,E);f.addListener(mxEvent.CHANGE,E);this.listeners.push({destroy:function(){f.removeListener(E)}});E();m=this.addGeometryHandler(y,function(a,b){b=c.fromUnit(b);a.relative?a.offset.x=b:a.x=b});p=this.addGeometryHandler(G,function(a,b){b=c.fromUnit(b);a.relative?a.offset.y=b:a.y=b});if(e.movable){if(0==e.edges.length&&1==e.vertices.length&&
+f.isEdge(f.getParent(e.vertices[0]))){var F=b.getCellGeometry(e.vertices[0]);null!=F&&F.relative&&(g=mxUtils.button(mxResources.get("center"),mxUtils.bind(this,function(a){f.beginUpdate();try{F=F.clone(),F.x=0,F.y=0,F.offset=new mxPoint,f.setGeometry(e.vertices[0],F)}finally{f.endUpdate()}})),g.setAttribute("title",mxResources.get("center")),g.style.width="202px",g.style.position="absolute",mxUtils.br(w),mxUtils.br(w),w.appendChild(g))}a.appendChild(w)}};
ArrangePanel.prototype.addGeometryHandler=function(a,c){function d(d){if(""!=a.value){var g=parseFloat(a.value);if(isNaN(g))a.value=f+" "+e.getUnit();else if(g!=f){b.getModel().beginUpdate();try{for(var h=b.getSelectionCells(),k=0;k<h.length;k++)if(b.getModel().isVertex(h[k])){var m=b.getCellGeometry(h[k]);if(null!=m&&(m=m.clone(),!c(m,g,h[k]))){var p=b.view.getState(h[k]);null!=p&&b.isRecursiveVertexResize(p)&&b.resizeChildCells(h[k],m);b.getModel().setGeometry(h[k],m);b.constrainChildCells(h[k])}}}finally{b.getModel().endUpdate()}f=
g;a.value=g+" "+e.getUnit()}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null,e=this;mxEvent.addListener(a,"blur",d);mxEvent.addListener(a,"change",d);mxEvent.addListener(a,"focus",function(){f=a.value});return d};
ArrangePanel.prototype.addEdgeGeometryHandler=function(a,c){function d(d){if(""!=a.value){var e=parseFloat(a.value);if(isNaN(e))a.value=f+" pt";else if(e!=f){b.getModel().beginUpdate();try{for(var g=b.getSelectionCells(),h=0;h<g.length;h++)if(b.getModel().isEdge(g[h])){var l=b.getCellGeometry(g[h]);null!=l&&(l=l.clone(),c(l,e),b.getModel().setGeometry(g[h],l))}}finally{b.getModel().endUpdate()}f=e;a.value=e+" pt"}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null;mxEvent.addListener(a,"blur",
@@ -2981,9 +2982,9 @@ d);mxEvent.addListener(a,"change",d);mxEvent.addListener(a,"focus",function(){f=
ArrangePanel.prototype.addEdgeGeometry=function(a){function c(a){var c=parseInt(p.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(f.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth)&&(b.setCellStyles("width",c,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",["width"],"values",[c],"cells",b.getSelectionCells())));p.value=c+" pt";mxEvent.consume(a)}var d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createPanel(),
k=document.createElement("div");k.style.position="absolute";k.style.width="70px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,mxResources.get("width"));e.appendChild(k);var g,h,l,m,p=this.addUnitInput(e,"pt",20,44,function(){c.apply(this,arguments)});mxUtils.br(e);this.addKeyHandler(p,y);mxEvent.addListener(p,"blur",c);mxEvent.addListener(p,"change",c);a.appendChild(e);var n=this.createPanel();n.style.paddingBottom="30px";k=document.createElement("div");k.style.position="absolute";
k.style.width="70px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,"Start");n.appendChild(k);var q=this.addUnitInput(n,"pt",84,44,function(){l.apply(this,arguments)}),t=this.addUnitInput(n,"pt",20,44,function(){m.apply(this,arguments)});mxUtils.br(n);this.addLabel(n,mxResources.get("left"),84);this.addLabel(n,mxResources.get("top"),20);a.appendChild(n);this.addKeyHandler(q,y);this.addKeyHandler(t,y);var u=this.createPanel();u.style.paddingBottom="30px";k=document.createElement("div");
-k.style.position="absolute";k.style.width="70px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,"End");u.appendChild(k);var v=this.addUnitInput(u,"pt",84,44,function(){g.apply(this,arguments)}),x=this.addUnitInput(u,"pt",20,44,function(){h.apply(this,arguments)});mxUtils.br(u);this.addLabel(u,mxResources.get("left"),84);this.addLabel(u,mxResources.get("top"),20);a.appendChild(u);this.addKeyHandler(v,y);this.addKeyHandler(x,y);var y=mxUtils.bind(this,function(a,c,d){f=this.format.getSelectionState();
+k.style.position="absolute";k.style.width="70px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,"End");u.appendChild(k);var v=this.addUnitInput(u,"pt",84,44,function(){g.apply(this,arguments)}),w=this.addUnitInput(u,"pt",20,44,function(){h.apply(this,arguments)});mxUtils.br(u);this.addLabel(u,mxResources.get("left"),84);this.addLabel(u,mxResources.get("top"),20);a.appendChild(u);this.addKeyHandler(v,y);this.addKeyHandler(w,y);var y=mxUtils.bind(this,function(a,c,d){f=this.format.getSelectionState();
a=b.getSelectionCell();if("link"==f.style.shape||"flexArrow"==f.style.shape){if(e.style.display="",d||document.activeElement!=p)d=mxUtils.getValue(f.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth),p.value=d+" pt"}else e.style.display="none";1==b.getSelectionCount()&&b.model.isEdge(a)?(d=b.model.getGeometry(a),null!=d.sourcePoint&&null==b.model.getTerminal(a,!0)?(q.value=d.sourcePoint.x,t.value=d.sourcePoint.y):n.style.display="none",null!=d.targetPoint&&null==b.model.getTerminal(a,
-!1)?(v.value=d.targetPoint.x,x.value=d.targetPoint.y):u.style.display="none"):(n.style.display="none",u.style.display="none")});l=this.addEdgeGeometryHandler(q,function(a,b){a.sourcePoint.x=b});m=this.addEdgeGeometryHandler(t,function(a,b){a.sourcePoint.y=b});g=this.addEdgeGeometryHandler(v,function(a,b){a.targetPoint.x=b});h=this.addEdgeGeometryHandler(x,function(a,b){a.targetPoint.y=b});b.getModel().addListener(mxEvent.CHANGE,y);this.listeners.push({destroy:function(){b.getModel().removeListener(y)}});
+!1)?(v.value=d.targetPoint.x,w.value=d.targetPoint.y):u.style.display="none"):(n.style.display="none",u.style.display="none")});l=this.addEdgeGeometryHandler(q,function(a,b){a.sourcePoint.x=b});m=this.addEdgeGeometryHandler(t,function(a,b){a.sourcePoint.y=b});g=this.addEdgeGeometryHandler(v,function(a,b){a.targetPoint.x=b});h=this.addEdgeGeometryHandler(w,function(a,b){a.targetPoint.y=b});b.getModel().addListener(mxEvent.CHANGE,y);this.listeners.push({destroy:function(){b.getModel().removeListener(y)}});
y()};TextFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(TextFormatPanel,BaseFormatPanel);TextFormatPanel.prototype.init=function(){this.container.style.borderBottom="none";this.addFont(this.container)};
TextFormatPanel.prototype.addFont=function(a){function c(a,b){a.style.backgroundImage=b?Editor.isDarkMode()?"linear-gradient(rgb(0 161 241) 0px, rgb(0, 97, 146) 100%)":"linear-gradient(#c5ecff 0px,#87d4fb 100%)":""}var d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createTitle(mxResources.get("font"));e.style.paddingLeft="18px";e.style.paddingTop="10px";e.style.paddingBottom="6px";a.appendChild(e);e=this.createPanel();e.style.paddingTop="2px";e.style.paddingBottom="2px";
e.style.position="relative";e.style.marginLeft="-2px";e.style.borderWidth="0px";e.className="geToolbarContainer";if(b.cellEditor.isContentEditing()){var k=e.cloneNode(),g=this.editorUi.toolbar.addMenu(mxResources.get("style"),mxResources.get("style"),!0,"formatBlock",k,null,!0);g.style.color="rgb(112, 112, 112)";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.margin="0px";this.addArrow(g);g.style.width="192px";g.style.height="15px";g=g.getElementsByTagName("div")[0];g.style.cssFloat=
@@ -2992,8 +2993,8 @@ this.editorUi.toolbar.addItems(["bold","italic","underline"],g,!0);l[0].setAttri
var p=e.cloneNode(!1);p.style.marginLeft="-3px";p.style.paddingBottom="0px";var n=function(a){return function(){return a()}},q=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_LEFT,a)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT])),p),t=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),b.cellEditor.isContentEditing()?
function(a){b.cellEditor.alignText(mxConstants.ALIGN_CENTER,a)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER])),p),u=this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_RIGHT,a)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),p);this.styleButtons([q,t,u]);if(b.cellEditor.isContentEditing()){var v=
this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("strikethrough"),function(){document.execCommand("strikeThrough",!1,null)},g);this.styleButtons([v]);v.firstChild.style.background="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjR2MjRIMFYweiIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGZpbGw9IiMwMTAxMDEiIGQ9Ik03LjI0IDguNzVjLS4yNi0uNDgtLjM5LTEuMDMtLjM5LTEuNjcgMC0uNjEuMTMtMS4xNi40LTEuNjcuMjYtLjUuNjMtLjkzIDEuMTEtMS4yOS40OC0uMzUgMS4wNS0uNjMgMS43LS44My42Ni0uMTkgMS4zOS0uMjkgMi4xOC0uMjkuODEgMCAxLjU0LjExIDIuMjEuMzQuNjYuMjIgMS4yMy41NCAxLjY5Ljk0LjQ3LjQuODMuODggMS4wOCAxLjQzLjI1LjU1LjM4IDEuMTUuMzggMS44MWgtMy4wMWMwLS4zMS0uMDUtLjU5LS4xNS0uODUtLjA5LS4yNy0uMjQtLjQ5LS40NC0uNjgtLjItLjE5LS40NS0uMzMtLjc1LS40NC0uMy0uMS0uNjYtLjE2LTEuMDYtLjE2LS4zOSAwLS43NC4wNC0xLjAzLjEzLS4yOS4wOS0uNTMuMjEtLjcyLjM2LS4xOS4xNi0uMzQuMzQtLjQ0LjU1LS4xLjIxLS4xNS40My0uMTUuNjYgMCAuNDguMjUuODguNzQgMS4yMS4zOC4yNS43Ny40OCAxLjQxLjdINy4zOWMtLjA1LS4wOC0uMTEtLjE3LS4xNS0uMjV6TTIxIDEydi0ySDN2Mmg5LjYyYy4xOC4wNy40LjE0LjU1LjIuMzcuMTcuNjYuMzQuODcuNTEuMjEuMTcuMzUuMzYuNDMuNTcuMDcuMi4xMS40My4xMS42OSAwIC4yMy0uMDUuNDUtLjE0LjY2LS4wOS4yLS4yMy4zOC0uNDIuNTMtLjE5LjE1LS40Mi4yNi0uNzEuMzUtLjI5LjA4LS42My4xMy0xLjAxLjEzLS40MyAwLS44My0uMDQtMS4xOC0uMTNzLS42Ni0uMjMtLjkxLS40MmMtLjI1LS4xOS0uNDUtLjQ0LS41OS0uNzUtLjE0LS4zMS0uMjUtLjc2LS4yNS0xLjIxSDYuNGMwIC41NS4wOCAxLjEzLjI0IDEuNTguMTYuNDUuMzcuODUuNjUgMS4yMS4yOC4zNS42LjY2Ljk4LjkyLjM3LjI2Ljc4LjQ4IDEuMjIuNjUuNDQuMTcuOS4zIDEuMzguMzkuNDguMDguOTYuMTMgMS40NC4xMy44IDAgMS41My0uMDkgMi4xOC0uMjhzMS4yMS0uNDUgMS42Ny0uNzljLjQ2LS4zNC44Mi0uNzcgMS4wNy0xLjI3cy4zOC0xLjA3LjM4LTEuNzFjMC0uNi0uMS0xLjE0LS4zMS0xLjYxLS4wNS0uMTEtLjExLS4yMy0uMTctLjMzSDIxeiIvPjwvc3ZnPg==)";
-v.firstChild.style.backgroundPosition="2px 2px";v.firstChild.style.backgroundSize="18px 18px";this.styleButtons([v])}var x=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),p),y=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),p),G=this.editorUi.toolbar.addButton("geSprite-bottom",
-mxResources.get("bottom"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),p);this.styleButtons([x,y,G]);a.appendChild(p);var E,F,A,I,z,H,L;b.cellEditor.isContentEditing()?(x.style.display="none",y.style.display="none",G.style.display="none",m.style.display="none",A=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==A.style.opacity&&document.execCommand("justifyfull",!1,null)},p),A.style.marginRight=
+v.firstChild.style.backgroundPosition="2px 2px";v.firstChild.style.backgroundSize="18px 18px";this.styleButtons([v])}var w=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),p),y=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),p),G=this.editorUi.toolbar.addButton("geSprite-bottom",
+mxResources.get("bottom"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),p);this.styleButtons([w,y,G]);a.appendChild(p);var E,F,A,I,z,H,L;b.cellEditor.isContentEditing()?(w.style.display="none",y.style.display="none",G.style.display="none",m.style.display="none",A=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==A.style.opacity&&document.execCommand("justifyfull",!1,null)},p),A.style.marginRight=
"9px",A.style.opacity=1,this.styleButtons([A,E=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",!1,null)},p),F=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},p)]),E.style.marginLeft="9px",n=p.cloneNode(!1),n.style.paddingTop="4px",p=[this.editorUi.toolbar.addButton("geSprite-orderedlist",
mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),function(){document.execCommand("insertunorderedlist",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-outdent",mxResources.get("decreaseIndent"),function(){document.execCommand("outdent",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-indent",mxResources.get("increaseIndent"),function(){document.execCommand("indent",
!1,null)},n),this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){b.cellEditor.toggleViewMode()},n)],this.styleButtons(p),p[p.length-2].style.marginLeft="9px",a.appendChild(n)):(l[2].style.marginRight="9px",u.style.marginRight="9px");p=e.cloneNode(!1);p.style.marginLeft="0px";p.style.paddingTop="8px";p.style.paddingBottom=
@@ -3026,14 +3027,14 @@ mxUtils.bind(this,function(a){if(null!=z){var c=z.style.backgroundColor.replace(
mxResources.get("spacing"),function(){if(null!=z){var a=z.getAttribute("cellPadding")||0,a=new FilenameDialog(d,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?z.setAttribute("cellPadding",a):z.removeAttribute("cellPadding")}),mxResources.get("spacing"));d.showDialog(a.container,300,80,!0,!0);a.init()}},e),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=z&&z.setAttribute("align","left")},e),this.editorUi.toolbar.addButton("geSprite-center",
mxResources.get("center"),function(){null!=z&&z.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=z&&z.setAttribute("align","right")},e)];this.styleButtons(p);p[2].style.marginRight="9px";k.appendChild(e);a.appendChild(k);I=k}else a.appendChild(k),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(g);var X=mxUtils.bind(this,function(a,b,d){f=this.format.getSelectionState();
a=mxUtils.getValue(f.style,mxConstants.STYLE_FONTSTYLE,0);c(l[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);c(l[1],(a&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);c(l[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);h.firstChild.nodeValue=mxUtils.getValue(f.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);c(m,"0"==mxUtils.getValue(f.style,mxConstants.STYLE_HORIZONTAL,"1"));if(d||document.activeElement!=T)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_FONTSIZE,
-Menus.prototype.defaultFontSize)),T.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);c(q,a==mxConstants.ALIGN_LEFT);c(t,a==mxConstants.ALIGN_CENTER);c(u,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(x,a==mxConstants.ALIGN_TOP);c(y,a==mxConstants.ALIGN_MIDDLE);c(G,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(f.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);
+Menus.prototype.defaultFontSize)),T.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);c(q,a==mxConstants.ALIGN_LEFT);c(t,a==mxConstants.ALIGN_CENTER);c(u,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(w,a==mxConstants.ALIGN_TOP);c(y,a==mxConstants.ALIGN_MIDDLE);c(G,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(f.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);
b=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);P.value=a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_TOP?"topLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&b==mxConstants.ALIGN_TOP?"topRight":a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&b==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?
"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(f.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);a==mxConstants.TEXT_DIRECTION_RTL?Q.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?Q.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(Q.value="automatic");if(d||document.activeElement!=ga)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING,2)),ga.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ka)a=parseFloat(mxUtils.getValue(f.style,
mxConstants.STYLE_SPACING_TOP,0)),ka.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ea)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_RIGHT,0)),ea.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ca)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_BOTTOM,0)),ca.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ha)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_LEFT,0)),ha.value=isNaN(a)?"":a+" pt"});qa=this.installInputHandler(ga,
mxConstants.STYLE_SPACING,2,-999,999," pt");da=this.installInputHandler(ka,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");va=this.installInputHandler(ea,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");ra=this.installInputHandler(ca,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");ua=this.installInputHandler(ha,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(T,X);this.addKeyHandler(ga,X);this.addKeyHandler(ka,X);this.addKeyHandler(ea,X);this.addKeyHandler(ca,X);this.addKeyHandler(ha,
X);b.getModel().addListener(mxEvent.CHANGE,X);this.listeners.push({destroy:function(){b.getModel().removeListener(X)}});X();if(b.cellEditor.isContentEditing()){var sa=!1,e=function(){sa||(sa=!0,window.setTimeout(function(){var a=b.getSelectedEditingElement();if(null!=a){var d=function(a,b){if(null!=a&&null!=b){if(a==b)return!0;if(a.length>b.length+1)return a.substring(a.length-b.length-1,a.length)=="-"+b}return!1},e=function(c){if(null!=b.getParentByName(a,c,b.cellEditor.textarea))return!0;for(var d=
a;null!=d&&1==d.childNodes.length;)if(d=d.childNodes[0],d.nodeName==c)return!0;return!1},g=function(a){a=null!=a?a.fontSize:null;return null!=a&&"px"==a.substring(a.length-2)?parseFloat(a):mxConstants.DEFAULT_FONTSIZE},k=function(a,b,c){return null!=c.style&&null!=b?(b=b.lineHeight,null!=c.style.lineHeight&&"%"==c.style.lineHeight.substring(c.style.lineHeight.length-1)?parseInt(c.style.lineHeight)/100:"px"==b.substring(b.length-2)?parseFloat(b)/a:parseInt(b)):""},m=mxUtils.getCurrentStyle(a),n=g(m),
-p=k(n,m,a),v=a.getElementsByTagName("*");if(0<v.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var x=window.getSelection(),y=0;y<v.length;y++)if(x.containsNode(v[y],!0)){temp=mxUtils.getCurrentStyle(v[y]);var n=Math.max(g(temp),n),N=k(n,temp,v[y]);if(N!=p||isNaN(N))p=""}null!=m&&(c(l[0],"bold"==m.fontWeight||400<m.fontWeight||e("B")||e("STRONG")),c(l[1],"italic"==m.fontStyle||e("I")||e("EM")),c(l[2],e("U")),c(F,e("SUP")),c(E,e("SUB")),b.cellEditor.isTableSelected()?(c(A,d(m.textAlign,
+p=k(n,m,a),v=a.getElementsByTagName("*");if(0<v.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var w=window.getSelection(),y=0;y<v.length;y++)if(w.containsNode(v[y],!0)){temp=mxUtils.getCurrentStyle(v[y]);var n=Math.max(g(temp),n),N=k(n,temp,v[y]);if(N!=p||isNaN(N))p=""}null!=m&&(c(l[0],"bold"==m.fontWeight||400<m.fontWeight||e("B")||e("STRONG")),c(l[1],"italic"==m.fontStyle||e("I")||e("EM")),c(l[2],e("U")),c(F,e("SUP")),c(E,e("SUB")),b.cellEditor.isTableSelected()?(c(A,d(m.textAlign,
"justify")),c(q,d(m.textAlign,"left")),c(t,d(m.textAlign,"center")),c(u,d(m.textAlign,"right"))):(e=b.cellEditor.align||mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),d(m.textAlign,"justify")?(c(A,d(m.textAlign,"justify")),c(q,!1),c(t,!1),c(u,!1)):(c(A,!1),c(q,e==mxConstants.ALIGN_LEFT),c(t,e==mxConstants.ALIGN_CENTER),c(u,e==mxConstants.ALIGN_RIGHT))),z=b.getParentByName(a,"TABLE",b.cellEditor.textarea),L=null==z?null:b.getParentByName(a,"TR",z),H=null==z?null:b.getParentByNames(a,
["TD","TH"],z),I.style.display=null!=z?"":"none",document.activeElement!=T&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=S?(a.removeAttribute("size"),a.style.fontSize=S+" pt",S=null):T.value=isNaN(n)?"":n+" pt",N=parseFloat(p),isNaN(N)?ja.value="100 %":ja.value=Math.round(100*N)+" %"),d=m.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),
n=m.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),null!=fa&&(na="#"==d.charAt(0)?d:"#000000",fa(na,!0)),null!=R&&(W="#"==n.charAt(0)?n:null,R(W,!0)),null!=h.firstChild&&(h.firstChild.nodeValue=Graph.stripQuotes(m.fontFamily)))}sa=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(b.cellEditor.textarea,
@@ -3054,8 +3055,8 @@ mxConstants.DIRECTION_WEST],h=0;h<l.length;h++){var m=document.createElement("op
mxConstants.STYLE_GRADIENT_DIRECTION,mxConstants.DIRECTION_SOUTH),e=mxUtils.getValue(d.style,"fillStyle","auto");""==c&&(c=mxConstants.DIRECTION_SOUTH);b.value=c;f.value=e;a.style.display=d.fill?"":"none";c=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,null);!d.fill||d.containsImage||null==c||c==mxConstants.NONE||"filledEdge"==d.style.shape?(f.style.display="none",k.style.display="none"):(f.style.display="1"==d.style.sketch?"":"none",k.style.display="1"!=d.style.sketch||"solid"==e||"auto"==
e?"":"none")});c.getModel().addListener(mxEvent.CHANGE,p);this.listeners.push({destroy:function(){c.getModel().removeListener(p)}});p();mxEvent.addListener(b,"change",function(a){c.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,b.value,c.getSelectionCells());mxEvent.consume(a)});mxEvent.addListener(f,"change",function(a){c.setCellStyles("fillStyle",f.value,c.getSelectionCells());mxEvent.consume(a)});a.appendChild(e);a.appendChild(k);e=this.getCustomColors();for(h=0;h<e.length;h++)a.appendChild(this.createCellColorOption(e[h].title,
e[h].key,e[h].defaultValue));return a};StyleFormatPanel.prototype.getCustomColors=function(){var a=this.format.getSelectionState(),c=[];"swimlane"!=a.style.shape&&"table"!=a.style.shape||c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return c};
-StyleFormatPanel.prototype.addStroke=function(a){function c(a){var c=parseInt(v.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));v.value=c+" pt";mxEvent.consume(a)}function d(a){var c=parseInt(x.value),c=Math.min(999,Math.max(1,isNaN(c)?1:
-c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));x.value=c+" pt";mxEvent.consume(a)}var b=this.editorUi,f=b.editor.graph,e=this.format.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var k=document.createElement("div");k.style.fontWeight=
+StyleFormatPanel.prototype.addStroke=function(a){function c(a){var c=parseInt(v.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));v.value=c+" pt";mxEvent.consume(a)}function d(a){var c=parseInt(w.value),c=Math.min(999,Math.max(1,isNaN(c)?1:
+c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));w.value=c+" pt";mxEvent.consume(a)}var b=this.editorUi,f=b.editor.graph,e=this.format.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var k=document.createElement("div");k.style.fontWeight=
"bold";e.stroke||(k.style.display="none");var g=document.createElement("select");g.style.position="absolute";g.style.marginTop="-2px";g.style.right="72px";g.style.width="80px";for(var h=["sharp","rounded","curved"],l=0;l<h.length;l++){var m=document.createElement("option");m.setAttribute("value",h[l]);mxUtils.write(m,mxResources.get(h[l]));g.appendChild(m)}mxEvent.addListener(g,"change",function(a){f.getModel().beginUpdate();try{var c=[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],d=["0",null];
"rounded"==g.value?d=["1",null]:"curved"==g.value&&(d=[null,"1"]);for(var e=0;e<c.length;e++)f.setCellStyles(c[e],d[e],f.getSelectionCells());b.fireEvent(new mxEventObject("styleChanged","keys",c,"values",d,"cells",f.getSelectionCells()))}finally{f.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});var p="image"==e.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR,h="image"==e.style.shape?mxResources.get("border"):mxResources.get("line"),
l=1<=e.vertices.length?f.stylesheet.getDefaultVertexStyle():f.stylesheet.getDefaultEdgeStyle(),h=this.createCellColorOption(h,p,null!=l[p]?l[p]:"#000000",null,mxUtils.bind(this,function(a){f.updateCellStyles(p,a,f.getSelectionCells())}));h.appendChild(g);k.appendChild(h);var n=k.cloneNode(!1);n.style.fontWeight="normal";n.style.whiteSpace="nowrap";n.style.position="relative";n.style.paddingLeft="16px";n.style.marginBottom="2px";n.style.marginTop="2px";n.className="geToolbarContainer";var q=mxUtils.bind(this,
@@ -3065,8 +3066,8 @@ mxResources.get("dotted")+" (2)");q(a,75,"dotted",[mxConstants.STYLE_DASHED,mxCo
null,!0).setAttribute("title",mxResources.get("line"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["link",null,null,null],"geIcon geSprite geSprite-linkedge",null,!0).setAttribute("title",mxResources.get("link"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["flexArrow",null,null,null],"geIcon geSprite geSprite-arrow",null,!0).setAttribute("title",
mxResources.get("arrow"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["arrow",null,null,null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",mxResources.get("simpleArrow"))})),m=this.editorUi.toolbar.addMenuFunctionInContainer(t,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(a){q(a,33,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",
mxResources.get("solid"));q(a,33,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],
-["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),h=n.cloneNode(!1),v=document.createElement("input");v.style.textAlign="right";v.style.marginTop="min"==uiTheme?"0px":"2px";v.style.width="41px";v.setAttribute("title",mxResources.get("linewidth"));n.appendChild(v);var x=v.cloneNode(!0);t.appendChild(x);var y=this.createStepper(v,c,1,9);y.style.display=v.style.display;y.style.marginTop="min"==uiTheme?"0px":"2px";n.appendChild(y);var G=this.createStepper(x,d,1,9);G.style.display=
-x.style.display;G.style.marginTop="min"==uiTheme?"0px":"2px";t.appendChild(G);v.style.position="absolute";v.style.height="15px";v.style.left="141px";y.style.left="190px";x.style.position="absolute";x.style.left="141px";x.style.height="15px";G.style.left="190px";mxEvent.addListener(v,"blur",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(x,"blur",d);mxEvent.addListener(x,"change",d);var E=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-orthogonal",mxResources.get("waypoints"),
+["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),h=n.cloneNode(!1),v=document.createElement("input");v.style.textAlign="right";v.style.marginTop="min"==uiTheme?"0px":"2px";v.style.width="41px";v.setAttribute("title",mxResources.get("linewidth"));n.appendChild(v);var w=v.cloneNode(!0);t.appendChild(w);var y=this.createStepper(v,c,1,9);y.style.display=v.style.display;y.style.marginTop="min"==uiTheme?"0px":"2px";n.appendChild(y);var G=this.createStepper(w,d,1,9);G.style.display=
+w.style.display;G.style.marginTop="min"==uiTheme?"0px":"2px";t.appendChild(G);v.style.position="absolute";v.style.height="15px";v.style.left="141px";y.style.left="190px";w.style.position="absolute";w.style.left="141px";w.style.height="15px";G.style.left="190px";mxEvent.addListener(v,"blur",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(w,"blur",d);mxEvent.addListener(w,"change",d);var E=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-orthogonal",mxResources.get("waypoints"),
!1,mxUtils.bind(this,function(a){"arrow"!=e.style.shape&&(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",null,!0).setAttribute("title",mxResources.get("straight")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle",null,null],"geIcon geSprite geSprite-orthogonal",null,!0).setAttribute("title",
mxResources.get("orthogonal")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalelbow",null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalelbow",
null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle",
@@ -3101,7 +3102,7 @@ m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px"
l.appendChild(m);var M,Q,Z=this.addUnitInput(l,"pt",74,33,function(){M.apply(this,arguments)}),aa=this.addUnitInput(l,"pt",20,33,function(){Q.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),74,50);this.addLabel(l,mxResources.get("size"),20,50);mxUtils.br(l);k=k.cloneNode(!1);k.style.fontWeight="normal";k.style.position="relative";k.style.paddingLeft="16px";k.style.marginBottom="2px";k.style.marginTop="6px";k.style.borderWidth="0px";k.style.paddingBottom="18px";m=document.createElement("div");
m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="1px";m.style.fontWeight="normal";m.style.width="120px";mxUtils.write(m,mxResources.get("perimeter"));k.appendChild(m);var T,S=this.addUnitInput(k,"pt",20,41,function(){T.apply(this,arguments)});e.edges.length==f.getSelectionCount()?(a.appendChild(h),a.appendChild(l)):e.vertices.length==f.getSelectionCount()&&a.appendChild(k);var R=mxUtils.bind(this,function(a,c,d){function h(a,c,d,f){d=d.getElementsByTagName("div")[0];
null!=d&&(d.className=b.getCssClassForMarker(f,e.style.shape,a,c),"geSprite geSprite-noarrow"==d.className&&(d.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),d.style.backgroundImage="none",d.style.verticalAlign="top",d.style.marginTop="5px",d.style.fontSize="10px",d.style.filter="none",d.style.color=this.defaultStrokeColor,d.nextSibling.style.marginTop="0px"));return d}e=this.format.getSelectionState();mxUtils.getValue(e.style,p,null);if(d||document.activeElement!=v)a=parseInt(mxUtils.getValue(e.style,
-mxConstants.STYLE_STROKEWIDTH,1)),v.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=x)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),x.value=isNaN(a)?"":a+" pt";g.style.visibility="connector"==e.style.shape||"filledEdge"==e.style.shape?"":"hidden";"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?g.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,null)&&(g.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?
+mxConstants.STYLE_STROKEWIDTH,1)),v.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=w)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),w.value=isNaN(a)?"":a+" pt";g.style.visibility="connector"==e.style.shape||"filledEdge"==e.style.shape?"":"hidden";"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?g.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,null)&&(g.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?
null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?I.style.borderBottom="1px dashed "+this.defaultStrokeColor:I.style.borderBottom="1px dotted "+this.defaultStrokeColor:I.style.borderBottom="1px solid "+this.defaultStrokeColor;z.style.borderBottom=I.style.borderBottom;a=E.getElementsByTagName("div")[0];null!=a&&(c=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null),"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null),"orthogonalEdgeStyle"==c&&"1"==mxUtils.getValue(e.style,
mxConstants.STYLE_CURVED,null)?a.className="geSprite geSprite-curved":a.className="straight"==c||"none"==c||null==c?"geSprite geSprite-straight":"entityRelationEdgeStyle"==c?"geSprite geSprite-entity":"elbowEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":"geSprite-horizontalisometric"):
"geSprite geSprite-orthogonal");a=u.getElementsByTagName("div")[0];null!=a&&(a.className="link"==e.style.shape?"geSprite geSprite-linkedge":"flexArrow"==e.style.shape?"geSprite geSprite-arrow":"arrow"==e.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection");e.edges.length==f.getSelectionCount()?(t.style.display="",n.style.display="none"):(t.style.display="none",n.style.display="");a=h(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(e.style,"startFill",
@@ -3125,10 +3126,10 @@ d.updateCellStyles("sketch",a?"1":null,d.getVerticesAndEdges())},null,function(a
function(){return k},function(a){(k=a)?d.currentEdgeStyle.curved="1":delete d.currentEdgeStyle.curved;d.updateCellStyles("curved",a?"1":null,d.getVerticesAndEdges(!1,!0))},null,function(a){a.style.width="auto"}));g.appendChild(h);a.appendChild(g);var q=["fillColor","strokeColor","fontColor","gradientColor"],t=mxUtils.bind(this,function(a,c){var e=d.getVerticesAndEdges();b.beginUpdate();try{for(var f=0;f<e.length;f++){var g=d.getCellStyle(e[f]);null!=g.labelBackgroundColor&&d.updateCellStyles("labelBackgroundColor",
null!=c?c.background:null,[e[f]]);for(var h=b.isEdge(e[f]),k=b.getStyle(e[f]),l=h?d.currentEdgeStyle:d.currentVertexStyle,m=0;m<a.length;m++)if(null!=g[a[m]]&&g[a[m]]!=mxConstants.NONE||a[m]!=mxConstants.STYLE_FILLCOLOR&&a[m]!=mxConstants.STYLE_STROKECOLOR)k=mxUtils.setStyle(k,a[m],l[a[m]]);b.setStyle(e[f],k)}}finally{b.endUpdate()}}),u=mxUtils.bind(this,function(a,b,c){if(null!=a)for(var d=0;d<b.length;d++)if(null!=a[b[d]]&&a[b[d]]!=mxConstants.NONE||b[d]!=mxConstants.STYLE_FILLCOLOR&&b[d]!=mxConstants.STYLE_STROKECOLOR)a[b[d]]=
c[b[d]]}),v=mxUtils.bind(this,function(a,b,c,e,f){if(null!=a){null!=c&&null!=b.labelBackgroundColor&&(e=null!=e?e.background:null,f=null!=f?f:d,null==e&&(e=f.background),null==e&&(e=f.defaultPageBackgroundColor),b.labelBackgroundColor=e);for(var g in a)if(null==c||null!=b[g]&&b[g]!=mxConstants.NONE||g!=mxConstants.STYLE_FILLCOLOR&&g!=mxConstants.STYLE_STROKECOLOR)b[g]=a[g]}}),p=mxUtils.button(mxResources.get("reset"),mxUtils.bind(this,function(a){a=d.getVerticesAndEdges(!0,!0);if(0<a.length){b.beginUpdate();
-try{d.updateCellStyles("sketch",null,a),d.updateCellStyles("rounded",null,a),d.updateCellStyles("curved",null,d.getVerticesAndEdges(!1,!0))}finally{b.endUpdate()}}d.defaultVertexStyle=mxUtils.clone(c.initialDefaultVertexStyle);d.defaultEdgeStyle=mxUtils.clone(c.initialDefaultEdgeStyle);c.clearDefaultStyle()}));p.setAttribute("title",mxResources.get("reset"));p.style.textOverflow="ellipsis";p.style.maxWidth="90px";n.appendChild(p);var x=mxUtils.bind(this,function(a,c,e,f,g){var h=document.createElement("div");
+try{d.updateCellStyles("sketch",null,a),d.updateCellStyles("rounded",null,a),d.updateCellStyles("curved",null,d.getVerticesAndEdges(!1,!0))}finally{b.endUpdate()}}d.defaultVertexStyle=mxUtils.clone(c.initialDefaultVertexStyle);d.defaultEdgeStyle=mxUtils.clone(c.initialDefaultEdgeStyle);c.clearDefaultStyle()}));p.setAttribute("title",mxResources.get("reset"));p.style.textOverflow="ellipsis";p.style.maxWidth="90px";n.appendChild(p);var w=mxUtils.bind(this,function(a,c,e,f,g){var h=document.createElement("div");
h.style.cssText="position:absolute;display:inline-block;width:100%;height:100%;overflow:hidden;pointer-events:none;";g.appendChild(h);var k=new Graph(h,null,null,d.getStylesheet());k.resetViewOnRootChange=!1;k.foldingEnabled=!1;k.gridEnabled=!1;k.autoScroll=!1;k.setTooltips(!1);k.setConnectable(!1);k.setPanning(!1);k.setEnabled(!1);k.getCellStyle=function(g){var h=mxUtils.clone(Graph.prototype.getCellStyle.apply(this,arguments)),l=d.stylesheet.getDefaultVertexStyle(),m=c;b.isEdge(g)&&(l=d.stylesheet.getDefaultEdgeStyle(),
m=e);u(h,q,l);v(a,h,g,f,k);v(m,h,g,f,k);return h};k.model.beginUpdate();try{var l=k.insertVertex(k.getDefaultParent(),null,"Shape",14,8,70,40,"strokeWidth=2;"),m=k.insertEdge(k.getDefaultParent(),null,"Connector",l,l,"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;endSize=5;strokeWidth=2;");m.geometry.points=[new mxPoint(32,70)];m.geometry.offset=new mxPoint(0,8)}finally{k.model.endUpdate()}}),y=document.createElement("div");y.style.position="relative";a.appendChild(y);null==
-this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var G=mxUtils.bind(this,function(a,g,h,l,m){var n=this.format.cachedStyleEntries[m];null==n&&(n=document.createElement("div"),n.style.cssText="display:inline-block;position:relative;width:96px;height:90px;cursor:pointer;border:1px solid gray;margin:2px;overflow:hidden;",null!=l&&null!=l.background&&(n.style.backgroundColor=l.background),x(a,g,h,l,n),mxEvent.addGestureListeners(n,mxUtils.bind(this,function(a){n.style.opacity=.5}),
+this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var G=mxUtils.bind(this,function(a,g,h,l,m){var n=this.format.cachedStyleEntries[m];null==n&&(n=document.createElement("div"),n.style.cssText="display:inline-block;position:relative;width:96px;height:90px;cursor:pointer;border:1px solid gray;margin:2px;overflow:hidden;",null!=l&&null!=l.background&&(n.style.backgroundColor=l.background),w(a,g,h,l,n),mxEvent.addGestureListeners(n,mxUtils.bind(this,function(a){n.style.opacity=.5}),
null,mxUtils.bind(this,function(m){n.style.opacity=1;d.defaultVertexStyle=mxUtils.clone(c.initialDefaultVertexStyle);d.defaultEdgeStyle=mxUtils.clone(c.initialDefaultEdgeStyle);v(a,d.defaultVertexStyle);v(a,d.defaultEdgeStyle);v(g,d.defaultVertexStyle);v(h,d.defaultEdgeStyle);c.clearDefaultStyle();f?(d.currentEdgeStyle.sketch="1",d.currentVertexStyle.sketch="1"):(d.currentEdgeStyle.sketch="0",d.currentVertexStyle.sketch="0");d.currentVertexStyle.rounded=e?"1":"0";d.currentEdgeStyle.rounded="1";d.currentEdgeStyle.curved=
k?"1":"0";b.beginUpdate();try{t(q,l);var p=new ChangePageSetup(c,null!=l?l.background:null);p.ignoreImage=!0;b.execute(p);b.execute(new ChangeGridColor(c,null!=l&&null!=l.gridColor?l.gridColor:d.view.defaultGridColor))}finally{b.endUpdate()}})),mxEvent.addListener(n,"mouseenter",mxUtils.bind(this,function(c){var e=d.getCellStyle;c=d.background;var f=d.view.gridColor;d.background=null!=l?l.background:null;d.view.gridColor=null!=l&&null!=l.gridColor?l.gridColor:d.view.defaultGridColor;d.getCellStyle=
function(c){var f=mxUtils.clone(e.apply(this,arguments)),k=d.stylesheet.getDefaultVertexStyle(),m=g;b.isEdge(c)&&(k=d.stylesheet.getDefaultEdgeStyle(),m=h);u(f,q,k);v(a,f,c,l);v(m,f,c,l);return f};d.refresh();d.getCellStyle=e;d.background=c;d.view.gridColor=f})),mxEvent.addListener(n,"mouseleave",mxUtils.bind(this,function(a){d.refresh()})),mxClient.IS_IE||mxClient.IS_IE11||(this.format.cachedStyleEntries[m]=n));y.appendChild(n)}),E=Math.ceil(Editor.styles.length/10);this.format.currentStylePage=
@@ -3153,7 +3154,7 @@ DiagramFormatPanel.prototype.addPaperSize=function(a){var c=this.editorUi,d=c.ed
function(){b.set(d.pageFormat)});var f=function(){b.set(d.pageFormat)};c.addListener("pageFormatChanged",f);this.listeners.push({destroy:function(){c.removeListener(f)}});d.getModel().addListener(mxEvent.CHANGE,f);this.listeners.push({destroy:function(){d.getModel().removeListener(f)}});return a};
DiagramFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("editData"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editData").funct()}));c.setAttribute("title",mxResources.get("editData")+" ("+this.editorUi.actions.get("editData").shortcut+")");c.style.width="202px";c.style.marginBottom="2px";a.appendChild(c);mxUtils.br(a);c=mxUtils.button(mxResources.get("clearDefaultStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("clearDefaultStyle").funct()}));
c.setAttribute("title",mxResources.get("clearDefaultStyle")+" ("+this.editorUi.actions.get("clearDefaultStyle").shortcut+")");c.style.width="202px";a.appendChild(c);return a};DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function b(){mxActor.call(this)}function f(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function h(){mxShape.call(this)}function l(){mxShape.call(this)}function m(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}function p(){mxActor.call(this)}function n(){mxCylinder.call(this)}
-function q(){mxCylinder.call(this)}function t(){mxActor.call(this)}function u(){mxActor.call(this)}function v(){mxActor.call(this)}function x(){mxActor.call(this)}function y(){mxActor.call(this)}function G(){mxActor.call(this)}function E(){mxActor.call(this)}function F(a,b){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,F.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
+function q(){mxCylinder.call(this)}function t(){mxActor.call(this)}function u(){mxActor.call(this)}function v(){mxActor.call(this)}function w(){mxActor.call(this)}function y(){mxActor.call(this)}function G(){mxActor.call(this)}function E(){mxActor.call(this)}function F(a,b){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,F.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
this.canvas.moveTo=mxUtils.bind(this,F.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,F.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,F.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,F.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,F.prototype.arcTo)}function A(){mxRectangleShape.call(this)}function I(){mxRectangleShape.call(this)}
function z(){mxActor.call(this)}function H(){mxActor.call(this)}function L(){mxActor.call(this)}function P(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function M(){mxCylinder.call(this)}function Q(){mxShape.call(this)}function Z(){mxShape.call(this)}function aa(){mxEllipse.call(this)}function T(){mxShape.call(this)}function S(){mxShape.call(this)}function R(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function fa(){mxShape.call(this)}function na(){mxShape.call(this)}
function oa(){mxShape.call(this)}function pa(){mxShape.call(this)}function da(){mxCylinder.call(this)}function qa(){mxCylinder.call(this)}function ua(){mxRectangleShape.call(this)}function ra(){mxDoubleEllipse.call(this)}function va(){mxDoubleEllipse.call(this)}function ka(){mxArrowConnector.call(this);this.spacing=0}function ga(){mxArrowConnector.call(this);this.spacing=0}function ha(){mxActor.call(this)}function ca(){mxRectangleShape.call(this)}function ea(){mxActor.call(this)}function ma(){mxActor.call(this)}
@@ -3161,7 +3162,7 @@ function ja(){mxActor.call(this)}function X(){mxActor.call(this)}function sa(){m
function Ga(){mxEllipse.call(this)}function Ha(){mxActor.call(this)}function za(){mxActor.call(this)}function Aa(){mxActor.call(this)}function O(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function xa(){mxConnector.call(this)}function Ra(a,b,c,d,e,f,g,k,h,l){g+=h;var r=d.clone();d.x-=e*(2*g+h);d.y-=f*(2*g+h);e*=g+h;f*=g+h;return function(){a.ellipse(r.x-
e-g,r.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,b,c,d,e){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-b,-c));this.paintForeground(a,
b,c,d,e)};a.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.state){var r=this.flipH,f=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=r,r=f,f=g;a.rotate(-this.getShapeRotation(),r,f,b+d/2,c+e/2);s=this.scale;b=this.bounds.x/s;c=this.bounds.y/s;d=this.bounds.width/s;e=this.bounds.height/s;this.paintTableForeground(a,b,c,d,e)}};a.prototype.paintTableForeground=function(a,b,c,d,e){var r=this.state.view.graph,f=r.getActualStartSize(this.state.cell),
-g=r.model.getChildCells(this.state.cell,!0);if(0<g.length){var w="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),C="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(w)for(w=1;w<g.length;w++){var k=r.getCellGeometry(g[w]);null!=k&&(a.begin(),a.moveTo(b+f.x,c+k.y),a.lineTo(b+d-f.width,c+k.y),a.end(),a.stroke())}if(C)for(d=r.model.getChildCells(g[0],!0),w=1;w<d.length;w++)k=r.getCellGeometry(d[w]),null!=k&&(a.begin(),a.moveTo(b+k.x+f.x,c+f.y),a.lineTo(b+k.x+f.x,c+e-f.height),a.end(),
+g=r.model.getChildCells(this.state.cell,!0);if(0<g.length){var x="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),C="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(x)for(x=1;x<g.length;x++){var k=r.getCellGeometry(g[x]);null!=k&&(a.begin(),a.moveTo(b+f.x,c+k.y),a.lineTo(b+d-f.width,c+k.y),a.end(),a.stroke())}if(C)for(d=r.model.getChildCells(g[0],!0),x=1;x<d.length;x++)k=r.getCellGeometry(d[x]),null!=k&&(a.begin(),a.moveTo(b+k.x+f.x,c+f.y),a.lineTo(b+k.x+f.x,c+e-f.height),a.end(),
a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.darkOpacity=0;c.prototype.darkOpacity2=0;c.prototype.paintVertexShape=function(a,b,c,d,e){var r=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),f=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));
a.translate(b,c);a.begin();a.moveTo(0,0);a.lineTo(d-r,0);a.lineTo(d,r);a.lineTo(d,e);a.lineTo(r,e);a.lineTo(0,e-r);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=f&&(a.setFillAlpha(Math.abs(f)),a.setFillColor(0>f?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-r,0),a.lineTo(d,r),a.lineTo(r,r),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(r,r),a.lineTo(r,e),a.lineTo(0,e-r),
a.close(),a.fill()),a.begin(),a.moveTo(r,e),a.lineTo(r,r),a.lineTo(0,0),a.moveTo(r,r),a.lineTo(d,r),a.end(),a.stroke())};c.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",c);var Pa=Math.tan(mxUtils.toRadians(30)),ya=(.5-Pa)/2;mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(d,mxCylinder);d.prototype.size=
@@ -3175,8 +3176,8 @@ Math.PI/200,r=Math.min(d*Math.tan(r),.5*e);a.translate(b,c);a.begin();a.moveTo(.
"size",this.size))));a.translate(b,c);0==r?(a.rect(0,0,d,e),a.fillAndStroke()):(a.begin(),a.moveTo(0,r),a.arcTo(.5*d,r,0,0,1,.5*d,0),a.arcTo(.5*d,r,0,0,1,d,r),a.lineTo(d,e-r),a.arcTo(.5*d,r,0,0,1,.5*d,e),a.arcTo(.5*d,r,0,0,1,0,e-r),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,r),a.arcTo(.5*d,r,0,0,1,.5*d,2*r),a.arcTo(.5*d,r,0,0,1,0,r),a.stroke())};mxCellRenderer.registerShape("cylinder2",l);mxUtils.extend(m,mxCylinder);m.prototype.size=15;m.prototype.paintVertexShape=function(a,
b,c,d,e){var r=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),f=mxUtils.getValue(this.style,"lid",!0);a.translate(b,c);0==r?(a.rect(0,0,d,e),a.fillAndStroke()):(a.begin(),f?(a.moveTo(0,r),a.arcTo(.5*d,r,0,0,1,.5*d,0),a.arcTo(.5*d,r,0,0,1,d,r)):(a.moveTo(0,0),a.arcTo(.5*d,r,0,0,0,.5*d,r),a.arcTo(.5*d,r,0,0,0,d,0)),a.lineTo(d,e-r),a.arcTo(.5*d,r,0,0,1,.5*d,e),a.arcTo(.5*d,r,0,0,1,0,e-r),a.close(),a.fillAndStroke(),a.setShadow(!1),f&&(a.begin(),a.moveTo(d,r),a.arcTo(.5*
d,r,0,0,1,.5*d,2*r),a.arcTo(.5*d,r,0,0,1,0,r),a.stroke()))};mxCellRenderer.registerShape("cylinder3",m);mxUtils.extend(p,mxActor);p.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d/2,.5*e,d,0);a.quadTo(.5*d,e/2,d,e);a.quadTo(d/2,.5*e,0,e);a.quadTo(.5*d,e/2,0,0);a.end()};mxCellRenderer.registerShape("switch",p);mxUtils.extend(n,mxCylinder);n.prototype.tabWidth=60;n.prototype.tabHeight=20;n.prototype.tabPosition="right";n.prototype.arcSize=.1;n.prototype.paintVertexShape=function(a,
-b,c,d,e){a.translate(b,c);b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var r=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),f=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1),w=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));g||(w*=Math.min(d,e));w=Math.min(w,.5*d,.5*(e-c));b=Math.max(b,
-w);b=Math.min(d-w,b);f||(w=0);a.begin();"left"==r?(a.moveTo(Math.max(w,0),c),a.lineTo(Math.max(w,0),0),a.lineTo(b,0),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d-b,0),a.lineTo(d-Math.max(w,0),0),a.lineTo(d-Math.max(w,0),c));f?(a.moveTo(0,w+c),a.arcTo(w,w,0,0,1,w,c),a.lineTo(d-w,c),a.arcTo(w,w,0,0,1,d,w+c),a.lineTo(d,e-w),a.arcTo(w,w,0,0,1,d-w,e),a.lineTo(w,e),a.arcTo(w,w,0,0,1,0,e-w)):(a.moveTo(0,c),a.lineTo(d,c),a.lineTo(d,e),a.lineTo(0,e));a.close();a.fillAndStroke();a.setShadow(!1);"triangle"==mxUtils.getValue(this.style,
+b,c,d,e){a.translate(b,c);b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var r=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),f=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1),x=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));g||(x*=Math.min(d,e));x=Math.min(x,.5*d,.5*(e-c));b=Math.max(b,
+x);b=Math.min(d-x,b);f||(x=0);a.begin();"left"==r?(a.moveTo(Math.max(x,0),c),a.lineTo(Math.max(x,0),0),a.lineTo(b,0),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d-b,0),a.lineTo(d-Math.max(x,0),0),a.lineTo(d-Math.max(x,0),c));f?(a.moveTo(0,x+c),a.arcTo(x,x,0,0,1,x,c),a.lineTo(d-x,c),a.arcTo(x,x,0,0,1,d,x+c),a.lineTo(d,e-x),a.arcTo(x,x,0,0,1,d-x,e),a.lineTo(x,e),a.arcTo(x,x,0,0,1,0,e-x)):(a.moveTo(0,c),a.lineTo(d,c),a.lineTo(d,e),a.lineTo(0,e));a.close();a.fillAndStroke();a.setShadow(!1);"triangle"==mxUtils.getValue(this.style,
"folderSymbol",null)&&(a.begin(),a.moveTo(d-30,c+20),a.lineTo(d-20,c+10),a.lineTo(d-10,c+20),a.close(),a.stroke())};mxCellRenderer.registerShape("folder",n);n.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var c=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,
"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),r=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(r*=Math.min(a.width,a.height));r=Math.min(r,.5*a.width,.5*(a.height-b));d||(r=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(r,0,Math.min(a.width,a.width-c),Math.min(a.height,a.height-b)):new mxRectangle(Math.min(a.width,a.width-c),0,r,Math.min(a.height,a.height-b))}return new mxRectangle(0,Math.min(a.height,b),0,0)}return null};
mxUtils.extend(q,mxCylinder);q.prototype.arcSize=.1;q.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);var r=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1);b=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));c=mxUtils.getValue(this.style,"umlStateConnection",null);f||(b*=Math.min(d,e));b=Math.min(b,.5*d,.5*e);r||(b=0);r=0;null!=c&&(r=10);a.begin();a.moveTo(r,b);a.arcTo(b,b,0,0,1,r+b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,
@@ -3189,148 +3190,147 @@ d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadT
this.scale,a.height*b),0,0)}return null};m.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(b/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*b*this.scale),0,Math.max(0,.3*b*this.scale))}return null};n.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
"labelInHeader",!1)){var c=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),r=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(r*=Math.min(a.width,a.height));r=Math.min(r,.5*a.width,.5*(a.height-b));d||(r=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(r,0,Math.min(a.width,a.width-
c),Math.min(a.height,a.height-b)):new mxRectangle(Math.min(a.width,a.width-c),0,r,Math.min(a.height,a.height-b))}return new mxRectangle(0,Math.min(a.height,b),0,0)}return null};q.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",
-15);return new mxRectangle(0,Math.min(a.height*this.scale,b*this.scale),0,Math.max(0,b*this.scale))}return null};mxUtils.extend(x,mxActor);x.prototype.size=.2;x.prototype.fixedSize=20;x.prototype.isRoundable=function(){return!0};x.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d-b,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("parallelogram",x);mxUtils.extend(y,mxActor);y.prototype.size=.2;y.prototype.fixedSize=20;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",
+15);return new mxRectangle(0,Math.min(a.height*this.scale,b*this.scale),0,Math.max(0,b*this.scale))}return null};mxUtils.extend(w,mxActor);w.prototype.size=.2;w.prototype.fixedSize=20;w.prototype.isRoundable=function(){return!0};w.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d-b,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("parallelogram",w);mxUtils.extend(y,mxActor);y.prototype.size=.2;y.prototype.fixedSize=20;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",
this.fixedSize)))):d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("trapezoid",y);mxUtils.extend(G,mxActor);G.prototype.size=.5;G.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,e/2),new mxPoint(b,e/2),new mxPoint(b,e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",G);mxUtils.extend(E,mxActor);E.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);
a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",E);F.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};F.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};F.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,
arguments);this.lastX=c;this.lastY=d};F.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};F.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};F.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),r=Math.sqrt(d*d+e*e);if(2>r){this.originalLineTo.apply(this.canvas,
-arguments);this.lastX=a;this.lastY=b;return}var f=Math.round(r/10),g=this.defaultVariation;5>f&&(f=5,g/=3);for(var k=c(a-this.lastX)*d/f,c=c(b-this.lastY)*e/f,d=d/r,e=e/r,r=0;r<f;r++){var w=(Math.random()-.5)*g;this.originalLineTo.call(this.canvas,k*r+this.lastX-w*e,c*r+this.lastY-w*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};F.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;
+arguments);this.lastX=a;this.lastY=b;return}var f=Math.round(r/10),g=this.defaultVariation;5>f&&(f=5,g/=3);for(var k=c(a-this.lastX)*d/f,c=c(b-this.lastY)*e/f,d=d/r,e=e/r,r=0;r<f;r++){var x=(Math.random()-.5)*g;this.originalLineTo.call(this.canvas,k*r+this.lastX-x*e,c*r+this.lastY-x*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};F.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;
this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};mxShape.prototype.defaultJiggle=1.5;var Xa=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(a){Xa.apply(this,arguments);null==a.handJiggle&&(a.handJiggle=this.createHandJiggle(a))};var Ya=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(a){Ya.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),
delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new F(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(a)};mxRhombus.prototype.defaultJiggle=2;var Za=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,
"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&Za.apply(this,arguments)};var bb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle||a.handJiggle.constructor!=F)bb.apply(this,arguments);else{var r=!0;null!=this.style&&(r="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(r||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)r||
null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?r=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,r=Math.min(d*r,e*r)),a.moveTo(b+r,c),a.lineTo(b+d-r,c),a.quadTo(b+d,c,b+d,c+r),a.lineTo(b+d,c+e-r),a.quadTo(b+d,c+e,b+d-r,
-c+e),a.lineTo(b+r,c+e),a.quadTo(b,c+e,b,c+e-r),a.lineTo(b,c+r),a.quadTo(b,c,b+r,c)):(a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b,c)),a.close(),a.end(),a.fillAndStroke()}};var cb=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&cb.apply(this,arguments)};mxUtils.extend(A,mxRectangleShape);A.prototype.size=.1;A.prototype.fixedSize=!1;A.prototype.isHtmlAllowed=function(){return!1};A.prototype.getLabelBounds=
-function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var b=a.width,c=a.height;a=new mxRectangle(a.x,a.y,b,c);var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(b*e,c*e));a.x+=
-Math.round(d);a.width-=Math.round(2*d)}return a};A.prototype.paintForeground=function(a,b,c,d,e){var r=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),f=r?Math.max(0,Math.min(d,f)):d*Math.max(0,Math.min(1,f));this.isRounded&&(r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*r,e*r)));f=Math.round(f);a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.moveTo(b+
-d-f,c);a.lineTo(b+d-f,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",A);mxCellRenderer.registerShape("process2",A);mxUtils.extend(I,mxRectangleShape);I.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};I.prototype.paintForeground=function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",I);mxUtils.extend(z,mxHexagon);z.prototype.size=30;z.prototype.position=
-.5;z.prototype.position2=.5;z.prototype.base=20;z.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};z.prototype.isRoundable=function(){return!0};z.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var r=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position",this.position)))),f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-c),new mxPoint(Math.min(d,r+g),e-c),new mxPoint(f,e),new mxPoint(Math.max(0,r),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",z);mxUtils.extend(H,mxActor);H.prototype.size=.2;H.prototype.fixedSize=
-20;H.prototype.isRoundable=function(){return!0};H.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(0,
-e),new mxPoint(b,e/2)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("step",H);mxUtils.extend(L,mxHexagon);L.prototype.size=.25;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.5*e),new mxPoint(d-b,e),new mxPoint(b,e),new mxPoint(0,.5*e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("hexagon",L);mxUtils.extend(P,mxRectangleShape);P.prototype.isHtmlAllowed=function(){return!1};P.prototype.paintForeground=function(a,b,c,d,e){var r=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+r);a.lineTo(b+d/2,c+e-r);a.moveTo(b+r,c+e/2);a.lineTo(b+d-r,c+e/2);a.end();
-a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",P);var Ua=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){Ua.apply(this,arguments);if(!this.outline&&
-1==this.style["double"]){var r=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=r;c+=r;d-=2*r;e-=2*r;0<d&&0<e&&(a.setShadow(!1),Ua.apply(this,[a,b,c,d,e]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-
-2*b)}return a};N.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var r=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=r;c+=r;d-=2*r;e-=2*r;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var r=0,f;do{f=mxCellRenderer.defaultShapes[this.style["symbol"+r]];if(null!=f){var g=this.style["symbol"+r+"Align"],k=this.style["symbol"+r+"VerticalAlign"],h=this.style["symbol"+
-r+"Width"],w=this.style["symbol"+r+"Height"],C=this.style["symbol"+r+"Spacing"]||0,B=this.style["symbol"+r+"VSpacing"]||C,D=this.style["symbol"+r+"ArcSpacing"];null!=D&&(D*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),C+=D,B+=D);var D=b,l=c,D=g==mxConstants.ALIGN_CENTER?D+(d-h)/2:g==mxConstants.ALIGN_RIGHT?D+(d-h-C):D+C,l=k==mxConstants.ALIGN_MIDDLE?l+(e-w)/2:k==mxConstants.ALIGN_BOTTOM?l+(e-w-B):l+B;a.save();g=new f;g.style=this.style;f.prototype.paintVertexShape.call(g,a,D,l,h,w);a.restore()}r++}while(null!=
-f)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(M,mxCylinder);M.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.registerShape("message",M);mxUtils.extend(Q,mxShape);Q.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/
-2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",Q);mxUtils.extend(Z,mxShape);Z.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};Z.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/
-2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",Z);mxUtils.extend(aa,mxEllipse);aa.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",aa);mxUtils.extend(T,mxShape);T.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,
-0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",T);mxUtils.extend(S,mxShape);S.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};S.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,e/8,d,7*e/8);a.fillAndStroke()};S.prototype.paintForeground=function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,e/4);a.end();
-a.stroke()};mxCellRenderer.registerShape("umlControl",S);mxUtils.extend(R,mxRectangleShape);R.prototype.size=40;R.prototype.isHtmlAllowed=function(){return!1};R.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,b)};R.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),r=mxUtils.getValue(this.style,
-"participant");null==r||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,f):(r=this.state.view.graph.cellRenderer.getShape(r),null!=r&&r!=R&&(r=new r,r.apply(this.state),a.save(),r.paintVertexShape(a,b,c,d,f),a.restore()));f<e&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(b+d/2,c+f),a.lineTo(b+d/2,c+e),a.end(),a.stroke())};R.prototype.paintForeground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,b,c,d,Math.min(e,f))};mxCellRenderer.registerShape("umlLifeline",R);mxUtils.extend(W,mxShape);W.prototype.width=60;W.prototype.height=30;W.prototype.corner=10;W.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};W.prototype.paintBackground=function(a,
-b,c,d,e){var f=this.corner,r=Math.min(d,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(a.setFillColor(k),a.rect(b,c,d,e),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,
-this.gradient,b,c,d,e,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(b,c);a.lineTo(b+r,c);a.lineTo(b+r,c+Math.max(0,g-1.5*f));a.lineTo(b+Math.max(0,r-f),c+g);a.lineTo(b,c+g);a.close();a.fillAndStroke();a.begin();a.moveTo(b+r,c);a.lineTo(b+d,c);a.lineTo(b+d,c+e);a.lineTo(b,c+e);a.lineTo(b,c+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",W);mxPerimeter.CenterPerimeter=function(a,b,c,d){return new mxPoint(a.getCenterX(),a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",
-mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=R.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d)*b.view.scale);b=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;c.x<a.getCenterX()&&(b=-1*(b+1));return new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y+d,c.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,b,c,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,
-arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,b,c,d){d=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;null!=b.style.backboneSize&&(d+=parseFloat(b.style.backboneSize)*b.view.scale/2-1);if("south"==b.style[mxConstants.STYLE_DIRECTION]||"north"==b.style[mxConstants.STYLE_DIRECTION])return c.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,c.y)));
-c.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,c.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,b,c,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(b.style,"size",z.prototype.size))*b.view.scale))),b.style),b,c,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);
-mxPerimeter.ParallelogramPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?x.prototype.fixedSize:x.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=a.width,h=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,
-g),new mxPoint(r+k,g+e),new mxPoint(r+k,g+h),new mxPoint(r,g+h-e),new mxPoint(r,g)]):(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+e,g),new mxPoint(r+k,g),new mxPoint(r+k-e,g+h),new mxPoint(r,g+h),new mxPoint(r+e,g)]);h=a.getCenterX();a=a.getCenterY();a=new mxPoint(h,a);d&&(c.x<r||c.x>r+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,
-b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?y.prototype.fixedSize:y.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=a.width,h=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+e,g),new mxPoint(r+k-e,g),new mxPoint(r+k,g+h),new mxPoint(r,g+h),
-new mxPoint(r+e,g)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(r+k,g),new mxPoint(r+k-e,g+h),new mxPoint(r+e,g+h),new mxPoint(r,g)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g+e),new mxPoint(r+k,g),new mxPoint(r+k,g+h),new mxPoint(r,g+h-e),new mxPoint(r,g+e)]):(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(r+k,
-g+e),new mxPoint(r+k,g+h-e),new mxPoint(r,g+h),new mxPoint(r,g)]);h=a.getCenterX();a=a.getCenterY();a=new mxPoint(h,a);d&&(c.x<r||c.x>r+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?H.prototype.fixedSize:H.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=
-a.width,h=a.height,w=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(r+k-e,g),new mxPoint(r+k,a),new mxPoint(r+k-e,g+h),new mxPoint(r,g+h),new mxPoint(r+e,a),new mxPoint(r,g)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+
-e,g),new mxPoint(r+k,g),new mxPoint(r+k-e,a),new mxPoint(r+k,g+h),new mxPoint(r+e,g+h),new mxPoint(r,a),new mxPoint(r+e,g)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g+e),new mxPoint(w,g),new mxPoint(r+k,g+e),new mxPoint(r+k,g+h),new mxPoint(w,g+h-e),new mxPoint(r,g+h),new mxPoint(r,g+e)]):(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(w,g+e),new mxPoint(r+k,g),new mxPoint(r+k,g+h-e),new mxPoint(w,
-g+h),new mxPoint(r,g+h-e),new mxPoint(r,g)]);w=new mxPoint(w,a);d&&(c.x<r||c.x>r+k?w.y=c.y:w.x=c.x);return mxUtils.getPerimeterPoint(g,w,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?L.prototype.fixedSize:L.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=a.width,h=a.height,w=a.getCenterX();a=a.getCenterY();b=null!=
-b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(w,g),new mxPoint(r+k,g+e),new mxPoint(r+k,g+h-e),new mxPoint(w,g+h),new mxPoint(r,g+h-e),new mxPoint(r,g+e),new mxPoint(w,g)]):(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+e,g),new mxPoint(r+k-e,g),new mxPoint(r+k,a),new mxPoint(r+
-k-e,g+h),new mxPoint(r+e,g+h),new mxPoint(r,a),new mxPoint(r+e,g)]);w=new mxPoint(w,a);d&&(c.x<r||c.x>r+k?w.y=c.y:w.x=c.x);return mxUtils.getPerimeterPoint(g,w,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);
-a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",fa);mxUtils.extend(na,mxShape);na.prototype.size=10;na.prototype.inset=2;na.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-f)/2-g,f+g,d/2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+
-g,f/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",na);mxUtils.extend(oa,mxShape);oa.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",oa);mxUtils.extend(pa,mxShape);pa.prototype.inset=2;pa.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.ellipse(0,
-f,d-2*f,e-2*f);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",pa);mxUtils.extend(da,mxCylinder);da.prototype.jettyWidth=20;da.prototype.jettyHeight=10;da.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,r=Math.min(b,e-b),k=Math.min(r+
-2*b,e-b);f?(a.moveTo(c,r),a.lineTo(g,r),a.lineTo(g,r+b),a.lineTo(c,r+b),a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,r+b),a.lineTo(0,r+b),a.lineTo(0,r),a.lineTo(c,r),a.close());a.end()};mxCellRenderer.registerShape("module",da);mxUtils.extend(qa,mxCylinder);qa.prototype.jettyWidth=32;qa.prototype.jettyHeight=12;qa.prototype.redrawPath=function(a,b,c,d,e,f){var g=
-parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,r=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,r),a.lineTo(g,r),a.lineTo(g,r+b),a.lineTo(c,r+b),a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,r+b),a.lineTo(0,r+b),a.lineTo(0,r),a.lineTo(c,r),a.close());a.end()};
-mxCellRenderer.registerShape("component",qa);mxUtils.extend(ua,mxRectangleShape);ua.prototype.paintForeground=function(a,b,c,d,e){var f=d/2,g=e/2,r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(b+f,c),new mxPoint(b+d,c+g),new mxPoint(b+f,c+e),new mxPoint(b,c+g)],this.isRounded,r,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ua);mxUtils.extend(ra,
-mxDoubleEllipse);ra.prototype.outerStroke=!0;ra.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",ra);mxUtils.extend(va,ra);va.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",va);mxUtils.extend(ka,mxArrowConnector);ka.prototype.defaultWidth=4;ka.prototype.isOpenEnded=function(){return!0};
-ka.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};ka.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",ka);mxUtils.extend(ga,mxArrowConnector);ga.prototype.defaultWidth=10;ga.prototype.defaultArrowWidth=20;ga.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ga.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+
-mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ga.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ga);mxUtils.extend(ha,mxActor);ha.prototype.size=30;ha.prototype.isRoundable=function(){return!0};ha.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",ha);mxUtils.extend(ca,mxRectangleShape);ca.prototype.dx=20;ca.prototype.dy=20;ca.prototype.isHtmlAllowed=function(){return!1};ca.prototype.paintForeground=function(a,b,c,d,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*g,e*g));g=Math.max(f,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(f,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(b,c+f);a.lineTo(b+d,c+f);a.end();a.stroke();a.begin();a.moveTo(b+g,c);a.lineTo(b+g,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ca);mxUtils.extend(ea,mxActor);ea.prototype.dx=20;ea.prototype.dy=20;ea.prototype.redrawPath=
-function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint(b,c),new mxPoint(b,e),new mxPoint(0,e)],this.isRounded,f,!0);a.end()};mxCellRenderer.registerShape("corner",
-ea);mxUtils.extend(ma,mxActor);ma.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.lineTo(0,e);a.end();a.moveTo(d,0);a.lineTo(d,e);a.end();a.moveTo(0,e/2);a.lineTo(d,e/2);a.end()};mxCellRenderer.registerShape("crossbar",ma);mxUtils.extend(ja,mxActor);ja.prototype.dx=20;ja.prototype.dy=20;ja.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));
-parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint((d+b)/2,c),new mxPoint((d+b)/2,e),new mxPoint((d-b)/2,e),new mxPoint((d-b)/2,c),new mxPoint(0,c)],this.isRounded,f,!0);a.end()};mxCellRenderer.registerShape("tee",ja);mxUtils.extend(X,mxActor);X.prototype.arrowWidth=.3;X.prototype.arrowSize=.2;X.prototype.redrawPath=function(a,
-b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",
-X);mxUtils.extend(sa,mxActor);sa.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",X.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",X.prototype.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e/2),new mxPoint(b,0),new mxPoint(b,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,
-e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(b,f),new mxPoint(b,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",sa);mxUtils.extend(K,mxActor);K.prototype.size=.1;K.prototype.fixedSize=20;K.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(b,
-0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,e);a.quadTo(b-2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",K);mxUtils.extend(Y,mxActor);Y.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.registerShape("or",Y);mxUtils.extend(ba,mxActor);ba.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",
-ba);mxUtils.extend(U,mxActor);U.prototype.size=20;U.prototype.isRoundable=function(){return!0};U.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.8*b),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,.8*b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
-U);mxUtils.extend(ia,mxActor);ia.prototype.size=.375;ia.prototype.isRoundable=function(){return!0};ia.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-b),new mxPoint(d/2,e),new mxPoint(0,e-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",
-ia);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/2,c+e);a.lineTo(b+d,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",la);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke();a.begin();a.moveTo(b+d/2,c);
-a.lineTo(b+d/2,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",Ba);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b+.145*d,c+.145*e);a.lineTo(b+.855*d,c+.855*e);a.end();a.stroke();a.begin();a.moveTo(b+.855*d,c+.145*e);a.lineTo(b+.145*d,c+.855*e);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",Ea);mxUtils.extend(Ma,mxRhombus);Ma.prototype.paintVertexShape=
-function(a,b,c,d,e){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",Ma);mxUtils.extend(Na,mxEllipse);Na.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();a.moveTo(b,c);a.lineTo(b+d,c);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke();a.begin();a.moveTo(b,c+e);a.lineTo(b+d,c+e);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",
-Na);mxUtils.extend(Oa,mxEllipse);Oa.prototype.paintVertexShape=function(a,b,c,d,e){var f=c+e-5;a.begin();a.moveTo(b,c);a.lineTo(b,c+e);a.moveTo(b,f);a.lineTo(b+10,f-5);a.moveTo(b,f);a.lineTo(b+10,f+5);a.moveTo(b,f);a.lineTo(b+d,f);a.moveTo(b+d,c);a.lineTo(b+d,c+e);a.moveTo(b+d,f);a.lineTo(b+d-10,f-5);a.moveTo(b+d,f);a.lineTo(b+d-10,f+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",Oa);mxUtils.extend(Fa,mxEllipse);Fa.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);
-if(null!=this.style){var f=a.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1);a.rect(b,c,d,e);a.fill();a.pointerEvents=f;a.setStrokeColor(this.stroke);a.begin();a.moveTo(b,c);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(b+d,c):a.moveTo(b+d,c);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(b+d,c+e):a.moveTo(b+d,c+e);this.outline||"1"==mxUtils.getValue(this.style,
-"bottom","1")?a.lineTo(b,c+e):a.moveTo(b,c+e);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(b,c);a.end();a.stroke()}};mxCellRenderer.registerShape("partialRectangle",Fa);mxUtils.extend(Ga,mxEllipse);Ga.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(b+d/2,c),a.lineTo(b+d/2,c+e)):(a.moveTo(b,c+e/2),a.lineTo(b+d,c+e/2));a.end();a.stroke()};
-mxCellRenderer.registerShape("lineEllipse",Ga);mxUtils.extend(Ha,mxActor);Ha.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);a.moveTo(0,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(0,e);a.close();a.end()};mxCellRenderer.registerShape("delay",Ha);mxUtils.extend(za,mxActor);za.prototype.size=.2;za.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,d);var f=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=(e-f)/2;c=b+f;var g=(d-
-f)/2,f=g+f;a.moveTo(0,b);a.lineTo(g,b);a.lineTo(g,0);a.lineTo(f,0);a.lineTo(f,b);a.lineTo(d,b);a.lineTo(d,c);a.lineTo(f,c);a.lineTo(f,e);a.lineTo(g,e);a.lineTo(g,c);a.lineTo(0,c);a.close();a.end()};mxCellRenderer.registerShape("cross",za);mxUtils.extend(Aa,mxActor);Aa.prototype.size=.25;Aa.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);c=Math.min(d-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,e/2);a.lineTo(c,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/
-2);a.quadTo(d,e,d-b,e);a.lineTo(c,e);a.close();a.end()};mxCellRenderer.registerShape("display",Aa);mxUtils.extend(O,mxActor);O.prototype.cst={RECT2:"mxgraph.basic.rect"};O.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",
-dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",
-type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},
-{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
-type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
-dispName:"Fold"}]}];O.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);this.strictDrawShape(a,0,0,d,e)};O.prototype.strictDrawShape=function(a,b,c,d,e,f){var g=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),h=f&&f.size?f.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),r=f&&f.rectOutline?f.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),l=f&&f.indent?f.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),m=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),n=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),p=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,l)),w=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),C=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),B=f&&f.bottom?f.bottom:
-mxUtils.getValue(this.style,"bottom",!0),q=f&&f.left?f.left:mxUtils.getValue(this.style,"left",!0),D=f&&f.topLeftStyle?f.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=f&&f.topRightStyle?f.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),J=f&&f.bottomRightStyle?f.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),u=f&&f.bottomLeftStyle?f.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),v=f&&f.fillColor?f.fillColor:
-mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var A=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),z=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),x=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),y=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),I=f&&f.opacity?f.opacity:
-mxUtils.getValue(this.style,"opacity","100"),F=Math.max(0,Math.min(50,h));f=O.prototype;a.setDashed(m);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(A);h=Math.min(.5*e,.5*d,h);k||(h=F*Math.min(d,e)/100);h=Math.min(h,.5*Math.min(d,e));k||(l=Math.min(p*Math.min(d,e)/100));l=Math.min(l,.5*Math.min(d,e)-h);(w||C||B||q)&&"frame"!=r&&(a.begin(),w?f.moveNW(a,b,c,d,e,g,D,h,q):a.moveTo(0,0),w&&f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),C&&f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,
-e,g,J,h,B),B&&f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),q&&f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(z),m=k=I,"none"==z&&(k=0),"none"==x&&(m=0),a.setGradient(z,x,0,0,d,e,y,k,m),a.begin(),w?f.moveNWInner(a,b,c,d,e,g,D,h,l,w,q):a.moveTo(l,0),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),q&&B&&f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),B&&C&&f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,
-b,c,d,e,g,t,h,l,w,C),C&&w&&f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),w&&q&&f.paintNWInner(a,b,c,d,e,g,D,h,l),a.fill(),"none"==v&&(a.begin(),f.paintFolds(a,b,c,d,e,g,D,t,J,u,h,w,C,B,q),a.stroke()));w||C||B||!q?w||C||!B||q?!w&&!C&&B&&q?"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,
-b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.lineNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),a.close(),a.fillAndStroke()):w||!C||B||q?!w&&C&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,D,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),"double"==
-r&&(f.moveNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q)),a.stroke(),a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,D,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.lineNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke(),a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,
-g,J,h,B),f.lineSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),a.close(),a.fillAndStroke()):!w&&C&&B&&!q?"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,
-b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.lineSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),a.close(),a.fillAndStroke()):!w&&C&&B&&q?"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),"double"==r&&(f.moveNWInner(a,
-b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.lineNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,
-b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),a.close(),a.fillAndStroke()):!w||C||B||q?w&&!C&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q)),a.stroke()):
-(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.lineNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke()):w&&!C&&B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w)),a.stroke(),a.begin(),
-f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.lineNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),a.close(),a.fillAndStroke(),a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.lineSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),a.close(),a.fillAndStroke()):
-w&&!C&&B&&q?"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,J,
-h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.lineNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),a.close(),a.fillAndStroke()):w&&C&&!B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,
-C),f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.lineSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,
-d,e,g,D,h,l,q,w),a.close(),a.fillAndStroke()):w&&C&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q)),a.stroke()):
-(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.lineSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke()):w&&C&&B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,
-q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,
-h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.lineSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),a.close(),a.fillAndStroke()):w&&C&&B&&q&&("frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,
-w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),a.close(),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,
-e,g,u,h,l,B,q),a.close()),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),a.close(),f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,
-e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke())):"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.lineNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,
-e,g,D,h,l,q,w),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.lineSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),"double"==r&&
-(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.lineSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,D,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,D,h,B),f.paintLeft(a,
-b,c,d,e,g,D,h,w),f.lineNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke());a.begin();f.paintFolds(a,b,c,d,e,g,D,t,J,u,h,w,C,B,q);a.stroke()};O.prototype.moveNW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,0):a.moveTo(0,h)};O.prototype.moveNE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(d,0):a.moveTo(d-h,0)};O.prototype.moveSE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&
-"square"==f||!k?a.moveTo(d,e):a.moveTo(d,e-h)};O.prototype.moveSW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,e):a.moveTo(h,e)};O.prototype.paintNW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,h,0)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(h,0);else a.lineTo(0,0)};O.prototype.paintTop=
-function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(d,0):a.lineTo(d-h,0)};O.prototype.paintNE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d,h)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d,h);else a.lineTo(d,0)};O.prototype.paintRight=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==
-g&&"square"==f||!k?a.lineTo(d,e):a.lineTo(d,e-h)};O.prototype.paintLeft=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,0):a.lineTo(0,h)};O.prototype.paintSE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d-h,e)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-h,e);else a.lineTo(d,
-e)};O.prototype.paintBottom=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,e):a.lineTo(h,e)};O.prototype.paintSW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,0,e-h)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(0,e-h);else a.lineTo(0,e)};O.prototype.paintNWInner=function(a,b,c,
-d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,k,.5*k+h);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,k,k+h);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(k,.5*k+h);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(k+h,k+h),a.lineTo(k,k+h)};O.prototype.paintTopInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(0,k):l&&!m?a.lineTo(k,0):l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&
-"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(h+.5*k,k):a.lineTo(h+k,k):a.lineTo(0,k):a.lineTo(0,0)};O.prototype.paintNEInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,d-h-.5*k,k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,d-h-k,k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(d-h-.5*k,k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(d-h-k,h+k),a.lineTo(d-h-k,k)};O.prototype.paintRightInner=
-function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(d-k,0):l&&!m?a.lineTo(d,k):l?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,h+.5*k):a.lineTo(d-k,h+k):a.lineTo(d-k,0):a.lineTo(d,0)};O.prototype.paintLeftInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(k,e):l&&!m?a.lineTo(0,e-k):l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==
-g&&"snip"==f?a.lineTo(k,e-h-.5*k):a.lineTo(k,e-h-k):a.lineTo(k,e):a.lineTo(0,e)};O.prototype.paintSEInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,d-k,e-h-.5*k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,d-k,e-h-k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(d-k,e-h-.5*k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(d-h-k,e-h-k),a.lineTo(d-k,e-h-k)};O.prototype.paintBottomInner=function(a,b,c,d,
-e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(d,e-k):l&&!m?a.lineTo(d-k,e):"square"==g||"default"==g&&"square"==f||!l?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-h-.5*k,e-k):a.lineTo(d-h-k,e-k):a.lineTo(d,e)};O.prototype.paintSWInner=function(a,b,c,d,e,f,g,h,k,l){if(!l)a.lineTo(k,e);else if("square"==g||"default"==g&&"square"==f)a.lineTo(k,e-k);else if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,h+.5*k,e-k);else if("invRound"==
-g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,h+k,e-k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(h+.5*k,e-k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(k+h,e-h-k),a.lineTo(k+h,e-k)};O.prototype.moveSWInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.moveTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,
-e-h-k):a.moveTo(0,e-k)};O.prototype.lineSWInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,e-h-k):a.lineTo(0,e-k)};O.prototype.moveSEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.moveTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==
-f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,e-h-k):a.moveTo(d-k,e)};O.prototype.lineSEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,e-h-k):a.lineTo(d-
-k,e)};O.prototype.moveNEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f||l?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,h+k):a.moveTo(d,k)};O.prototype.lineNEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f||l?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==
-g&&"snip"==f?a.lineTo(d-k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,h+k):a.lineTo(d,k)};O.prototype.moveNWInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.moveTo(k,0):l&&!m?a.moveTo(0,k):"square"==g||"default"==g&&"square"==f?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,h+k):a.moveTo(0,
-0)};O.prototype.lineNWInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(k,0):l&&!m?a.lineTo(0,k):"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,h+k):a.lineTo(0,0)};O.prototype.paintFolds=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,t){if("fold"==f||"fold"==g||"fold"==h||"fold"==k||"fold"==l)("fold"==g||"default"==
-g&&"fold"==f)&&n&&t&&(a.moveTo(0,m),a.lineTo(m,m),a.lineTo(m,0)),("fold"==h||"default"==h&&"fold"==f)&&n&&p&&(a.moveTo(d-m,0),a.lineTo(d-m,m),a.lineTo(d,m)),("fold"==k||"default"==k&&"fold"==f)&&q&&p&&(a.moveTo(d-m,e),a.lineTo(d-m,e-m),a.lineTo(d,e-m)),("fold"==l||"default"==l&&"fold"==f)&&q&&t&&(a.moveTo(0,e-m),a.lineTo(m,e-m),a.lineTo(m,e))};mxCellRenderer.registerShape(O.prototype.cst.RECT2,O);O.prototype.constraints=null;mxUtils.extend(xa,mxConnector);xa.prototype.origPaintEdgeShape=xa.prototype.paintEdgeShape;
-xa.prototype.paintEdgeShape=function(a,b,c){for(var d=[],e=0;e<b.length;e++)d.push(mxUtils.clone(b[e]));var e=a.state.dashed,f=a.state.fixDash;xa.prototype.origPaintEdgeShape.apply(this,[a,d,c]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(e,f),xa.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",xa);"undefined"!==typeof StyleFormatPanel&&function(){var a=
-StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.getSelectionState(),c=a.apply(this,arguments);"umlFrame"==b.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return c}}();mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var r=e*(g+k+1),m=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-r/2-m/2,d.y-m/2+r/2);a.lineTo(d.x+m/2-3*r/2,d.y-3*m/2-r/2);a.stroke()}});mxMarker.addMarker("box",
-function(a,b,c,d,e,f,g,h,k,l){var r=e*(g+k+1),m=f*(g+k+1),n=d.x+r/2,w=d.y+m/2;d.x-=r;d.y-=m;return function(){a.begin();a.moveTo(n-r/2-m/2,w-m/2+r/2);a.lineTo(n-r/2+m/2,w-m/2-r/2);a.lineTo(n+m/2-3*r/2,w-3*m/2-r/2);a.lineTo(n-m/2-3*r/2,w-3*m/2+r/2);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,l){var r=e*(g+k+1),m=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-r/2-m/2,d.y-m/2+r/2);a.lineTo(d.x+m/2-3*r/2,d.y-3*m/2-r/2);a.moveTo(d.x-r/2+m/2,d.y-
-m/2-r/2);a.lineTo(d.x-m/2-3*r/2,d.y-3*m/2+r/2);a.stroke()}});mxMarker.addMarker("circle",Ra);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var r=d.clone(),m=Ra.apply(this,arguments),n=e*(g+2*k),w=f*(g+2*k);return function(){m.apply(this,arguments);a.begin();a.moveTo(r.x-e*k,r.y-f*k);a.lineTo(r.x-2*n+e*k,r.y-2*w+f*k);a.moveTo(r.x-n-w+f*k,r.y-w+n-e*k);a.lineTo(r.x+w-n-f*k,r.y-w-n+e*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,b,c,d,e,f,g,h,k,l){var r=e*(g+k+1),m=f*(g+
-k+1),n=d.clone();d.x-=r;d.y-=m;return function(){a.begin();a.moveTo(n.x-m,n.y+r);a.quadTo(d.x-m,d.y+r,d.x,d.y);a.quadTo(d.x+m,d.y-r,n.x+m,n.y-r);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,h,k,l){b=e*k*1.118;c=f*k*1.118;e*=g+k;f*=g+k;var r=d.clone();r.x-=b;r.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(r.x,r.y);h?a.lineTo(r.x-e-f/2,r.y-f+e/2):a.lineTo(r.x+f/2-e,r.y-f-e/2);a.lineTo(r.x-e,r.y-f);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",
-function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,h,k,l,r){f*=h+l;g*=h+l;var m=e.clone();return function(){b.begin();b.moveTo(m.x,m.y);k?b.lineTo(m.x-f-g/a,m.y-g+f/a):b.lineTo(m.x+g/a-f,m.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Va=function(a,b,c){return Da(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=
-Math.round(2*b)/a.view.scale-c})},Da=function(a,b,c,d,e){return V(a,b,function(b){var e=a.absolutePoints,f=e.length-1;b=a.view.translate;var g=a.view.scale,h=c?e[0]:e[f],e=c?e[1]:e[f-1],f=e.x-h.x,k=e.y-h.y,l=Math.sqrt(f*f+k*k),h=d.call(this,l,f/l,k/l,h,e);return new mxPoint(h.x/g-b.x,h.y/g-b.y)},function(b,d,f){var g=a.absolutePoints,h=g.length-1;b=a.view.translate;var k=a.view.scale,l=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-l.x,r=g.y-l.y,m=Math.sqrt(h*h+r*r);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,
-m,h/m,r/m,l,g,d,f)})},wa=function(a){return function(b){return[V(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",X.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",X.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,
-Math.min(a,(b.x+b.width-c.x)/b.width))})]}},Sa=function(a){return function(b){return[V(b,["size"],function(b){var c=Math.max(0,Math.min(.5*b.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(b.x,b.y+c)},function(a,b){this.state.style.size=Math.max(0,b.y-a.y)},!0)]}},Qa=function(a,b,c){return function(d){var e=[V(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+
-d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)},!1)];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ia=function(a,b,c,d,e){c=null!=c?c:.5;return function(f){var g=[V(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(.5*b.width,
-d*(c?1:b.width))),b.getCenterY())},function(a,b,d){a=null!=e&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));this.state.style.size=a},!1,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ta(f));return g}},Ta=function(a,b,c){a=null!=a?a:.5;return function(d){var e=[V(d,["size"],function(d){var e=null!=c?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,f=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
-"size",e?c:b)));return new mxPoint(d.x+Math.min(.75*d.width*a,f*(e?.75:.75*d.width)),d.y+d.height/4)},function(b,d){var e=null!=c&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-b.x:Math.max(0,Math.min(a,(d.x-b.x)/b.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ca=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b}},ta=function(a,b){return V(a,
-[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*
-e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},V=function(a,b,c,d,e,f,g){var h=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);h.execute=function(a){for(var c=0;c<b.length;c++)this.copyStyle(b[c]);
-g&&g(a)};h.getPosition=c;h.setPosition=d;h.ignoreGrid=null!=e?e:!0;if(f){var k=h.positionChanged;h.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return h},Ja={link:function(a){return[Va(a,!0,10),Va(a,!1,10)]},flexArrow:function(a){var b=a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Da(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
-!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/
-3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(Da(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,
-c,d,e,f){b=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/
-100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-
+c+e),a.lineTo(b+r,c+e),a.quadTo(b,c+e,b,c+e-r),a.lineTo(b,c+r),a.quadTo(b,c,b+r,c)):(a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b,c)),a.close(),a.end(),a.fillAndStroke()}};mxUtils.extend(A,mxRectangleShape);A.prototype.size=.1;A.prototype.fixedSize=!1;A.prototype.isHtmlAllowed=function(){return!1};A.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||
+this.direction==mxConstants.DIRECTION_WEST)){var b=a.width,c=a.height;a=new mxRectangle(a.x,a.y,b,c);var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(b*e,c*e));a.x+=Math.round(d);a.width-=Math.round(2*d)}return a};A.prototype.paintForeground=function(a,b,c,d,e){var r=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),
+f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),f=r?Math.max(0,Math.min(d,f)):d*Math.max(0,Math.min(1,f));this.isRounded&&(r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*r,e*r)));f=Math.round(f);a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.moveTo(b+d-f,c);a.lineTo(b+d-f,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",A);mxCellRenderer.registerShape("process2",
+A);mxUtils.extend(I,mxRectangleShape);I.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};I.prototype.paintForeground=function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",I);mxUtils.extend(z,mxHexagon);z.prototype.size=30;z.prototype.position=.5;z.prototype.position2=.5;z.prototype.base=20;z.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};z.prototype.isRoundable=
+function(){return!0};z.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var r=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));
+this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-c),new mxPoint(Math.min(d,r+g),e-c),new mxPoint(f,e),new mxPoint(Math.max(0,r),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",z);mxUtils.extend(H,mxActor);H.prototype.size=.2;H.prototype.fixedSize=20;H.prototype.isRoundable=function(){return!0};H.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
+"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(0,e),new mxPoint(b,e/2)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("step",H);mxUtils.extend(L,mxHexagon);L.prototype.size=.25;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};
+L.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.5*e),new mxPoint(d-b,e),new mxPoint(b,e),new mxPoint(0,.5*e)],this.isRounded,c,
+!0)};mxCellRenderer.registerShape("hexagon",L);mxUtils.extend(P,mxRectangleShape);P.prototype.isHtmlAllowed=function(){return!1};P.prototype.paintForeground=function(a,b,c,d,e){var r=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+r);a.lineTo(b+d/2,c+e-r);a.moveTo(b+r,c+e/2);a.lineTo(b+d-r,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",P);var Ua=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==
+this.style["double"]){var b=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){Ua.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var r=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=r;c+=r;d-=2*r;e-=2*r;0<d&&0<e&&(a.setShadow(!1),Ua.apply(this,[a,b,c,d,e]))}};mxUtils.extend(N,
+mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};N.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var r=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
+0);b+=r;c+=r;d-=2*r;e-=2*r;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var r=0,f;do{f=mxCellRenderer.defaultShapes[this.style["symbol"+r]];if(null!=f){var g=this.style["symbol"+r+"Align"],k=this.style["symbol"+r+"VerticalAlign"],h=this.style["symbol"+r+"Width"],x=this.style["symbol"+r+"Height"],C=this.style["symbol"+r+"Spacing"]||0,B=this.style["symbol"+r+"VSpacing"]||C,D=this.style["symbol"+r+"ArcSpacing"];null!=D&&(D*=this.getArcSize(d+this.strokewidth,
+e+this.strokewidth),C+=D,B+=D);var D=b,l=c,D=g==mxConstants.ALIGN_CENTER?D+(d-h)/2:g==mxConstants.ALIGN_RIGHT?D+(d-h-C):D+C,l=k==mxConstants.ALIGN_MIDDLE?l+(e-x)/2:k==mxConstants.ALIGN_BOTTOM?l+(e-x-B):l+B;a.save();g=new f;g.style=this.style;f.prototype.paintVertexShape.call(g,a,D,l,h,x);a.restore()}r++}while(null!=f)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(M,mxCylinder);M.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,
+0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.registerShape("message",M);mxUtils.extend(Q,mxShape);Q.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",
+Q);mxUtils.extend(Z,mxShape);Z.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};Z.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",Z);mxUtils.extend(aa,mxEllipse);aa.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,
+arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",aa);mxUtils.extend(T,mxShape);T.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",T);mxUtils.extend(S,mxShape);S.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};S.prototype.paintBackground=
+function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,e/8,d,7*e/8);a.fillAndStroke()};S.prototype.paintForeground=function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,e/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",S);mxUtils.extend(R,mxRectangleShape);R.prototype.size=40;R.prototype.isHtmlAllowed=function(){return!1};R.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,b)};R.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),r=mxUtils.getValue(this.style,"participant");null==r||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,f):(r=this.state.view.graph.cellRenderer.getShape(r),null!=r&&r!=R&&(r=new r,r.apply(this.state),a.save(),r.paintVertexShape(a,b,c,d,f),a.restore()));f<e&&(a.setDashed("1"==
+mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(b+d/2,c+f),a.lineTo(b+d/2,c+e),a.end(),a.stroke())};R.prototype.paintForeground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,b,c,d,Math.min(e,f))};mxCellRenderer.registerShape("umlLifeline",R);mxUtils.extend(W,mxShape);W.prototype.width=60;W.prototype.height=30;W.prototype.corner=10;W.prototype.getLabelMargins=function(a){return new mxRectangle(0,
+0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};W.prototype.paintBackground=function(a,b,c,d,e){var f=this.corner,r=Math.min(d,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&
+(a.setFillColor(k),a.rect(b,c,d,e),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b,c,d,e,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(b,c);a.lineTo(b+r,c);a.lineTo(b+r,c+Math.max(0,g-1.5*f));a.lineTo(b+Math.max(0,r-f),c+g);a.lineTo(b,c+g);a.close();a.fillAndStroke();a.begin();a.moveTo(b+r,c);a.lineTo(b+d,c);a.lineTo(b+d,c+e);a.lineTo(b,c+e);a.lineTo(b,
+c+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",W);mxPerimeter.CenterPerimeter=function(a,b,c,d){return new mxPoint(a.getCenterX(),a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=R.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d)*b.view.scale);b=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;c.x<a.getCenterX()&&(b=-1*(b+1));return new mxPoint(a.getCenterX()+b,Math.min(a.y+
+a.height,Math.max(a.y+d,c.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,b,c,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,b,c,d){d=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;null!=b.style.backboneSize&&(d+=parseFloat(b.style.backboneSize)*b.view.scale/
+2-1);if("south"==b.style[mxConstants.STYLE_DIRECTION]||"north"==b.style[mxConstants.STYLE_DIRECTION])return c.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,c.y)));c.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,c.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,b,c,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,
+new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(b.style,"size",z.prototype.size))*b.view.scale))),b.style),b,c,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?w.prototype.fixedSize:w.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=a.width,h=a.height;b=null!=b?mxUtils.getValue(b.style,
+mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(r+k,g+e),new mxPoint(r+k,g+h),new mxPoint(r,g+h-e),new mxPoint(r,g)]):(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+e,g),new mxPoint(r+k,g),new mxPoint(r+k-e,g+h),new mxPoint(r,g+h),new mxPoint(r+e,g)]);h=a.getCenterX();a=a.getCenterY();
+a=new mxPoint(h,a);d&&(c.x<r||c.x>r+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?y.prototype.fixedSize:y.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=a.width,h=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
+mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+e,g),new mxPoint(r+k-e,g),new mxPoint(r+k,g+h),new mxPoint(r,g+h),new mxPoint(r+e,g)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(r+k,g),new mxPoint(r+k-e,g+h),new mxPoint(r+e,g+h),new mxPoint(r,g)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),
+g=[new mxPoint(r,g+e),new mxPoint(r+k,g),new mxPoint(r+k,g+h),new mxPoint(r,g+h-e),new mxPoint(r,g+e)]):(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(r+k,g+e),new mxPoint(r+k,g+h-e),new mxPoint(r,g+h),new mxPoint(r,g)]);h=a.getCenterX();a=a.getCenterY();a=new mxPoint(h,a);d&&(c.x<r||c.x>r+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,
+b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?H.prototype.fixedSize:H.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=a.width,h=a.height,x=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(r+k-e,g),new mxPoint(r+
+k,a),new mxPoint(r+k-e,g+h),new mxPoint(r,g+h),new mxPoint(r+e,a),new mxPoint(r,g)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+e,g),new mxPoint(r+k,g),new mxPoint(r+k-e,a),new mxPoint(r+k,g+h),new mxPoint(r+e,g+h),new mxPoint(r,a),new mxPoint(r+e,g)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g+e),new mxPoint(x,g),new mxPoint(r+k,g+e),new mxPoint(r+k,g+h),new mxPoint(x,
+g+h-e),new mxPoint(r,g+h),new mxPoint(r,g+e)]):(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(x,g+e),new mxPoint(r+k,g),new mxPoint(r+k,g+h-e),new mxPoint(x,g+h),new mxPoint(r,g+h-e),new mxPoint(r,g)]);x=new mxPoint(x,a);d&&(c.x<r||c.x>r+k?x.y=c.y:x.x=c.x);return mxUtils.getPerimeterPoint(g,x,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize",
+"0"),f=e?L.prototype.fixedSize:L.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=a.width,h=a.height,x=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(x,g),new mxPoint(r+k,g+e),new mxPoint(r+k,g+h-e),new mxPoint(x,
+g+h),new mxPoint(r,g+h-e),new mxPoint(r,g+e),new mxPoint(x,g)]):(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+e,g),new mxPoint(r+k-e,g),new mxPoint(r+k,a),new mxPoint(r+k-e,g+h),new mxPoint(r+e,g+h),new mxPoint(r,a),new mxPoint(r+e,g)]);x=new mxPoint(x,a);d&&(c.x<r||c.x>r+k?x.y=c.y:x.x=c.x);return mxUtils.getPerimeterPoint(g,x,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.paintBackground=
+function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",fa);mxUtils.extend(na,mxShape);na.prototype.size=10;na.prototype.inset=2;na.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;
+a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-f)/2-g,f+g,d/2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",na);mxUtils.extend(oa,mxShape);oa.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",oa);mxUtils.extend(pa,mxShape);
+pa.prototype.inset=2;pa.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.ellipse(0,f,d-2*f,e-2*f);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",pa);mxUtils.extend(da,mxCylinder);da.prototype.jettyWidth=20;da.prototype.jettyHeight=10;da.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,
+"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,r=Math.min(b,e-b),k=Math.min(r+2*b,e-b);f?(a.moveTo(c,r),a.lineTo(g,r),a.lineTo(g,r+b),a.lineTo(c,r+b),a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,r+b),a.lineTo(0,r+b),a.lineTo(0,r),a.lineTo(c,r),a.close());a.end()};mxCellRenderer.registerShape("module",
+da);mxUtils.extend(qa,mxCylinder);qa.prototype.jettyWidth=32;qa.prototype.jettyHeight=12;qa.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,r=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,r),a.lineTo(g,r),a.lineTo(g,r+b),a.lineTo(c,r+b),a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,
+e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,r+b),a.lineTo(0,r+b),a.lineTo(0,r),a.lineTo(c,r),a.close());a.end()};mxCellRenderer.registerShape("component",qa);mxUtils.extend(ua,mxRectangleShape);ua.prototype.paintForeground=function(a,b,c,d,e){var f=d/2,g=e/2,r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(b+f,c),new mxPoint(b+d,c+g),new mxPoint(b+f,c+e),new mxPoint(b,c+g)],this.isRounded,r,!0);
+a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ua);mxUtils.extend(ra,mxDoubleEllipse);ra.prototype.outerStroke=!0;ra.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",ra);mxUtils.extend(va,ra);va.prototype.outerStroke=!1;
+mxCellRenderer.registerShape("startState",va);mxUtils.extend(ka,mxArrowConnector);ka.prototype.defaultWidth=4;ka.prototype.isOpenEnded=function(){return!0};ka.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};ka.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",ka);mxUtils.extend(ga,mxArrowConnector);ga.prototype.defaultWidth=10;ga.prototype.defaultArrowWidth=20;ga.prototype.getStartArrowWidth=
+function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ga.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ga.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ga);mxUtils.extend(ha,mxActor);ha.prototype.size=30;ha.prototype.isRoundable=function(){return!0};
+ha.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",ha);mxUtils.extend(ca,mxRectangleShape);ca.prototype.dx=20;ca.prototype.dy=20;ca.prototype.isHtmlAllowed=function(){return!1};ca.prototype.paintForeground=
+function(a,b,c,d,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*g,e*g));g=Math.max(f,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(f,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(b,c+f);a.lineTo(b+d,c+f);a.end();a.stroke();a.begin();a.moveTo(b+g,c);a.lineTo(b+
+g,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ca);mxUtils.extend(ea,mxActor);ea.prototype.dx=20;ea.prototype.dy=20;ea.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
+[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint(b,c),new mxPoint(b,e),new mxPoint(0,e)],this.isRounded,f,!0);a.end()};mxCellRenderer.registerShape("corner",ea);mxUtils.extend(ma,mxActor);ma.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.lineTo(0,e);a.end();a.moveTo(d,0);a.lineTo(d,e);a.end();a.moveTo(0,e/2);a.lineTo(d,e/2);a.end()};mxCellRenderer.registerShape("crossbar",ma);mxUtils.extend(ja,mxActor);ja.prototype.dx=20;ja.prototype.dy=20;ja.prototype.redrawPath=function(a,
+b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint((d+b)/2,c),new mxPoint((d+b)/2,e),new mxPoint((d-b)/2,e),new mxPoint((d-b)/2,c),new mxPoint(0,c)],this.isRounded,
+f,!0);a.end()};mxCellRenderer.registerShape("tee",ja);mxUtils.extend(X,mxActor);X.prototype.arrowWidth=.3;X.prototype.arrowSize=.2;X.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,
+c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",X);mxUtils.extend(sa,mxActor);sa.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",X.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",X.prototype.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e/2),new mxPoint(b,0),new mxPoint(b,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(b,f),new mxPoint(b,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",sa);mxUtils.extend(K,mxActor);K.prototype.size=.1;K.prototype.fixedSize=20;K.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,
+Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(b,0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,e);a.quadTo(b-2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",K);mxUtils.extend(Y,mxActor);Y.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.registerShape("or",Y);mxUtils.extend(ba,
+mxActor);ba.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",ba);mxUtils.extend(U,mxActor);U.prototype.size=20;U.prototype.isRoundable=function(){return!0};U.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
+[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.8*b),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,.8*b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("loopLimit",U);mxUtils.extend(ia,mxActor);ia.prototype.size=.375;ia.prototype.isRoundable=function(){return!0};ia.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
+[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-b),new mxPoint(d/2,e),new mxPoint(0,e-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",ia);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/2,c+e);a.lineTo(b+d,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",la);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,b,c,d,
+e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke();a.begin();a.moveTo(b+d/2,c);a.lineTo(b+d/2,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",Ba);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b+.145*d,c+.145*e);a.lineTo(b+.855*d,c+.855*e);a.end();a.stroke();a.begin();
+a.moveTo(b+.855*d,c+.145*e);a.lineTo(b+.145*d,c+.855*e);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",Ea);mxUtils.extend(Ma,mxRhombus);Ma.prototype.paintVertexShape=function(a,b,c,d,e){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",Ma);mxUtils.extend(Na,mxEllipse);Na.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();a.moveTo(b,c);a.lineTo(b+
+d,c);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke();a.begin();a.moveTo(b,c+e);a.lineTo(b+d,c+e);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",Na);mxUtils.extend(Oa,mxEllipse);Oa.prototype.paintVertexShape=function(a,b,c,d,e){var f=c+e-5;a.begin();a.moveTo(b,c);a.lineTo(b,c+e);a.moveTo(b,f);a.lineTo(b+10,f-5);a.moveTo(b,f);a.lineTo(b+10,f+5);a.moveTo(b,f);a.lineTo(b+d,f);a.moveTo(b+d,c);a.lineTo(b+d,c+e);a.moveTo(b+d,f);a.lineTo(b+d-10,f-5);a.moveTo(b+
+d,f);a.lineTo(b+d-10,f+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",Oa);mxUtils.extend(Fa,mxEllipse);Fa.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);if(null!=this.style){var f=a.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1);a.rect(b,c,d,e);a.fill();a.pointerEvents=f;a.setStrokeColor(this.stroke);a.begin();a.moveTo(b,c);this.outline||"1"==
+mxUtils.getValue(this.style,"top","1")?a.lineTo(b+d,c):a.moveTo(b+d,c);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(b+d,c+e):a.moveTo(b+d,c+e);this.outline||"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(b,c+e):a.moveTo(b,c+e);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(b,c);a.end();a.stroke()}};mxCellRenderer.registerShape("partialRectangle",Fa);mxUtils.extend(Ga,mxEllipse);Ga.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,
+arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(b+d/2,c),a.lineTo(b+d/2,c+e)):(a.moveTo(b,c+e/2),a.lineTo(b+d,c+e/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",Ga);mxUtils.extend(Ha,mxActor);Ha.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);a.moveTo(0,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(0,e);a.close();a.end()};mxCellRenderer.registerShape("delay",Ha);mxUtils.extend(za,mxActor);za.prototype.size=
+.2;za.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,d);var f=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=(e-f)/2;c=b+f;var g=(d-f)/2,f=g+f;a.moveTo(0,b);a.lineTo(g,b);a.lineTo(g,0);a.lineTo(f,0);a.lineTo(f,b);a.lineTo(d,b);a.lineTo(d,c);a.lineTo(f,c);a.lineTo(f,e);a.lineTo(g,e);a.lineTo(g,c);a.lineTo(0,c);a.close();a.end()};mxCellRenderer.registerShape("cross",za);mxUtils.extend(Aa,mxActor);Aa.prototype.size=.25;Aa.prototype.redrawPath=function(a,
+b,c,d,e){b=Math.min(d,e/2);c=Math.min(d-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,e/2);a.lineTo(c,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(c,e);a.close();a.end()};mxCellRenderer.registerShape("display",Aa);mxUtils.extend(O,mxActor);O.prototype.cst={RECT2:"mxgraph.basic.rect"};O.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},
+{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",
+type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},
+{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",
+dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",
+dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]}];O.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);this.strictDrawShape(a,0,0,d,e)};O.prototype.strictDrawShape=function(a,b,c,d,e,f){var g=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",
+this.absoluteCornerSize),h=f&&f.size?f.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),r=f&&f.rectOutline?f.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),l=f&&f.indent?f.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),m=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),n=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),p=f&&f.relIndent?f.relIndent:
+Math.max(0,Math.min(50,l)),x=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),C=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),B=f&&f.bottom?f.bottom:mxUtils.getValue(this.style,"bottom",!0),q=f&&f.left?f.left:mxUtils.getValue(this.style,"left",!0),D=f&&f.topLeftStyle?f.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=f&&f.topRightStyle?f.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),J=f&&f.bottomRightStyle?f.bottomRightStyle:mxUtils.getValue(this.style,
+"bottomRightStyle","default"),u=f&&f.bottomLeftStyle?f.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),v=f&&f.fillColor?f.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var A=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),z=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),w=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,
+"gradientColor2","none"),y=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),I=f&&f.opacity?f.opacity:mxUtils.getValue(this.style,"opacity","100"),F=Math.max(0,Math.min(50,h));f=O.prototype;a.setDashed(m);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(A);h=Math.min(.5*e,.5*d,h);k||(h=F*Math.min(d,e)/100);h=Math.min(h,.5*Math.min(d,e));k||(l=Math.min(p*Math.min(d,e)/100));l=Math.min(l,.5*Math.min(d,e)-h);(x||C||B||q)&&"frame"!=r&&(a.begin(),x?f.moveNW(a,
+b,c,d,e,g,D,h,q):a.moveTo(0,0),x&&f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),C&&f.paintNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),B&&f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),q&&f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(z),m=k=I,"none"==z&&(k=0),"none"==w&&(m=0),a.setGradient(z,w,0,0,d,e,y,k,m),a.begin(),x?f.moveNWInner(a,b,c,d,e,g,D,h,l,x,q):a.moveTo(l,0),f.paintLeftInner(a,b,c,d,e,
+g,u,h,l,B,q),q&&B&&f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),B&&C&&f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C),C&&x&&f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x),x&&q&&f.paintNWInner(a,b,c,d,e,g,D,h,l),a.fill(),"none"==v&&(a.begin(),f.paintFolds(a,b,c,d,e,g,D,t,J,u,h,x,C,B,q),a.stroke()));x||C||B||!q?x||C||!B||q?!x&&!C&&B&&q?"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,
+q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,D,h,l,x,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),f.lineNWInner(a,b,c,d,e,g,D,h,l,x,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,
+b,c,d,e,g,J,h,l,C,B),a.close(),a.fillAndStroke()):x||!C||B||q?!x&&C&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,D,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,D,h,l,x,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q)),a.stroke(),a.begin(),f.moveNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,D,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),
+f.lineNWInner(a,b,c,d,e,g,D,h,l,x,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke(),a.begin(),f.moveNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),f.lineSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C),a.close(),a.fillAndStroke()):!x&&C&&B&&!q?"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,
+b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.lineSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C),a.close(),a.fillAndStroke()):!x&&C&&B&&q?"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,
+c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,D,h,l,x,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,
+b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),f.lineNWInner(a,b,c,d,e,g,D,h,l,x,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C),a.close(),a.fillAndStroke()):!x||C||B||q?x&&!C&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),
+"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.lineNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke()):x&&!C&&B&&!q?"frame"!=
+r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x)),a.stroke(),a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.lineNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x),a.close(),a.fillAndStroke(),
+a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.lineSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),a.close(),a.fillAndStroke()):x&&!C&&B&&q?"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x),f.paintNWInner(a,b,c,d,
+e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.lineNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,
+d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),a.close(),a.fillAndStroke()):x&&C&&!B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,
+d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),f.lineSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x),a.close(),a.fillAndStroke()):x&&C&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,
+b,c,d,e,g,t,h,l,x,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),f.lineSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,
+c,d,e,g,D,h,l,q,x),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke()):x&&C&&B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C),
+f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.lineSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x),
+a.close(),a.fillAndStroke()):x&&C&&B&&q&&("frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),a.close(),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,
+l),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close()),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),a.close(),
+f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke())):"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,
+b,c,d,e,g,D,h,l,q,x)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.lineNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,x),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,x,C)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,x),f.paintRight(a,b,c,d,e,g,J,h,B),f.lineSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,
+b,c,d,e,g,t,h,l,x,C),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.lineSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,D,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),"double"==
+r&&(f.moveNWInner(a,b,c,d,e,g,D,h,l,x,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,D,h,B),f.paintLeft(a,b,c,d,e,g,D,h,x),f.lineNWInner(a,b,c,d,e,g,D,h,l,x,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke());a.begin();f.paintFolds(a,b,c,d,e,g,D,t,J,u,h,x,C,B,q);a.stroke()};O.prototype.moveNW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,0):a.moveTo(0,h)};O.prototype.moveNE=function(a,b,c,d,e,f,g,h,k){"square"==
+g||"default"==g&&"square"==f||!k?a.moveTo(d,0):a.moveTo(d-h,0)};O.prototype.moveSE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(d,e):a.moveTo(d,e-h)};O.prototype.moveSW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,e):a.moveTo(h,e)};O.prototype.paintNW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,
+h,0,0,b,h,0)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(h,0);else a.lineTo(0,0)};O.prototype.paintTop=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(d,0):a.lineTo(d-h,0)};O.prototype.paintNE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d,h)}else("snip"==g||"default"==g&&"snip"==
+f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d,h);else a.lineTo(d,0)};O.prototype.paintRight=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(d,e):a.lineTo(d,e-h)};O.prototype.paintLeft=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,0):a.lineTo(0,h)};O.prototype.paintSE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==
+f)b=1;a.arcTo(h,h,0,0,b,d-h,e)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-h,e);else a.lineTo(d,e)};O.prototype.paintBottom=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,e):a.lineTo(h,e)};O.prototype.paintSW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,0,e-h)}else("snip"==
+g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(0,e-h);else a.lineTo(0,e)};O.prototype.paintNWInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,k,.5*k+h);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,k,k+h);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(k,.5*k+h);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(k+h,k+h),a.lineTo(k,k+h)};O.prototype.paintTopInner=function(a,b,c,d,e,
+f,g,h,k,l,m){l||m?!l&&m?a.lineTo(0,k):l&&!m?a.lineTo(k,0):l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(h+.5*k,k):a.lineTo(h+k,k):a.lineTo(0,k):a.lineTo(0,0)};O.prototype.paintNEInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,d-h-.5*k,k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,d-h-k,k);else if("snip"==g||"default"==
+g&&"snip"==f)a.lineTo(d-h-.5*k,k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(d-h-k,h+k),a.lineTo(d-h-k,k)};O.prototype.paintRightInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(d-k,0):l&&!m?a.lineTo(d,k):l?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,h+.5*k):a.lineTo(d-k,h+k):a.lineTo(d-k,0):a.lineTo(d,0)};O.prototype.paintLeftInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(k,
+e):l&&!m?a.lineTo(0,e-k):l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,e-h-.5*k):a.lineTo(k,e-h-k):a.lineTo(k,e):a.lineTo(0,e)};O.prototype.paintSEInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,d-k,e-h-.5*k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,d-k,e-h-k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(d-
+k,e-h-.5*k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(d-h-k,e-h-k),a.lineTo(d-k,e-h-k)};O.prototype.paintBottomInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(d,e-k):l&&!m?a.lineTo(d-k,e):"square"==g||"default"==g&&"square"==f||!l?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-h-.5*k,e-k):a.lineTo(d-h-k,e-k):a.lineTo(d,e)};O.prototype.paintSWInner=function(a,b,c,d,e,f,g,h,k,l){if(!l)a.lineTo(k,e);else if("square"==g||"default"==
+g&&"square"==f)a.lineTo(k,e-k);else if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,h+.5*k,e-k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,h+k,e-k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(h+.5*k,e-k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(k+h,e-h-k),a.lineTo(k+h,e-k)};O.prototype.moveSWInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.moveTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||
+"snip"==g||"default"==g&&"snip"==f?a.moveTo(k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,e-h-k):a.moveTo(0,e-k)};O.prototype.lineSWInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,e-h-k):a.lineTo(0,e-k)};O.prototype.moveSEInner=
+function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.moveTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,e-h-k):a.moveTo(d-k,e)};O.prototype.lineSEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-
+k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,e-h-k):a.lineTo(d-k,e)};O.prototype.moveNEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f||l?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,h+k):a.moveTo(d,k)};O.prototype.lineNEInner=function(a,b,c,d,e,
+f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f||l?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,h+k):a.lineTo(d,k)};O.prototype.moveNWInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.moveTo(k,0):l&&!m?a.moveTo(0,k):"square"==g||"default"==g&&"square"==f?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==
+g&&"snip"==f?a.moveTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,h+k):a.moveTo(0,0)};O.prototype.lineNWInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(k,0):l&&!m?a.lineTo(0,k):"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,h+k):a.lineTo(0,
+0)};O.prototype.paintFolds=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,t){if("fold"==f||"fold"==g||"fold"==h||"fold"==k||"fold"==l)("fold"==g||"default"==g&&"fold"==f)&&n&&t&&(a.moveTo(0,m),a.lineTo(m,m),a.lineTo(m,0)),("fold"==h||"default"==h&&"fold"==f)&&n&&p&&(a.moveTo(d-m,0),a.lineTo(d-m,m),a.lineTo(d,m)),("fold"==k||"default"==k&&"fold"==f)&&q&&p&&(a.moveTo(d-m,e),a.lineTo(d-m,e-m),a.lineTo(d,e-m)),("fold"==l||"default"==l&&"fold"==f)&&q&&t&&(a.moveTo(0,e-m),a.lineTo(m,e-m),a.lineTo(m,e))};mxCellRenderer.registerShape(O.prototype.cst.RECT2,
+O);O.prototype.constraints=null;mxUtils.extend(xa,mxConnector);xa.prototype.origPaintEdgeShape=xa.prototype.paintEdgeShape;xa.prototype.paintEdgeShape=function(a,b,c){for(var d=[],e=0;e<b.length;e++)d.push(mxUtils.clone(b[e]));var e=a.state.dashed,f=a.state.fixDash;xa.prototype.origPaintEdgeShape.apply(this,[a,d,c]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(e,f),xa.prototype.origPaintEdgeShape.apply(this,
+[a,b,c])))};mxCellRenderer.registerShape("filledEdge",xa);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.getSelectionState(),c=a.apply(this,arguments);"umlFrame"==b.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return c}}();mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var r=e*(g+k+1),m=f*(g+k+1);return function(){a.begin();
+a.moveTo(d.x-r/2-m/2,d.y-m/2+r/2);a.lineTo(d.x+m/2-3*r/2,d.y-3*m/2-r/2);a.stroke()}});mxMarker.addMarker("box",function(a,b,c,d,e,f,g,h,k,l){var r=e*(g+k+1),m=f*(g+k+1),n=d.x+r/2,x=d.y+m/2;d.x-=r;d.y-=m;return function(){a.begin();a.moveTo(n-r/2-m/2,x-m/2+r/2);a.lineTo(n-r/2+m/2,x-m/2-r/2);a.lineTo(n+m/2-3*r/2,x-3*m/2-r/2);a.lineTo(n-m/2-3*r/2,x-3*m/2+r/2);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,l){var r=e*(g+k+1),m=f*(g+k+1);return function(){a.begin();
+a.moveTo(d.x-r/2-m/2,d.y-m/2+r/2);a.lineTo(d.x+m/2-3*r/2,d.y-3*m/2-r/2);a.moveTo(d.x-r/2+m/2,d.y-m/2-r/2);a.lineTo(d.x-m/2-3*r/2,d.y-3*m/2+r/2);a.stroke()}});mxMarker.addMarker("circle",Ra);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var r=d.clone(),m=Ra.apply(this,arguments),n=e*(g+2*k),x=f*(g+2*k);return function(){m.apply(this,arguments);a.begin();a.moveTo(r.x-e*k,r.y-f*k);a.lineTo(r.x-2*n+e*k,r.y-2*x+f*k);a.moveTo(r.x-n-x+f*k,r.y-x+n-e*k);a.lineTo(r.x+x-n-f*k,r.y-x-n+e*k);a.stroke()}});
+mxMarker.addMarker("halfCircle",function(a,b,c,d,e,f,g,h,k,l){var r=e*(g+k+1),m=f*(g+k+1),n=d.clone();d.x-=r;d.y-=m;return function(){a.begin();a.moveTo(n.x-m,n.y+r);a.quadTo(d.x-m,d.y+r,d.x,d.y);a.quadTo(d.x+m,d.y-r,n.x+m,n.y-r);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,h,k,l){b=e*k*1.118;c=f*k*1.118;e*=g+k;f*=g+k;var r=d.clone();r.x-=b;r.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(r.x,r.y);h?a.lineTo(r.x-e-f/2,r.y-f+e/2):a.lineTo(r.x+f/2-e,r.y-f-e/2);
+a.lineTo(r.x-e,r.y-f);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,h,k,l,r){f*=h+l;g*=h+l;var m=e.clone();return function(){b.begin();b.moveTo(m.x,m.y);k?b.lineTo(m.x-f-g/a,m.y-g+f/a):b.lineTo(m.x+g/a-f,m.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Va=function(a,b,c){return Da(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+
+e*b/4-d*g/2)},function(b,d,e,f,g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*b)/a.view.scale-c})},Da=function(a,b,c,d,e){return V(a,b,function(b){var e=a.absolutePoints,f=e.length-1;b=a.view.translate;var g=a.view.scale,h=c?e[0]:e[f],e=c?e[1]:e[f-1],f=e.x-h.x,k=e.y-h.y,l=Math.sqrt(f*f+k*k),h=d.call(this,l,f/l,k/l,h,e);return new mxPoint(h.x/g-b.x,h.y/g-b.y)},function(b,d,f){var g=a.absolutePoints,h=g.length-1;b=a.view.translate;var k=a.view.scale,l=c?g[0]:
+g[h],g=c?g[1]:g[h-1],h=g.x-l.x,r=g.y-l.y,m=Math.sqrt(h*h+r*r);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,m,h/m,r/m,l,g,d,f)})},wa=function(a){return function(b){return[V(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",X.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",X.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=
+Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},Sa=function(a){return function(b){return[V(b,["size"],function(b){var c=Math.max(0,Math.min(.5*b.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(b.x,b.y+c)},function(a,b){this.state.style.size=Math.max(0,b.y-a.y)},!0)]}},Qa=function(a,b,c){return function(d){var e=[V(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,
+Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)},!1)];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ia=function(a,b,c,d,e){c=null!=c?c:.5;return function(f){var g=[V(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,
+"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(.5*b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){a=null!=e&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));this.state.style.size=a},!1,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ta(f));return g}},Ta=function(a,b,c){a=null!=a?a:.5;return function(d){var e=[V(d,["size"],function(d){var e=null!=c?"0"!=mxUtils.getValue(this.state.style,"fixedSize",
+"0"):null,f=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,"size",e?c:b)));return new mxPoint(d.x+Math.min(.75*d.width*a,f*(e?.75:.75*d.width)),d.y+d.height/4)},function(b,d){var e=null!=c&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-b.x:Math.max(0,Math.min(a,(d.x-b.x)/b.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ca=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,
+!1)&&b.push(ta(a));return b}},ta=function(a,b){return V(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/
+2,c.height/2),Math.min(c.width,c.height)*e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},V=function(a,b,c,d,e,f,g){var h=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);h.execute=function(a){for(var c=
+0;c<b.length;c++)this.copyStyle(b[c]);g&&g(a)};h.getPosition=c;h.setPosition=d;h.ignoreGrid=null!=e?e:!0;if(f){var k=h.positionChanged;h.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return h},Ja={link:function(a){return[Va(a,!0,10),Va(a,!1,10)]},flexArrow:function(a){var b=a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Da(a,["width",mxConstants.STYLE_STARTSIZE,
+mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*
+(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(Da(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
+!0,function(b,c,d,e,f){b=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/
+3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-
parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Da(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*
a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<
b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),c.push(Da(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=
@@ -3357,7 +3357,7 @@ b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.widt
["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",h.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(b),.5*a.height))},function(a,b){this.state.style.isoAngle=Math.max(0,50*(b.y-a.y)/a.height)},!0)]},cylinder2:Sa(l.prototype.size),cylinder3:Sa(m.prototype.size),offPageConnector:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ia.prototype.size))));
return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))},!1)]},"mxgraph.basic.rect":function(a){var b=[Graph.createHandle(a,["size"],function(a){var b=Math.max(0,Math.min(a.width/2,a.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+b,a.y+b)},function(a,b){this.state.style.size=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,b.x-a.x)))/100})];a=Graph.createHandle(a,
["indent"],function(a){var b=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+b*a.height/200)},function(a,b){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(b.y-a.y)/a.height)))/100});b.push(a);return b},step:Ia(H.prototype.size,!0,null,!0,H.prototype.fixedSize),hexagon:Ia(L.prototype.size,!0,.5,!0,L.prototype.fixedSize),curlyBracket:Ia(G.prototype.size,!1),display:Ia(Aa.prototype.size,!1),cube:Qa(1,
-c.prototype.size,!1),card:Qa(.5,t.prototype.size,!0),loopLimit:Qa(.5,U.prototype.size,!0),trapezoid:Ta(.5,y.prototype.size,y.prototype.fixedSize),parallelogram:Ta(1,x.prototype.size,x.prototype.fixedSize)};Graph.createHandle=V;Graph.handleFactory=Ja;var $a=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=$a.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&
+c.prototype.size,!1),card:Qa(.5,t.prototype.size,!0),loopLimit:Qa(.5,U.prototype.size,!0),trapezoid:Ta(.5,y.prototype.size,y.prototype.fixedSize),parallelogram:Ta(1,w.prototype.size,w.prototype.fixedSize)};Graph.createHandle=V;Graph.handleFactory=Ja;var $a=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=$a.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&
null==mxStencilRegistry.getStencil(b)?b=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(b=mxConstants.SHAPE_SWIMLANE);b=Ja[b];null==b&&null!=this.state.shape&&this.state.shape.isRoundable()&&(b=Ja[mxConstants.SHAPE_RECTANGLE]);null!=b&&(b=b(this.state),null!=b&&(a=null==a?b:a.concat(b)))}return a};mxEdgeHandler.prototype.createCustomHandles=function(){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
a=Ja[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Ka=new mxPoint(1,0),La=new mxPoint(1,0),wa=mxUtils.toRadians(-30),Ka=mxUtils.getRotatedPoint(Ka,Math.cos(wa),Math.sin(wa)),wa=mxUtils.toRadians(-150),La=mxUtils.getRotatedPoint(La,Math.cos(wa),Math.sin(wa));mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==
h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var k=Ka.x,l=Ka.y,m=La.x,n=La.y,r="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=p.x;var d=b-p.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);r?(c&&(p=new mxPoint(p.x+k*b,p.y+l*b),e.push(p)),p=new mxPoint(p.x+m*a,p.y+n*a)):(c&&(p=new mxPoint(p.x+m*a,p.y+n*a),e.push(p)),p=new mxPoint(p.x+k*b,p.y+l*b));e.push(p)};var p=h;null==
@@ -3396,7 +3396,7 @@ Ea.prototype.constraints=mxEllipse.prototype.constraints;Ga.prototype.constraint
0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,
.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
-.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];x.prototype.constraints=mxRectangleShape.prototype.constraints;y.prototype.constraints=mxRectangleShape.prototype.constraints;v.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
+.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];w.prototype.constraints=mxRectangleShape.prototype.constraints;y.prototype.constraints=mxRectangleShape.prototype.constraints;v.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;ja.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*b+.25*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),e));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(b+d),.5*(c+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),c));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),.5*(c+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*b-.25*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,
@@ -3502,8 +3502,8 @@ b)})));this.put("file",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItem
Menus.prototype.addMenu=function(a,c,d){var b=this.get(a);null!=b&&(c.showDisabled||b.isEnabled())&&this.get(a).execute(c,d)};
Menus.prototype.addInsertTableCellItem=function(a,c){var d=this.editorUi.editor.graph;this.addInsertTableItem(a,mxUtils.bind(this,function(a,c,e){c=mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)?d.createCrossFunctionalSwimlane(c,e):d.createTable(c,e,null,null,mxEvent.isShiftDown(a)?"Table":null);a=mxEvent.isAltDown(a)?d.getFreeInsertPoint():d.getCenterInsertPoint(d.getBoundingBoxFromGeometry([c],!0));a=d.importCells([c],a.x,a.y);null!=a&&0<a.length&&(d.scrollCellToVisible(a[0]),d.setSelectionCells(a))}),
c)};
-Menus.prototype.addInsertTableItem=function(a,c,d){function b(a,b){for(var c=["<table>"],d=0;d<a;d++){c.push("<tr>");for(var e=0;e<b;e++)c.push("<td><br></td>");c.push("</tr>")}c.push("</table>");return c.join("")}function f(a){g=e.getParentByName(mxEvent.getSource(a),"TD");var b=!1;if(null!=g){k=e.getParentByName(g,"TR");for(var c=mxEvent.isMouseEvent(a)?2:4,d=h,f=Math.min(20,k.sectionRowIndex+c),c=Math.min(20,g.cellIndex+c),m=d.rows.length;m<f;m++)for(var v=d.insertRow(m),x=0;x<d.rows[0].cells.length;x++)v.insertCell(-1);for(m=
-0;m<d.rows.length;m++)for(v=d.rows[m],x=v.cells.length;x<c;x++)v.insertCell(-1);l.innerHTML=g.cellIndex+1+"x"+(k.sectionRowIndex+1);for(d=0;d<h.rows.length;d++)for(f=h.rows[d],c=0;c<f.cells.length;c++)m=f.cells[c],d==k.sectionRowIndex&&c==g.cellIndex&&(b="blue"==m.style.backgroundColor),m.style.backgroundColor=d<=k.sectionRowIndex&&c<=g.cellIndex?"blue":"transparent"}mxEvent.consume(a);return b}c=null!=c?c:mxUtils.bind(this,function(a,c,d){var e=this.editorUi.editor.graph;a=e.getParentByName(mxEvent.getSource(a),
+Menus.prototype.addInsertTableItem=function(a,c,d){function b(a,b){for(var c=["<table>"],d=0;d<a;d++){c.push("<tr>");for(var e=0;e<b;e++)c.push("<td><br></td>");c.push("</tr>")}c.push("</table>");return c.join("")}function f(a){g=e.getParentByName(mxEvent.getSource(a),"TD");var b=!1;if(null!=g){k=e.getParentByName(g,"TR");for(var c=mxEvent.isMouseEvent(a)?2:4,d=h,f=Math.min(20,k.sectionRowIndex+c),c=Math.min(20,g.cellIndex+c),m=d.rows.length;m<f;m++)for(var v=d.insertRow(m),w=0;w<d.rows[0].cells.length;w++)v.insertCell(-1);for(m=
+0;m<d.rows.length;m++)for(v=d.rows[m],w=v.cells.length;w<c;w++)v.insertCell(-1);l.innerHTML=g.cellIndex+1+"x"+(k.sectionRowIndex+1);for(d=0;d<h.rows.length;d++)for(f=h.rows[d],c=0;c<f.cells.length;c++)m=f.cells[c],d==k.sectionRowIndex&&c==g.cellIndex&&(b="blue"==m.style.backgroundColor),m.style.backgroundColor=d<=k.sectionRowIndex&&c<=g.cellIndex?"blue":"transparent"}mxEvent.consume(a);return b}c=null!=c?c:mxUtils.bind(this,function(a,c,d){var e=this.editorUi.editor.graph;a=e.getParentByName(mxEvent.getSource(a),
"TD");if(null!=a&&null!=e.cellEditor.textarea){e.getParentByName(a,"TR");var f=e.cellEditor.textarea.getElementsByTagName("table");a=[];for(var g=0;g<f.length;g++)a.push(f[g]);e.container.focus();e.pasteHtmlAtCaret(b(c,d));c=e.cellEditor.textarea.getElementsByTagName("table");if(c.length==a.length+1)for(g=c.length-1;0<=g;g--)if(0==g||c[g]!=a[g-1]){e.selectNode(c[g].rows[0].cells[0]);break}}});var e=this.editorUi.editor.graph,k=null,g=null;a=a.addItem("",null,null,d,null,null,null,!0);a.firstChild.innerHTML=
"";var h=function(a,b){var c=document.createElement("table");c.setAttribute("border","1");c.style.borderCollapse="collapse";c.style.borderStyle="solid";c.setAttribute("cellPadding","8");for(var d=0;d<a;d++)for(var e=c.insertRow(d),f=0;f<b;f++)e.insertCell(-1);return c}(5,5);a.firstChild.appendChild(h);var l=document.createElement("div");l.style.padding="4px";l.style.fontSize=Menus.prototype.defaultFontSize+"px";l.innerHTML="1x1";a.firstChild.appendChild(l);mxEvent.addGestureListeners(h,null,null,
mxUtils.bind(this,function(a){var b=f(a);null!=g&&null!=k&&b&&(c(a,k.sectionRowIndex+1,g.cellIndex+1),window.setTimeout(mxUtils.bind(this,function(){this.editorUi.hideCurrentMenu()}),0))}));mxEvent.addListener(h,"mouseover",f)};
@@ -3591,10 +3591,10 @@ ColorDialog.prototype.presetColors="E6D0DE CDA2BE B5739D E1D5E7 C3ABD0 A680B8 D4
ColorDialog.prototype.createApplyFunction=function(){return mxUtils.bind(this,function(a){var c=this.editorUi.editor.graph;c.getModel().beginUpdate();try{c.setCellStyles(this.currentColorKey,a),this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[this.currentColorKey],"values",[a],"cells",c.getSelectionCells()))}finally{c.getModel().endUpdate()}})};ColorDialog.recentColors=[];
ColorDialog.addRecentColor=function(a,c){null!=a&&(mxUtils.remove(a,ColorDialog.recentColors),ColorDialog.recentColors.splice(0,0,a),ColorDialog.recentColors.length>=c&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]};
var AboutDialog=function(a){var c=document.createElement("div");c.setAttribute("align","center");var d=document.createElement("h3");mxUtils.write(d,mxResources.get("about")+" GraphEditor");c.appendChild(d);d=document.createElement("img");d.style.border="0px";d.setAttribute("width","176");d.setAttribute("width","151");d.setAttribute("src",IMAGE_PATH+"/logo.png");c.appendChild(d);mxUtils.br(c);mxUtils.write(c,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(c);d=document.createElement("a");d.setAttribute("href",
-"http://www.jgraph.com/");d.setAttribute("target","_blank");mxUtils.write(d,"www.jgraph.com");c.appendChild(d);mxUtils.br(c);mxUtils.br(c);d=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});d.className="geBtn gePrimaryBtn";c.appendChild(d);this.container=c},TextareaDialog=function(a,c,d,b,f,e,k,g,h,l,m,p,n,q){k=null!=k?k:300;g=null!=g?g:120;l=null!=l?l:!1;var t,u,v=document.createElement("table"),x=document.createElement("tbody");t=document.createElement("tr");u=document.createElement("td");
-u.style.fontSize="10pt";u.style.width="100px";mxUtils.write(u,c);t.appendChild(u);x.appendChild(t);t=document.createElement("tr");u=document.createElement("td");var y=document.createElement("textarea");m&&y.setAttribute("wrap","off");y.setAttribute("spellcheck","false");y.setAttribute("autocorrect","off");y.setAttribute("autocomplete","off");y.setAttribute("autocapitalize","off");mxUtils.write(y,d||"");y.style.resize="none";y.style.width=k+"px";y.style.height=g+"px";this.textarea=y;this.init=function(){y.focus();
-y.scrollTop=0};u.appendChild(y);t.appendChild(u);x.appendChild(t);t=document.createElement("tr");u=document.createElement("td");u.style.paddingTop="14px";u.style.whiteSpace="nowrap";u.setAttribute("align","right");null!=n&&(c=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(n)}),c.className="geBtn",u.appendChild(c));if(null!=q)for(c=0;c<q.length;c++)(function(a,b){var c=mxUtils.button(a,function(a){b(a,y)});c.className="geBtn";u.appendChild(c)})(q[c][0],q[c][1]);e=mxUtils.button(e||
-mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});e.className="geBtn";a.editor.cancelFirst&&u.appendChild(e);null!=h&&h(u,y);null!=b&&(h=mxUtils.button(p||mxResources.get("apply"),function(){l||a.hideDialog();b(y.value)}),h.className="geBtn gePrimaryBtn",u.appendChild(h));a.editor.cancelFirst||u.appendChild(e);t.appendChild(u);x.appendChild(t);v.appendChild(x);this.container=v},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";var d=document.createElement("textarea");
+"http://www.jgraph.com/");d.setAttribute("target","_blank");mxUtils.write(d,"www.jgraph.com");c.appendChild(d);mxUtils.br(c);mxUtils.br(c);d=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});d.className="geBtn gePrimaryBtn";c.appendChild(d);this.container=c},TextareaDialog=function(a,c,d,b,f,e,k,g,h,l,m,p,n,q){k=null!=k?k:300;g=null!=g?g:120;l=null!=l?l:!1;var t,u,v=document.createElement("table"),w=document.createElement("tbody");t=document.createElement("tr");u=document.createElement("td");
+u.style.fontSize="10pt";u.style.width="100px";mxUtils.write(u,c);t.appendChild(u);w.appendChild(t);t=document.createElement("tr");u=document.createElement("td");var y=document.createElement("textarea");m&&y.setAttribute("wrap","off");y.setAttribute("spellcheck","false");y.setAttribute("autocorrect","off");y.setAttribute("autocomplete","off");y.setAttribute("autocapitalize","off");mxUtils.write(y,d||"");y.style.resize="none";y.style.width=k+"px";y.style.height=g+"px";this.textarea=y;this.init=function(){y.focus();
+y.scrollTop=0};u.appendChild(y);t.appendChild(u);w.appendChild(t);t=document.createElement("tr");u=document.createElement("td");u.style.paddingTop="14px";u.style.whiteSpace="nowrap";u.setAttribute("align","right");null!=n&&(c=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(n)}),c.className="geBtn",u.appendChild(c));if(null!=q)for(c=0;c<q.length;c++)(function(a,b){var c=mxUtils.button(a,function(a){b(a,y)});c.className="geBtn";u.appendChild(c)})(q[c][0],q[c][1]);e=mxUtils.button(e||
+mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});e.className="geBtn";a.editor.cancelFirst&&u.appendChild(e);null!=h&&h(u,y);null!=b&&(h=mxUtils.button(p||mxResources.get("apply"),function(){l||a.hideDialog();b(y.value)}),h.className="geBtn gePrimaryBtn",u.appendChild(h));a.editor.cancelFirst||u.appendChild(e);t.appendChild(u);w.appendChild(t);v.appendChild(w);this.container=v},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";var d=document.createElement("textarea");
d.setAttribute("wrap","off");d.setAttribute("spellcheck","false");d.setAttribute("autocorrect","off");d.setAttribute("autocomplete","off");d.setAttribute("autocapitalize","off");d.style.overflow="auto";d.style.resize="none";d.style.width="600px";d.style.height="360px";d.style.marginBottom="16px";d.value=mxUtils.getPrettyXml(a.editor.getGraphXml());c.appendChild(d);this.init=function(){d.focus()};Graph.fileSupport&&(d.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},
!1),d.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var c=new FileReader;c.onload=function(a){d.value=a.target.result};c.readAsText(b)}else d.value=a.extractGraphModelFromEvent(b)},!1));var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);var f=document.createElement("select");f.style.width="180px";f.className="geBtn";if(a.editor.graph.isEnabled()){var e=
document.createElement("option");e.setAttribute("value","replace");mxUtils.write(e,mxResources.get("replaceExistingDrawing"));f.appendChild(e)}e=document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,mxResources.get("openInNewWindow"));EditDiagramDialog.showNewWindowOption&&f.appendChild(e);a.editor.graph.isEnabled()&&(e=document.createElement("option"),e.setAttribute("value","import"),mxUtils.write(e,mxResources.get("addToExistingDrawing")),f.appendChild(e));c.appendChild(f);
@@ -3609,10 +3609,10 @@ p.appendChild(h));h=document.createElement("td");h.appendChild(p);f.appendChild(
h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("width")+":");f.appendChild(h);var q=document.createElement("input");q.setAttribute("value",k);q.style.width="180px";h=document.createElement("td");h.appendChild(q);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("height")+":");f.appendChild(h);var t=document.createElement("input");t.setAttribute("value",g);t.style.width="180px";h=document.createElement("td");
h.appendChild(t);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("dpi")+":");f.appendChild(h);var u=document.createElement("select");u.style.width="180px";h=document.createElement("option");h.setAttribute("value","100");mxUtils.write(h,"100dpi");u.appendChild(h);h=document.createElement("option");h.setAttribute("value","200");mxUtils.write(h,"200dpi");u.appendChild(h);h=document.createElement("option");
h.setAttribute("value","300");mxUtils.write(h,"300dpi");u.appendChild(h);h=document.createElement("option");h.setAttribute("value","400");mxUtils.write(h,"400dpi");u.appendChild(h);h=document.createElement("option");h.setAttribute("value","custom");mxUtils.write(h,mxResources.get("custom"));u.appendChild(h);var v=document.createElement("input");v.style.width="180px";v.style.display="none";v.setAttribute("value","100");v.setAttribute("type","number");v.setAttribute("min","50");v.setAttribute("step",
-"50");var x=!1;mxEvent.addListener(u,"change",function(){"custom"==this.value?(this.style.display="none",v.style.display="",v.focus()):(v.value=this.value,x||(n.value=this.value))});mxEvent.addListener(v,"change",function(){var a=parseInt(v.value);isNaN(a)||0>=a?v.style.backgroundColor="red":(v.style.backgroundColor="",x||(n.value=a))});h=document.createElement("td");h.appendChild(u);h.appendChild(v);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize=
+"50");var w=!1;mxEvent.addListener(u,"change",function(){"custom"==this.value?(this.style.display="none",v.style.display="",v.focus()):(v.value=this.value,w||(n.value=this.value))});mxEvent.addListener(v,"change",function(){var a=parseInt(v.value);isNaN(a)||0>=a?v.style.backgroundColor="red":(v.style.backgroundColor="",w||(n.value=a))});h=document.createElement("td");h.appendChild(u);h.appendChild(v);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize=
"10pt";mxUtils.write(h,mxResources.get("background")+":");f.appendChild(h);var y=document.createElement("input");y.setAttribute("type","checkbox");y.checked=null==b.background||b.background==mxConstants.NONE;h=document.createElement("td");h.appendChild(y);mxUtils.write(h,mxResources.get("transparent"));f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("grid")+":");f.appendChild(h);var G=document.createElement("input");
G.setAttribute("type","checkbox");G.checked=!1;h=document.createElement("td");h.appendChild(G);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("borderWidth")+":");f.appendChild(h);var E=document.createElement("input");E.setAttribute("type","number");E.setAttribute("value",ExportDialog.lastBorderValue);E.style.width="180px";h=document.createElement("td");h.appendChild(E);f.appendChild(h);l.appendChild(f);
-e.appendChild(l);mxEvent.addListener(p,"change",c);c();mxEvent.addListener(n,"change",function(){x=!0;var a=Math.max(0,parseFloat(n.value)||100)/100;n.value=parseFloat((100*a).toFixed(2));0<k?(q.value=Math.floor(k*a),t.value=Math.floor(g*a)):(n.value="100",q.value=k,t.value=g);d()});mxEvent.addListener(q,"change",function(){var a=parseInt(q.value)/k;0<a?(n.value=parseFloat((100*a).toFixed(2)),t.value=Math.floor(g*a)):(n.value="100",q.value=k,t.value=g);d()});mxEvent.addListener(t,"change",function(){var a=
+e.appendChild(l);mxEvent.addListener(p,"change",c);c();mxEvent.addListener(n,"change",function(){w=!0;var a=Math.max(0,parseFloat(n.value)||100)/100;n.value=parseFloat((100*a).toFixed(2));0<k?(q.value=Math.floor(k*a),t.value=Math.floor(g*a)):(n.value="100",q.value=k,t.value=g);d()});mxEvent.addListener(q,"change",function(){var a=parseInt(q.value)/k;0<a?(n.value=parseFloat((100*a).toFixed(2)),t.value=Math.floor(g*a)):(n.value="100",q.value=k,t.value=g);d()});mxEvent.addListener(t,"change",function(){var a=
parseInt(t.value)/g;0<a?(n.value=parseFloat((100*a).toFixed(2)),q.value=Math.floor(k*a)):(n.value="100",q.value=k,t.value=g);d()});f=document.createElement("tr");h=document.createElement("td");h.setAttribute("align","right");h.style.paddingTop="22px";h.colSpan=2;var F=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(n.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var c=m.value,d=p.value,e=Math.max(0,parseFloat(n.value)||100)/100,f=Math.max(0,parseInt(E.value)),
g=b.background,h=Math.max(1,parseInt(v.value));if(("svg"==d||"png"==d||"pdf"==d)&&y.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,c,d,g,e,f,h,G.checked)}}));F.className="geBtn gePrimaryBtn";var A=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});A.className="geBtn";a.editor.cancelFirst?(h.appendChild(A),h.appendChild(F)):(h.appendChild(F),h.appendChild(A));f.appendChild(h);l.appendChild(f);e.appendChild(l);
this.container=e};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0;
@@ -3622,15 +3622,15 @@ ExportDialog.saveLocalFile=function(a,c,d,b){c.length<MAX_REQUEST_SIZE?(a.hideDi
var EditDataDialog=function(a,c){function d(){0<G.value.length?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled")}var b=document.createElement("div"),f=a.editor.graph,e=f.getModel().getValue(c);if(!mxUtils.isNode(e)){var k=mxUtils.createXmlDocument().createElement("object");k.setAttribute("label",e||"");e=k}var g={};try{var h=mxUtils.getValue(a.editor.graph.getCurrentCellStyle(c),"metaData",null);null!=h&&(g=JSON.parse(h))}catch(A){}var l=new mxForm("properties");l.table.style.width=
"100%";for(var m=e.attributes,p=[],n=[],q=0,t=null!=EditDataDialog.getDisplayIdForCell?EditDataDialog.getDisplayIdForCell(a,c):null,u=function(a,b){var c=document.createElement("div");c.style.position="relative";c.style.paddingRight="20px";c.style.boxSizing="border-box";c.style.width="100%";var d=document.createElement("a"),e=mxUtils.createImage(Dialog.prototype.closeImage);e.style.height="9px";e.style.fontSize="9px";e.style.marginBottom=mxClient.IS_IE11?"-1px":"5px";d.className="geButton";d.setAttribute("title",
mxResources.get("delete"));d.style.position="absolute";d.style.top="4px";d.style.right="0px";d.style.margin="0px";d.style.width="9px";d.style.height="9px";d.style.cursor="pointer";d.appendChild(e);e=function(a){return function(){for(var b=0,c=0;c<p.length;c++){if(p[c]==a){n[c]=null;l.table.deleteRow(b+(null!=t?1:0));break}null!=n[c]&&b++}}}(b);mxEvent.addListener(d,"click",e);e=a.parentNode;c.appendChild(a);c.appendChild(d);e.appendChild(c)},k=function(a,b,c){p[a]=b;n[a]=l.addTextarea(p[q]+":",c,
-2);n[a].style.width="100%";0<c.indexOf("\n")&&n[a].setAttribute("rows","2");u(n[a],b);null!=g[b]&&0==g[b].editable&&n[a].setAttribute("disabled","disabled")},h=[],v=f.getModel().getParent(c)==f.getModel().getRoot(),x=0;x<m.length;x++)!v&&"label"==m[x].nodeName||"placeholders"==m[x].nodeName||h.push({name:m[x].nodeName,value:m[x].nodeValue});h.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});if(null!=t){m=document.createElement("div");m.style.width="100%";m.style.fontSize="11px";m.style.textAlign=
+2);n[a].style.width="100%";0<c.indexOf("\n")&&n[a].setAttribute("rows","2");u(n[a],b);null!=g[b]&&0==g[b].editable&&n[a].setAttribute("disabled","disabled")},h=[],v=f.getModel().getParent(c)==f.getModel().getRoot(),w=0;w<m.length;w++)!v&&"label"==m[w].nodeName||"placeholders"==m[w].nodeName||h.push({name:m[w].nodeName,value:m[w].nodeValue});h.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});if(null!=t){m=document.createElement("div");m.style.width="100%";m.style.fontSize="11px";m.style.textAlign=
"center";mxUtils.write(m,t);var y=l.addField(mxResources.get("id")+":",m);mxEvent.addListener(m,"dblclick",function(b){if(mxEvent.isControlDown(b)||mxEvent.isMetaDown(b))b=new FilenameDialog(a,t,mxResources.get("apply"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&b!=t&&(null==f.getModel().getCell(b)?(f.getModel().cellRemoved(c),c.setId(b),t=b,y.innerHTML=mxUtils.htmlEntities(b),f.getModel().cellAdded(c)):a.handleError({message:mxResources.get("alreadyExst",[b])}))}),mxResources.get("id")),
-a.showDialog(b.container,300,80,!0,!0),b.init()})}for(x=0;x<h.length;x++)k(q,h[x].name,h[x].value),q++;h=document.createElement("div");h.style.cssText="position:absolute;left:30px;right:30px;overflow-y:auto;top:30px;bottom:80px;";h.appendChild(l.table);k=document.createElement("div");k.style.boxSizing="border-box";k.style.paddingRight="160px";k.style.whiteSpace="nowrap";k.style.marginTop="6px";k.style.width="100%";var G=document.createElement("input");G.setAttribute("placeholder",mxResources.get("enterPropertyName"));
+a.showDialog(b.container,300,80,!0,!0),b.init()})}for(w=0;w<h.length;w++)k(q,h[w].name,h[w].value),q++;h=document.createElement("div");h.style.cssText="position:absolute;left:30px;right:30px;overflow-y:auto;top:30px;bottom:80px;";h.appendChild(l.table);k=document.createElement("div");k.style.boxSizing="border-box";k.style.paddingRight="160px";k.style.whiteSpace="nowrap";k.style.marginTop="6px";k.style.width="100%";var G=document.createElement("input");G.setAttribute("placeholder",mxResources.get("enterPropertyName"));
G.setAttribute("type","text");G.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"36":"40");G.style.boxSizing="border-box";G.style.marginLeft="2px";G.style.width="100%";k.appendChild(G);h.appendChild(k);b.appendChild(h);var E=mxUtils.button(mxResources.get("addProperty"),function(){var a=G.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(p,a);if(0<=b&&null!=n[b])n[b].focus();else{e.cloneNode(!1).setAttribute(a,"");0<=b&&(p.splice(b,1),n.splice(b,1));
p.push(a);var c=l.addTextarea(a+":","",2);c.style.width="100%";n.push(c);u(c,a);c.focus()}E.setAttribute("disabled","disabled");G.value=""}catch(H){mxUtils.alert(H)}else mxUtils.alert(mxResources.get("invalidName"))});this.init=function(){0<n.length?n[0].focus():G.focus()};E.setAttribute("title",mxResources.get("addProperty"));E.setAttribute("disabled","disabled");E.style.textOverflow="ellipsis";E.style.position="absolute";E.style.overflow="hidden";E.style.width="144px";E.style.right="0px";E.className=
"geBtn";k.appendChild(E);h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});h.className="geBtn";k=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);e=e.cloneNode(!0);for(var b=!1,d=0;d<p.length;d++)null==n[d]?e.removeAttribute(p[d]):(e.setAttribute(p[d],n[d].value),b=b||"placeholder"==p[d]&&"1"==e.getAttribute("placeholders"));b&&e.removeAttribute("label");f.getModel().setValue(c,e)}catch(z){mxUtils.alert(z)}});k.className=
-"geBtn gePrimaryBtn";mxEvent.addListener(G,"keyup",d);mxEvent.addListener(G,"change",d);m=document.createElement("div");m.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){v=document.createElement("span");v.style.marginRight="10px";x=document.createElement("input");x.setAttribute("type","checkbox");x.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(x.setAttribute("checked",
-"checked"),x.defaultChecked=!0);mxEvent.addListener(x,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});v.appendChild(x);mxUtils.write(v,mxResources.get("placeholders"));if(null!=EditDataDialog.placeholderHelpLink){x=document.createElement("a");x.setAttribute("href",EditDataDialog.placeholderHelpLink);x.setAttribute("title",mxResources.get("help"));x.setAttribute("target","_blank");x.style.marginLeft="8px";x.style.cursor=
-"help";var F=document.createElement("img");mxUtils.setOpacity(F,50);F.style.height="16px";F.style.width="16px";F.setAttribute("border","0");F.setAttribute("valign","middle");F.style.marginTop=mxClient.IS_IE11?"0px":"-4px";F.setAttribute("src",Editor.helpImage);x.appendChild(F);v.appendChild(x)}m.appendChild(v)}a.editor.cancelFirst?(m.appendChild(h),m.appendChild(k)):(m.appendChild(k),m.appendChild(h));b.appendChild(m);this.container=b};
+"geBtn gePrimaryBtn";mxEvent.addListener(G,"keyup",d);mxEvent.addListener(G,"change",d);m=document.createElement("div");m.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){v=document.createElement("span");v.style.marginRight="10px";w=document.createElement("input");w.setAttribute("type","checkbox");w.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(w.setAttribute("checked",
+"checked"),w.defaultChecked=!0);mxEvent.addListener(w,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});v.appendChild(w);mxUtils.write(v,mxResources.get("placeholders"));if(null!=EditDataDialog.placeholderHelpLink){w=document.createElement("a");w.setAttribute("href",EditDataDialog.placeholderHelpLink);w.setAttribute("title",mxResources.get("help"));w.setAttribute("target","_blank");w.style.marginLeft="8px";w.style.cursor=
+"help";var F=document.createElement("img");mxUtils.setOpacity(F,50);F.style.height="16px";F.style.width="16px";F.setAttribute("border","0");F.setAttribute("valign","middle");F.style.marginTop=mxClient.IS_IE11?"0px":"-4px";F.setAttribute("src",Editor.helpImage);w.appendChild(F);v.appendChild(w)}m.appendChild(v)}a.editor.cancelFirst?(m.appendChild(h),m.appendChild(k)):(m.appendChild(k),m.appendChild(h));b.appendChild(m);this.container=b};
EditDataDialog.getDisplayIdForCell=function(a,c){var d=null;null!=a.editor.graph.getModel().getParent(c)&&(d=c.getId());return d};EditDataDialog.placeholderHelpLink=null;
var LinkDialog=function(a,c,d,b){var f=document.createElement("div");mxUtils.write(f,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";e.style.paddingRight="20px";var k=document.createElement("input");k.setAttribute("value",c);k.setAttribute("placeholder","http://www.example.com/");k.setAttribute("type","text");
k.style.marginTop="6px";k.style.width="400px";k.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";k.style.backgroundRepeat="no-repeat";k.style.backgroundPosition="100% 50%";k.style.paddingRight="14px";c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display="inline-block";c.style.top="3px";c.style.background="url("+IMAGE_PATH+"/transparent.gif)";
@@ -3650,15 +3650,15 @@ function(a){if(g.isEnabled()){var b=null;g.getModel().beginUpdate();try{b="1"==m
b.style.top="6px",0<a&&(h=document.createElement("a"),h.setAttribute("title",mxResources.get("toBack")),h.className="geButton",h.style.cssFloat="none",h.innerHTML="&#9660;",h.style.width="14px",h.style.height="14px",h.style.fontSize="14px",h.style.margin="0px",h.style.marginTop="-1px",b.appendChild(h),mxEvent.addListener(h,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a-1);mxEvent.consume(b)})),0<=a&&a<q-1&&(h=document.createElement("a"),h.setAttribute("title",mxResources.get("toFront")),
h.className="geButton",h.style.cssFloat="none",h.innerHTML="&#9650;",h.style.width="14px",h.style.height="14px",h.style.fontSize="14px",h.style.margin="0px",h.style.marginTop="-1px",b.appendChild(h),mxEvent.addListener(h,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a+1);mxEvent.consume(b)})),f.appendChild(b);mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&(f.setAttribute("draggable","true"),f.style.cursor="move")}mxEvent.addListener(f,"dblclick",function(a){var b=mxEvent.getSource(a).nodeName;
"INPUT"!=b&&"IMG"!=b&&(e(c),mxEvent.consume(a))});g.getDefaultParent()==c?(f.style.background="white"==Dialog.backdropColor?"#e6eff8":"#505759",f.style.fontWeight=g.isEnabled()?"bold":"",t=c):mxEvent.addListener(f,"click",function(a){g.isEnabled()&&(g.setDefaultParent(d),g.view.setCurrentRoot(null))});m.appendChild(f)}q=g.model.getChildCount(g.model.root);m.innerHTML="";for(var b=q-1;0<=b;b--)mxUtils.bind(this,function(c){a(b,g.convertValueToString(c)||mxResources.get("background"),c,c)})(g.model.getChildAt(g.model.root,
-b));var c=g.convertValueToString(t)||mxResources.get("background");v.setAttribute("title",mxResources.get("removeIt",[c]));G.setAttribute("title",mxResources.get("duplicateIt",[c]));y.setAttribute("title",mxResources.get("editData"));g.isSelectionEmpty()&&(x.className="geButton mxDisabled")}var g=a.editor.graph,h=document.createElement("div");h.style.userSelect="none";h.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;h.style.border="1px solid whiteSmoke";h.style.height=
+b));var c=g.convertValueToString(t)||mxResources.get("background");v.setAttribute("title",mxResources.get("removeIt",[c]));G.setAttribute("title",mxResources.get("duplicateIt",[c]));y.setAttribute("title",mxResources.get("editData"));g.isSelectionEmpty()&&(w.className="geButton mxDisabled")}var g=a.editor.graph,h=document.createElement("div");h.style.userSelect="none";h.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;h.style.border="1px solid whiteSmoke";h.style.height=
"100%";h.style.marginBottom="10px";h.style.overflow="auto";var l=EditorUi.compactUi?"26px":"30px",m=document.createElement("div");m.style.backgroundColor="white"==Dialog.backdropColor?"#dcdcdc":Dialog.backdropColor;m.style.position="absolute";m.style.overflow="auto";m.style.left="0px";m.style.right="0px";m.style.top="0px";m.style.bottom=parseInt(l)+7+"px";h.appendChild(m);var p=null,n=null;mxEvent.addListener(h,"dragover",function(a){a.dataTransfer.dropEffect="move";n=0;a.stopPropagation();a.preventDefault()});
mxEvent.addListener(h,"drop",function(a){a.stopPropagation();a.preventDefault()});var q=null,t=null,u=document.createElement("div");u.className="geToolbarContainer";u.style.position="absolute";u.style.bottom="0px";u.style.left="0px";u.style.right="0px";u.style.height=l;u.style.overflow="hidden";u.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";u.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;u.style.borderWidth="1px 0px 0px 0px";u.style.borderColor=
"#c3c3c3";u.style.borderStyle="solid";u.style.display="block";u.style.whiteSpace="nowrap";l=document.createElement("a");l.className="geButton";var v=l.cloneNode();v.innerHTML='<div class="geSprite geSprite-delete" style="display:inline-block;"></div>';mxEvent.addListener(v,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();try{var b=g.model.root.getIndex(t);g.removeCells([t],!1);0==g.model.getChildCount(g.model.root)?(g.model.add(g.model.root,new mxCell),g.setDefaultParent(null)):0<b&&b<=
-g.model.getChildCount(g.model.root)?g.setDefaultParent(g.model.getChildAt(g.model.root,b-1)):g.setDefaultParent(null)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(v.className="geButton mxDisabled");u.appendChild(v);var x=l.cloneNode();x.setAttribute("title",mxUtils.trim(mxResources.get("moveSelectionTo",["..."])));x.innerHTML='<div class="geSprite geSprite-insert" style="display:inline-block;"></div>';mxEvent.addListener(x,"click",function(b){if(g.isEnabled()&&!g.isSelectionEmpty()){var c=
-mxUtils.getOffset(x);a.showPopupMenu(mxUtils.bind(this,function(a,b){for(var c=q-1;0<=c;c--)mxUtils.bind(this,function(c){var d=a.addItem(g.convertValueToString(c)||mxResources.get("background"),null,mxUtils.bind(this,function(){g.moveCells(g.getSelectionCells(),0,0,!1,c)}),b);1==g.getSelectionCount()&&g.model.isAncestor(c,g.getSelectionCell())&&a.addCheckmark(d,Editor.checkmarkImage)})(g.model.getChildAt(g.model.root,c))}),c.x,c.y+x.offsetHeight,b)}});u.appendChild(x);var y=l.cloneNode();y.innerHTML=
+g.model.getChildCount(g.model.root)?g.setDefaultParent(g.model.getChildAt(g.model.root,b-1)):g.setDefaultParent(null)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(v.className="geButton mxDisabled");u.appendChild(v);var w=l.cloneNode();w.setAttribute("title",mxUtils.trim(mxResources.get("moveSelectionTo",["..."])));w.innerHTML='<div class="geSprite geSprite-insert" style="display:inline-block;"></div>';mxEvent.addListener(w,"click",function(b){if(g.isEnabled()&&!g.isSelectionEmpty()){var c=
+mxUtils.getOffset(w);a.showPopupMenu(mxUtils.bind(this,function(a,b){for(var c=q-1;0<=c;c--)mxUtils.bind(this,function(c){var d=a.addItem(g.convertValueToString(c)||mxResources.get("background"),null,mxUtils.bind(this,function(){g.moveCells(g.getSelectionCells(),0,0,!1,c)}),b);1==g.getSelectionCount()&&g.model.isAncestor(c,g.getSelectionCell())&&a.addCheckmark(d,Editor.checkmarkImage)})(g.model.getChildAt(g.model.root,c))}),c.x,c.y+w.offsetHeight,b)}});u.appendChild(w);var y=l.cloneNode();y.innerHTML=
'<div class="geSprite geSprite-dots" style="display:inline-block;"></div>';y.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(y,"click",function(b){g.isEnabled()&&a.showDataDialog(t);mxEvent.consume(b)});g.isEnabled()||(y.className="geButton mxDisabled");u.appendChild(y);var G=l.cloneNode();G.innerHTML='<div class="geSprite geSprite-duplicate" style="display:inline-block;"></div>';mxEvent.addListener(G,"click",function(a){if(g.isEnabled()){a=null;g.model.beginUpdate();try{a=g.cloneCell(t),
g.cellLabelChanged(a,mxResources.get("untitledLayer")),a.setVisible(!0),a=g.addCell(a,g.model.root),g.setDefaultParent(a)}finally{g.model.endUpdate()}null==a||g.isCellLocked(a)||g.selectAll(a)}});g.isEnabled()||(G.className="geButton mxDisabled");u.appendChild(G);l=l.cloneNode();l.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';l.setAttribute("title",mxResources.get("addLayer"));mxEvent.addListener(l,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();
-try{var b=g.addCell(new mxCell(mxResources.get("untitledLayer")),g.model.root);g.setDefaultParent(b)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(l.className="geButton mxDisabled");u.appendChild(l);h.appendChild(u);k();g.model.addListener(mxEvent.CHANGE,k);g.addListener("defaultParentChanged",k);g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?x.className="geButton mxDisabled":x.className="geButton"});this.window=new mxWindow(mxResources.get("layers"),
+try{var b=g.addCell(new mxCell(mxResources.get("untitledLayer")),g.model.root);g.setDefaultParent(b)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(l.className="geButton mxDisabled");u.appendChild(l);h.appendChild(u);k();g.model.addListener(mxEvent.CHANGE,k);g.addListener("defaultParentChanged",k);g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?w.className="geButton mxDisabled":w.className="geButton"});this.window=new mxWindow(mxResources.get("layers"),
h,c,d,b,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,120,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.init=function(){m.scrollTop=m.scrollHeight-m.clientHeight};this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.refreshLayers=k;this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;
a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var E=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",E);this.destroy=function(){mxEvent.removeListener(window,"resize",E);this.window.destroy()}};
(function(){Sidebar.prototype.tagIndex="5V1dV+M6sv01rDvngax0oLvveYQEaGaAziE0PW8sxVYSDbblI9uk6V9/VVWS7ST+kB0zL3etbmIn3ltlfZRKUqkU/rpRLN6MmFJym5yM/8QL/Xnw7yLceXQ03fA3JaOTyfjCQCKZehvu66tErCMW6J9E1M4jlJcFTJWIPP1VIKK1ixj/zML4VBRiTMaf9HOKx8G7/lwy71V/ZJEv8Vv8cKea9KW646tU41nk678/4tK7SZVu5FpC9oz/TDPVnkEPJlsn4wVma1lEnVemGByy6q+M+SXkSmaQ6Vv27gJeBDzyOQDMu1ma5FVEEVBEtuokgQhdyZ62Uv/9qWWoYPRltgx4A3U970/hc6BnIuD+kdI+KbGTcelGce6ec4evOBl/k0r8llGKtWBTvulF98xVKjzEvxWXDVS/M8VHF57Hk0TDpzpxJQGScC9TIoX3euXvVV/UcWWpDFkqsCYyfaM/1ly36vGfgVhv0oiasyfh7ypgyaaBaKHl5/nThqb5VeAvZEigXx8k0AolJJUkVjo7jGBOHFOm29Se3FZin6VsyRL42V+2U90z9crTOGAeIEK8Q1UCnMlGxk4CLWb/gsflKt0y/MLnbzyQccgjaIivAjgTT/Gtr4Quf9cXXWRLjRKxyRwvkBko75hHnjisPzUkP/kyESnHtwoAtQ7kkrehL7UyzUAtLrh6E5g7Nnn9iYo2SWW8ZVr1QYsTIW8gE+ll5kHWQlXGdr/Qug1Zl/RDe2O4FL+fWPBaiJSUZGoDT6HRYT3DN9Gdgy4agY3Q59gj+iIOdAOB/MmYYlHKqYp5PMLaFHMVirSSG2XYySnnZrGHNW19JdaZoiYxGV8LbGq+9DKsT0APT3Sk1ldzXaZszQvOpfzlkndUYodytAPDOEuxuocyEqlUmM+Jbm6HevkAq0sAW8+MB9BmQJs+8HQr1Wup3G2zL6uCetJZjXKofV7J+FLnUUWtxZyLTYa20FzpV1GxEgnVdxH4JOgyS0QECr4F3z3nEUHWUQfUjUi/ZUv7tjqTGaCkl0q6Wou0Ef9tdhslUBAn9Xq4GshZkG6gTmx0m8EqvuGoYzb4iwMYdDnVMcpbS2QM3TYB3mM0Sp71/0fuSVPf7lmki1d10DN3LE6x0/CKut+GuddVgGpRyFCtc/sZYS/Cm9FySdUj3sgIPlOZeZvWNAm1o0uTXH81UO3zZEEqQDkwD5q37t+zdAOqNe/RS/aJ6Tdi5purBt73xV930PiLapT8HTTXqz2Kh7JloQ26bIlVOtAl6dIY9uBPMhbeCdgtu/ZLJeEe1XdduTSPrpc6v9+TlIf64jakMpeQ9RumQFVr3YiV3vcb+eZyy9Viw4Ogl1p+nM2xmofSyNSdYgHjnSzA6m26fu+wTKtwYM30S1LXTkxPsYp0qp+nbu8yg271r4xnWM3/hoseBI+8qttygmLlSfLhZtmsS7CZUd1Kds295iT2m4dTh7aH0qLgF2QqGo5qVVdLtHiPvIp2mdDXinvvXtBgGhLRI4/1sJs09z5TqY6sRCNVqlU+2qxPDNuRuxm20MqLmqNOO3CqHRqxEGEclC3jNtATkMOLhFZpOynrH5FAc3UlcKRsbJHvy/9wD8iylUSFJHhrrfmRYBPaZCGDZ2Mu6QXolr3prFf16OdvsxOjqyqUVPXzVEngw+g2Qrur8WehCxWnqu71sE9gv/QWnrSalK00WglxllLFX+VXVaxv1TMae7yFcRrlV2059PNiNr2+wdxh60gmKamJ7trRDvIm4xsecYXqxI7z6sQ5pICWKDHp6jFiEyjpgtLioL1lU6MmSu3VHZm0QtcI1RVNeCPPjIeKHnuZLamxJzHnNIzdyIzsV2+DJm+Y22ZVlPINS35AxuFl1Bo4nQ5IJ7PIfxyW8xzGplLgaG9BGginPqsrUhn55RCZiLoxbRn4v4dAbkYubdBLFkWoRfXYs24CvPz8lGzpNZchT1XDzN8OSEkcF8ZBhnP+1cq2jJgddJORxMmOmMX7w5A96HXzILoS882Mr/IBWqAHTcjxejheKQPvJRo3kWNuP0g0msMlzn6upFoK36/o6A6R34t5fG0RKMGiNdXSwyFVJX4R6mwE9Y+GsodSb1gcv7cCTRUWmCEx1rI2SAbsPvY2+m9QmTl7mCeBdrAdKeMnTGC24X4ylMvU3qWtzY2Yf5/QdB+kwyKPB1i9agqkwEqZJqm+HLULWY27rx0Q72mUWoass8VjGOIQHihN0cRKenQVagMsqEtZ40YXPq4geB2yGWCXNjHdvWUBLwzZJqO0hL+TVEJ2va5urbACZWbCVYXEuLKywZep5bhnERlBRuANDHRa5c1HgwZlFJY2kWnipFFzIUE+znKy+EtINIQLcbvWDo8tdUmlOANNl1A7/85EXGmvHeBG00tYB81LS0AuLBVnVATUY8Ryv9DreSbjX5/Gw7BN6qTSVmRHniapOrKd1UqFa33dmLRcn4eiO68TzJgwXYga5OrAdj+l/P+s/3w5u4BXnkOdFpGwo5wOb+7Cf+7CX/0GtfRfzjCN8YfJX05g2BeQMAv9mxwCtgIWyOwr5L/o7pR+6SJ3Fe/5QLwwr4C6BIv1fKyzpToXHJTbLiG8/GQotrMJyTgA31zp7sYz07uavDfhI0+ET93fNFPKrlqZnmkCBaS85u7Qkeu8E9ciU7jYt/Oin4Cirkdwp8G3qlPh7jTYKupVrjsR5kytjqzkeYIFXRodnI/DcJL3VsvKmexWjgEoQCsdT/N5gLf5grrxeJ6vHTm4gO6UlxdM9fCJr5VdTooZGIdRDXwVSKniAK23gL3Xr/TsPT66RK06s+5MS1xeX2UqEqZDcGRYCDPKrMfWwKV89WhCtCt0umFC9cHJWKCO87lZ93ND0Yx1Ilesax5NH5/A6H4+Kc+ulmZcK+SoYJnx5BWnwRUNUOzoqJMouyS0VN6PSOkRm10jTnAgsGXKVzQTWkNVwXMVcD3cwHzgiccCc+0iwrV+eIB8vYYrzXPHQmiE1ZMQ1dCqZe8YRowhM391K5bkoGWFgTnpJC0cvypov69W1PHZKu61VvUKlrlgOFehv8dRqYiSVFVPrFeh9R+a6FKwUKF/2DYN5EtABZqrc/t6ZBF2b+Aky+I4EDDf0hE76YPlKyXWsFCNdaYrfEHqwDPaoVMBPZl25/OkuXfYh1AuGViPJI2HzBH4syPx50fiP/fFS0ErkVp1KFpUCxjqH1AdWqWlSspDr9t9mp8sRe05lZKcAbbwhWfvXCT5uaMGgh6KpJLW1xfoBw3LaFijA7pLbA/dLBaAHq0vExEoc+vIsCVvS8dsgKfzHs2zF5UcNegfdc9XQw7LtzEBEfnVuw5qsk9o/ZpU+TG0Qy5lmqJsZZKl/bKVR1cmoRI9kMKywhvIGYGrFIq+bi/73BQ0hZ97urenL6JXo5mqakobbtIVV66p/w8gNxay1cYALkHB9QnaBuTxx//OCudewXQalev3OcXoIopkah29PmH7C415oHVru0dODdPkGKapDAJyVt7oUe06YBVuotXIfZ+gJPdtaYfWuto0odAH8LSEDeELJ+eFgmTOYjMjHzutTu3jF0WpG5cTsOdrF/oO4OA7ZEqfB4GIEzsLWN3o6/CT3nipaAhKotcVWg06C0PjypdFnnW8zKDa16wc7zM8ads4WfHympGqW4QkbMBZ9BJqM5HWi99YkIFBog0Hzio7lkrk6FpEIqHNUzdS+rD2lUqc/dJZEPYVaHSDy8bczBP5mZ0nMo6LJDO2Kt7crnZYv2dpIkqO4Lj+UwiaZGA0N9XXHbZnPaKg7UVm+cmsVbpgLwQqTBDlK2QRjYqU9WGg36q1rR4EKSmgVoQS93g0qWbzMLnj/zKeThc2Ny9xdcxvW89tJ4FBZ+TrYS822IEJJ+OfG7MBproKdaU+lm6ha0k6VD5Wkg2Rn63EH5QRvWjn4LGOw95S7TY+lo3TH5bgr0x4r7qHlmhA5xdL8inC2+X+qnIjibHk+hEt7HPJHmiPr5FDKwqa25qJBIaLoGOvda+c0H4n10rRyKPrgymjDoVVMM5x8qynOBbcSwY9gDZTfidm4q9hNigH6Zq7EjwAgaEWn4CdRLdtSHCS1yLr+oE6voukO1CwEDCn2jNsm2CDCNlvtAe2HK3BYr8H2yZ1uJHuZl7so7STbMGZwqkd6+yc2C8a0q/ngU2T1/pvyFPmk83Tn/jK+AeZjy7QxdUCkrSe3NbTqNgL40jzsEOzt6u1D9tkTG81GT/skQ2ayLenp/lHp2H3zgzG+tdOZtsNHX1oJuNi99VAhH9Z9NF0P6/LNDBfboa6fZhgGdkTPhmqg3Eaf+zelGaa70Uruxfjpw7m7dWUBlIMPOJLqqEnlbYw7m/rCMN8W4EIq3yU28lRr/00O6EP07B7pPtJPgO3BzSObqMkNTPyh4nQVpli6C+Kh7umeGXIdYrzyrTE4a54V+7GdziaNakWdy8rutDfP+5Q6uGXHqZnFasiznRQXfSQERvNwMTfZtcLB/4N88lR1Bd6tC6Wmg+3UpO1nNAGReekn+dT/fCb2QYDbrLizeyyPyxWZ8bSBMBkfKP5KJTH8MncwhpdhJEJPjKZR2kWM4anfp4/4AqMtort1M9HJXJkDjXvCa99fDR7j1goZ+Ci5eNlH6zuA1JT24fiScpErMTelfGWWtwxQgHFjjzCtuJuPPlabFdZTK9hY7OU1LD5pjsLmKV+V7LRWsksxq1hcNHhDR5nYFYqnRg0I1Y7DGhmMD12qaM7njEng52y6I//yONAG9BDsy/0hb98H4T2Hv7Q9t5BMyMPDTB4Nn9XzMNV9SGpaZMwKq/cRu6MBdc0PRqMupDoGiLfYQUGNXqIoSzglobh11Ll0aDyYCql7wahxgrlvX5sEk9cZ8huDzRQKtakbzDk+1FCGCwTPmIQ6tuLe/08bRLHSBvMs1uV8of6M2tpff8UM/Pjklg8LY7ij2R0alrmSxLrke4KNjZKlWGvuIKL9jaT+K844epjeCsbzgtnkPNwXuM/X3fC4BwyjB44eY2kUW1gqzKElvowWzyKevTim5hHprYrSXGfbPU290OwgmbZRoHEXmVmBwR7emHQ9K589FG7k96B/hk0nQWuRNKy6Ee92NUl1NrCPFkWodFqXT7dWLX8EYuTjUw/LIFnGWQh/wD6BXjF5f1UsZTtMB/UxgsRVUy8uA9OYDJGlyEbZyNpS1HacBx90z06HU8knhzZ+GJAVIo1Vl/L92CjS6WtHnxx8r5FZ4xmPbZPYWNQQGbmEnRmuZ+BSxs5k2zBqQJpskiklWy1PIuQ4XrcZbGXdyOzpNmGIhLrhZhgucX6peINVyxIRreX0Gvda5tspRgFQCo8FlPjIwyemeTOGHtHJCIiCLF1sTgfj3fTib1jX+DJSDoQaa0feE+++5K/Z4mSnEGL3N11JS8SdE9HeEraqGfFD0fVEJwXKwldJ25PbrDKdG6T+y0F1RlOcDth5Q1LnHvED0S48Kx/2FCEsd33NxRhFplVkqLAB2obiywGV+ucayDaPEbVTg7QOnlfSrsfbDAhf+w3rmPInvWoA13OtB5XbLiyp9hIlxATesgqVVuZanqbKm6MJh1Y9lBCLL9k9Gl8cwW+HVN5dYJRLrKWiYZmurNPX2FH4z9mJNcfpaWJPKJ1YKpu6aZ3cv+m5HAb00cnVoSnzXdi39v8OjrjroXiW7JZiggXhh5ecLu4/2OIdA7Ih+C08S2Hz/Mi1Fqe56VEdMY8L6Zn4/H4j64J+gKCZEl0trLXXWAjGMsGJWQg26I8EcMmW9IrrmlhBZrg+JIlHLZJUsDSTda8UlJHNIXvj2Y5Dm0N7+NY9pee1o2LUIfB7vYSCPXf0b/4OxT2bsD8RsTjfKH/6Z9VXOcwfICpjK3rhMzX9DytZOyWPLfXrWCUPg9NPwImrq4cFDp2bgze3FOyVbYDpm9SprndbD67s+TRiPMDD27nJfk83rKrqZ7X5xQq0q9YDHNhWMhV5/fLowhZv+42gEJbG6qJssvEbZBSVOXSZTsKYuja+uiYEEIglnuoh940Z5eYnsnancUvHRghyGUuRsN2kzpsWYZVmcuVBAd9W77MgSF8cWI9JZs5sAeipm0DrrRhtrqDCGj+YStWogZxgwj9oEfBAkdsCZHMvHQ0uwCj1xdrQQeRMG1SSzqzI4JDRSpiZTWQ8TCDQIm6wsMEi66wv1qClVex6HKgZJe6zcRte5SqGO6zX6dWll1JmiVrIz2g68ZgQnab6IEXIcRmwh3ZYRxAHN5hGCfHMT5dGKlkiVuP1WAvj64TsOvFLGDWJOJAP/lY+rOPooctUXaFcG5CMCa1a0AHPB6LmSeMTZjfdEePpjmWiipzbiI1JJMhSCDb6SkZvNPUfwVnB0LYx541RzxuJ/k8hFT3ptWjI2OJC8b3RVLQnYF/CSf9GYYUlJRr45LCdn5cmnOM+J+nGctEOKfpC22h0DCFPGOcUCZPT0PubViEX01O6XyqRR4tbFvn7ONCdyczP8nnzoqrvnzzLNmUx3kP0PNFsKof4FFvGGqlYWNjR/bvu+xaITXs0W3mplMCaGSq9dDgslfw95VecO/809fRxfT0YkqMuRWRmxYdiWa1RIXZ4s43G5IMY9p07mxL6Mn4UtAY33ZVfdkuC2NpZQ2orngTjbcXfnaxl7EVNqU7WUX1OZLvoBYVfDWmbgulWK24yneHH1cVriJPvce4Kh95HZSwgX8Tx5T8neyLftHFIDycVUHfSFbhqFqHRluMTCF73Rk7urVIY0gLE+jEreOr5DkbiOfzMTy0c16rX25fTSgzM38k16QXl41tRaVVG+mqHQ9Kj2tRjO4N49KlY/vbrXN4V1f3WuAjOGZmozND0lk84L9yZ3zmzFEzTpQwu8YD2B2viUbXWWKDSOkmchQHFhbnzo2qkgRHQ8tEBty9dVYSnR8lzW0QZLBgZ46HuswCmA8R9ltgtcHh8HNJD3RKA4PMUdZbLlFOtrvUhnEyICPSHGYAsR3mR598eOA4RDUx91qTOIbeVNIBkpDJiqcJlB1dnsAJOg2hOSqwoxkt5cC8PixAfV9cX8Gqx8PJzjAM7N5oP9h+T2rYzFYabfWizslupwMJu8s4qIywhoDnZ+gK/DqkqPM94mMlfji1sFJxfTppGJD3YpwMzng2OOP54IyfB2f8cgzjvK6saydCejFOBmc8G5zxfHDGz4MzfunPCEXQt3+YDK4TahiP0Ak1jEfohBrGI3RCDeMROqGG8QidMBlcJ9QwHqETahiP0Ak1jEfohBrGI3RCDWMfnSDjVL6Y+cxIeMnoK67frkNzxEEetjrhb7XHe/VlzX35Z/NSCj73REj+FIdndDml9mfNO0Si1lGgL+nuK5gEjn+Du6vZ3iiMhyK1J7EeLjJ0IJ0MTApUp8xL0fUFY+1PIThD4lH4kcAc0ZZ7fsEUO87W7k3yOaX2XX9x6sksJg8y+L2461euSImrmyKhGTR4ZOeLfsTzjUylzdYYbqqzuZbvRY8OMSAUjkF3l2M7rL3GgfcSMN/nCg7P1gX0PUvjzEbVbDt124lo0ptoAFl6SwF7LF4S3QbMsrY0LjilL47hGt08fS+aQ3tDMPNvaYbHaMjVCm4278rUQudkb2+mtp+2Z3RgWoYf/YJS812Jv/v7mYQmH57QA7rd3d5cFu+VZMFuaksRSzpcr7Lp9ktr8l9M6+y/mNb5x6Y1f5j/18prJ60PLq+dtD64vHbS+uDyAhVlI6M799fdE5h8YAK31gsPt6BVaZt6RsUp69DTk3fr9ROx1h3yS5LHHaarfvARrtguLAODtUQzBeyZU8d6kM5KpOZkDlwuH5J18iGsZwOxPmOw7TcZpG2xuxs4cH33aI5Jd5J0A/u0wKZ8oZC56GjUdHaNAwVZp8aD2xqnlQ7dlXy5uknqlI8rfmfa4p+V00n/cZ2kaqGdDEA7r5a267C7hbLPjMiWvXFYo0Y/ZnPdiBUy+ToCJYpL0l6tk/j+06MLbE6e4m3OCmUMBlbBmIwYySAVIUXwCUXkNy1blzguKWaN4jE6VDljtma3rNJVX2ak5eHgFEcCGB0nG3TrWcrDQ+wrQdSQmIkm0+0tpXzFpGTTidwVMBCtiEwAsXob3RfLWCX4ypxyl0oZVL1mDXTKAh75Jk66e3WYbjBMgC8SL0vqzqOpBO7WH5vDDkAZ6haFYTV80TxG3EGhkULjQpwqMUeO68F4KirOKKgkwXBn/2FvzDVZc9pEc2C+SiA3Pgq6yskW3VGGFYeCeDJ2blwWhh1SQRGzpMmTZIdgizN+NtQNGoLctdpe2WPnJ+N/XIVx+o67L/O4wYoztyZe5jFhh4EpiyoZ6kje0SLH+OEmmkWxpN90tkyJ4zpgyWbHhcM19WsZkH6Ras0i8du55AloXNdaztzYgSmjVSMTb53tH+BUg7xhGZYONOBme6EMCujYxrX+rN3BeYD6xunkoQ3XlnTdTqBDlETN0hSK5ABzV3IzOXRyoYOyyjWjlS7C4Gzl2KFuctjgTfkpR62bf3bRrzgai5lv1GzlwbDVWPlKbkk35kykmnDxNfh7Eyk+b73cNsoi+HsbRY71qHcpDnlyBic7MhgeB3Q5TsmbJMsckqeTLbVSk+tI5EHclWjjK84IzRcv3ASRtGEiPyEv+h/61AUTSdPlpplatvIkMKP6LPiW06Ed6OhY1wfKmLYftpG+gY7Fc4RyhcXwxBznF3yQ2LXoERXmbJgl6LsIFIGoOEPugOC7tnWi/CywOxNXSxuzuPakZB7BoTLnqxhxGxNtsOAVRmUdSnF0fvb2MtDBzKimE2/MA2mNB7qTEI8873ZXiid0El/MsdYrniqHt38sni8oclZHCnqsvxCLcqZV5+t+fnro/r7m5ryWStYNhRnMYvM+Tnm60EOFmFThlPqfZeZcvRe6EzZntaWkS0wsOJ8spTa4HjHk+6Ibt48fQlPMCVXtlFkLkvG2iMbZYpnXMBwMWHzFas7yPYRn2FSxmTraXlU05nQ71NwNh5Uc4uTB2MANp7Sh5+EmdN03vFN026Vw7ud/xJ2r5Q8KdgOHyTIb+oN5bt1bHpGwXf/vNj8HUrMgLTPqDioiQ1eBf7KAoiFR2zLDcwecuIa+t7TluwWGYR+m9rzA4ghBJ5iZsdwJqknTOi4mHXJ0HtARirSFPaHPBXL1KyZjxYJaSwJh5izfLind6Vpr9KPN18QcHuVG8GizwuetHvkllLGJuoi6sGeG/eObVOI3NJkAhoY154U58DxDm/F6suBsH7TdDa8wy2tA3fQ6YlC9NOXTGgF0TuGI+bD1SyTEX3M0aAXOM1NHtJU7n0ZywCkYmwWjBz30PNV21NvJzuSeO0EfLBzLSaFI8HQybXkJbo+4tZ/tLMW0krl0QcGMLniY2CkXc+kC1c9lJPUyS1OcetH6+4SiDIMPmf4dGpT+0lgaIX3TQmvUXIL7tS5MjYlzg7gjwTfSQF3xN9z0aDhTy1PUXKarOmnpnCoJzWDUmgLFgLBZGF0hcDmELWGhtiVWVYyHIcbCnNNabPDKOwolTaRtHq1FxLnabcBlpslwVCMGezrNyo69hvxMhe7NKq2yCuzowiK1zpsqmSSnl5yFGAIM7kBRVJ1H68B2DYvgp5cBwwNf58z3A5yua4hje1NQxjHTqlC3Bed2VIAx6JNYZTRNUNy1A2UYw6GIJmxFftcFSGvDF8JELCgYOq0S75NO7UvgzpwS72R8qv8/ZWop8DTbmR5fknemaluT2kvj5fRFJLLje6ss2UCcubWuqSZOMX53Uj4XDH+0nxTziHBunKMpfIOWCGTtjU0KwgfbJPYIawXWuUKzqHiBn+9NQxjAUFssWiW8m2z0WSihRldm5Q/ElaZpXEz/6FMhmihnSOm+CF/mw3DTbBjZdrj6CLXi3E5041VrkdJWbsdN3SXA6E78nQk8jJVwWuBLIXHTLNl9S9Ec04PI8pHWKvfRbYEEcvuS8CixfoyRS1PbcJa+8F+wBL2m181vTnDqPM0v3FlG1+IX+QKnipndmk/ZksMe4W/ANBlflVJJs2W7StlP4oAHehqJJ3NiUn8MSXwN4xO/eAtQGNcsGjSN/bzqTf4DMn7D4rLAvbO91851AIa6CmB9wgvHx0e30ekd9TiPUo9cwMH+3uBFFLT571cSLcAO8roTkUFVIjoWj5N7XieKjDzA4dPtYd3b+jiPZCB+xaTSDirhaBFZnWFuWhNLdP3Sb/diemM6EMb2ms3QNzgeGsc+dOUKGM1ktsSZMgjAqTjuIn5idqksZYIGnp6A8MItr205EY/N+dkKcxzX0bLo3kLK9I8hiEr5BNFrh+KEfgwopR5JhgOTPkq5+gBK/QFjy4GFftODSX9ILqqJg5X/TGjj1R8yV3cYSdoPqRDXLMCAGUNSBtJGzhgsO/Y4jyg+xbxXE4/UhoiespQF77gOa0e7eWi0s/FkrD9WNG0CW882fBvwlNxvvFfyzRgorU/HptUVBG6zdODOGk83i2jQkJ/09x4uccbM/F6NH7EINuHhNEZktuOlMlO0SkxXYfnHZpoRBlaYybU5t2wpfL9lQyThV1L6NUm34kZThkF9C91FPjq0dLTEeyeea4Zle02yhLzFiaaEfORJyjLFIrtJa9XA0Uow6UZAnjseLcPmbjwh94VHlsZGJvFhyLlaFp2fuFnzDo/N8PQNxE4Sv5tiJNcw3WJ05d/Mzi2K0n03poX0KACac1zyGqKn2QyqF6wS7MV+zr3Ffc5W5pn9sNl7vLq9ZZrziinM8xgi12CwVt16W+ucAf8z04VDZ2xY+BrLXtdGBSPi9wrCaqp7RnE87+gFdANgfrM75R4c7dvjxeDKy9T7IFTkqpPoAXYQiJZlrB3kA4/TjEKfHyvEPMjQ8/9oogUz+xaPZ4rkdhWwV3hy27QQUIXFY31wI1PasqxWgZv0xJ31xJ13xv3QajQbpCI/82OJnMLpHwJG11x3p1i4shPunlAdMbY+mDQ74SadcT/xlUw/yfthJ12wCVtxPGJgw35XmVR1CLBmupkxBU53VCE5e4Jdu6a1N/jU1l1rz5B4AuZARroHljjTAMIHFadYVUBjqegcRrgofTqgIKykRANWm7VhSMLHsnbdtYLhX+yd4fYTuTUr3ZK8TFkk6wIn7BA84rk3y4CZBY38HByV/9CefZZqa1Lfl8YJ/XyCfkewgYfsgze+EV67KWnwCyZouIcpJvqubXp6Dx4JM7UHUTRkQsZPvlpZHKKVgpsUaIrDDQU11B6PcKoPHFdt7I03bXa7mAqW41X3yDo3lSmmJL/vwBFhASlaZ0jsXfm6MfThLpmtsXarWZdaWwJP3MEp9za1p9FUGY8NLHuHwdEZkWHpAMndYxfT4lC6Wk739fkD6OMCDguCJSBoA4IClZL1lcDRBKiPmgie8rc3xdFw+kwjeHIM+OwY8Pkx4M9dwLDLEephqUG/cXOaBJxi241gdIG+4kXW43VXMcosk0FYzgZhOR+E5fMgLF8GYfnan+USwwljIWfLACtK/kQvqslwVGfDUZ0PQTVlefBuPZhz8PpuYJkMwnI2CMv5kSxwXGOqMvSUXAmcQrK3XWhuFO41mYyfKrRZTYG1ki5oNfaSB2hC6bslXXbkMUtOTIXkCwSfOD/vaNHt0ykmoqEaniUbpOlZskEanyYLB3zLcLiXhOpJgh1RuSzNZBias2Fozoeh+TwMzZdhaL52pzEGUM0iQB1kRM61k/HD1QkeK5NuTjntucUb3rj/tprpZ8605QWTue7CtACZEpkVMuFND5kWP3MmIwfedJDpkq3XNBgIMnvlDFVLdMVZ0HaSDRPKa4knt0sAoRsm4wvsLhYye9Oj0RIfhHRISpdp4+kRO8y0lcR7L3nwnGCMOLdFAsNyFfA3490RiFWHF8OdweQFbLdrOSJxvmjOlJkv6jLjZBjmZqunZ7Og8kSzaixkPM4YUa53yfEfsR6TCvKKsRd7//4P";
@@ -3719,11 +3719,11 @@ this.addBootstrapPalette();this.addDFDPalette();this.addErPalette();this.addIos7
this.addCumulusPalette();this.addCitrixPalette();this.addGCP2Palette();this.addIBMPalette();this.addNetworkPalette();this.addOfficePalette();this.addRackPalette(d,b);this.addVeeamPalette();this.addVeeam2Palette();this.addVVDPalette();this.addArchimate3Palette();this.addArchiMatePalette();this.addBpmn2Palette();this.addSysMLPalette(p,b);this.addLeanMappingPalette();this.addCabinetsPalette();this.addInfographicPalette();this.addEipPalette();this.addElectricalPalette();this.addFloorplanPalette();this.addFluidPowerPalette();
this.addGMDLPalette();this.addPidPalette(e,b);this.addThreatModelingPalette();this.addWebIconsPalette();this.addWebLogosPalette();this.addSignsPalette(c,b);this.showEntries();null!=this.createdSearchIndex&&console.log("searchFileData",Graph.compress(JSON.stringify(this.createdSearchIndex)))};if("1"==urlParams.createindex){var e=Sidebar.prototype.addStencilPalette;Sidebar.prototype.addStencilPalette=function(a,b,d,c,l,m,p,n,q,r){e.apply(this,arguments);p=null!=p?p:1;mxStencilRegistry.loadStencilSet(d,
mxUtils.bind(this,function(b,d,e,f,g){if(null!=this.createdSearchIndex&&null==l||0>mxUtils.indexOf(l,d))b={style:"shape="+b+d+c,w:Math.round(f*p),h:Math.round(g*p)},d=null!=n?n[d]:null,null!=d&&(b.tags=d),null!=r&&(b.id=r,b.lib=a),this.createdSearchIndex.push(b)}),!0)}}Sidebar.prototype.extractIconsFromResponse=function(a,b){for(var d=0;d<a.icons.length;d++){for(var c=a.icons[d].raster_sizes,e=c.length-1;0<e&&128<c[e].size;)e--;var f=c[e].size,c=c[e].formats[0].preview_url;null!=f&&null!=c&&mxUtils.bind(this,
-function(a,d){b.push(mxUtils.bind(this,function(){return this.createVertexTemplate("shape=image;html=1;verticalAlign=top;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;imageAspect=0;aspect=fixed;image="+d,a,a,"")}))})(f,c)}};var b=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(a,d,c,e,l){var f=e;null!=this.searchIndexData&&(this.addSearchIndex(JSON.parse(Graph.decompress(this.searchIndexData))),this.searchFileData=null);this.editorUi.isOffline()||0!=c||EditorUi.logEvent({category:"Shape",
-action:"search",label:a});null!=ICONSEARCH_PATH&&(e=mxUtils.bind(this,function(b,e,g,h){!this.editorUi.isOffline()&&b.length<=d/4?(g=c-Math.ceil((e-d/4)/d),mxUtils.get(ICONSEARCH_PATH+"?q="+encodeURIComponent(a)+"&p="+g+"&c="+d,mxUtils.bind(this,function(a){try{if(200<=a.getStatus()&&299>=a.getStatus())if(null!=a.getText()&&0<a.getText().length)try{var g=JSON.parse(a.getText());null==g||null==g.icons?(f(b,e,!1,h),this.editorUi.handleError(g)):(this.extractIconsFromResponse(g,b),f(b,(c-1)*d+b.length,
-g.icons.length==d,h))}catch(v){f(b,e,!1,h),this.editorUi.handleError(v)}else f(b,e,!1,h);else f(b,e,!1,h),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(v){f(b,e,!1,h),this.editorUi.handleError(v)}},function(){f(b,e,!1,h)}))):f(b,e,g||!this.editorUi.isOffline(),h)}));b.apply(this,arguments)};var d=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(a,b,c){var e=this.editorUi.editor.graph,f=!1;if(null!=a&&1==e.getSelectionCount()&&e.getModel().isVertex(a[0])){var g=
-e.cloneCell(a[0]);if(e.getModel().isEdge(e.getSelectionCell())&&null==e.getModel().getTerminal(e.getSelectionCell(),!1)&&e.getModel().isVertex(g)){e.getModel().beginUpdate();try{var h=e.view.getState(e.getSelectionCell());if(null!=h){var n=e.view.translate,q=e.view.scale,r=h.absolutePoints[h.absolutePoints.length-1];g.geometry.x=r.x/q-n.x-g.geometry.width/2;g.geometry.y=r.y/q-n.y-g.geometry.height/2}e.addCell(g);e.getModel().setTerminal(e.getSelectionCell(),g,!1);null!=c&&mxEvent.isShiftDown(c)||
-e.fireEvent(new mxEventObject("cellsInserted","cells",[g]))}catch(u){this.editorUi.handleError(u)}finally{e.getModel().endUpdate()}e.scrollCellToVisible(g);e.setSelectionCell(g);f=!0}}f||d.apply(this,arguments)}})();(function(){Sidebar.prototype.addActiveDirectoryPalette=function(){this.setCurrentSearchEntryLibrary("active_directory");var a=[this.createVertexTemplateEntry("aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image;image=img/lib/active_directory/active_directory.svg;",50,42.5,"","Active Directory",!1,null,this.getTagsForStencil("ms active directory ","active directory","ibm").join(" ")),this.createVertexTemplateEntry("aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image;image=img/lib/active_directory/cd_dvd.svg;",
+function(a,d){b.push(mxUtils.bind(this,function(){return this.createVertexTemplate("shape=image;html=1;verticalAlign=top;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;imageAspect=0;aspect=fixed;image="+d,a,a,"")}))})(f,c)}};var b=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(a,d,c,e,l){var f=e;null!=this.searchIndexData&&(this.addSearchIndex(JSON.parse(Graph.decompress(this.searchIndexData))),this.searchFileData=null);null!=ICONSEARCH_PATH&&(e=mxUtils.bind(this,
+function(b,e,g,h){!this.editorUi.isOffline()&&b.length<=d/4?(g=c-Math.ceil((e-d/4)/d),mxUtils.get(ICONSEARCH_PATH+"?q="+encodeURIComponent(a)+"&p="+g+"&c="+d,mxUtils.bind(this,function(a){try{if(200<=a.getStatus()&&299>=a.getStatus())if(null!=a.getText()&&0<a.getText().length)try{var g=JSON.parse(a.getText());null==g||null==g.icons?(f(b,e,!1,h),this.editorUi.handleError(g)):(this.extractIconsFromResponse(g,b),f(b,(c-1)*d+b.length,g.icons.length==d,h))}catch(v){f(b,e,!1,h),this.editorUi.handleError(v)}else f(b,
+e,!1,h);else f(b,e,!1,h),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(v){f(b,e,!1,h),this.editorUi.handleError(v)}},function(){f(b,e,!1,h)}))):f(b,e,g||!this.editorUi.isOffline(),h)}));b.apply(this,arguments)};var d=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(a,b,c){var e=this.editorUi.editor.graph,f=!1;if(null!=a&&1==e.getSelectionCount()&&e.getModel().isVertex(a[0])){var g=e.cloneCell(a[0]);if(e.getModel().isEdge(e.getSelectionCell())&&null==
+e.getModel().getTerminal(e.getSelectionCell(),!1)&&e.getModel().isVertex(g)){e.getModel().beginUpdate();try{var h=e.view.getState(e.getSelectionCell());if(null!=h){var n=e.view.translate,q=e.view.scale,r=h.absolutePoints[h.absolutePoints.length-1];g.geometry.x=r.x/q-n.x-g.geometry.width/2;g.geometry.y=r.y/q-n.y-g.geometry.height/2}e.addCell(g);e.getModel().setTerminal(e.getSelectionCell(),g,!1);null!=c&&mxEvent.isShiftDown(c)||e.fireEvent(new mxEventObject("cellsInserted","cells",[g]))}catch(u){this.editorUi.handleError(u)}finally{e.getModel().endUpdate()}e.scrollCellToVisible(g);
+e.setSelectionCell(g);f=!0}}f||d.apply(this,arguments)}})();(function(){Sidebar.prototype.addActiveDirectoryPalette=function(){this.setCurrentSearchEntryLibrary("active_directory");var a=[this.createVertexTemplateEntry("aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image;image=img/lib/active_directory/active_directory.svg;",50,42.5,"","Active Directory",!1,null,this.getTagsForStencil("ms active directory ","active directory","ibm").join(" ")),this.createVertexTemplateEntry("aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image;image=img/lib/active_directory/cd_dvd.svg;",
50,50,"","CD / DVD",!1,null,this.getTagsForStencil("ms active directory ","cd dvd compact digital video disc","ibm").join(" ")),this.createVertexTemplateEntry("aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image;image=img/lib/active_directory/cell_phone.svg;",21,50,"","Cell Phone",!1,null,this.getTagsForStencil("ms active directory ","cell phone","ibm").join(" ")),this.createVertexTemplateEntry("aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image;image=img/lib/active_directory/cluster_server.svg;",
50,50,"","Cluster Server",!1,null,this.getTagsForStencil("ms active directory ","active","ibm").join(" ")),this.createVertexTemplateEntry("aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image;image=img/lib/active_directory/community_discussion.svg;",50,45,"","Community Discussion",!1,null,this.getTagsForStencil("ms active directory ","community discussion","ibm").join(" ")),this.createVertexTemplateEntry("aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image;image=img/lib/active_directory/data_jack.svg;",
50*.55,50,"","Data Jack",!1,null,this.getTagsForStencil("ms active directory ","data jack","ibm").join(" ")),this.createVertexTemplateEntry("aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image;image=img/lib/active_directory/database.svg;",50,37,"","Database",!1,null,this.getTagsForStencil("ms active directory ","database","ibm").join(" ")),this.createVertexTemplateEntry("aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image;image=img/lib/active_directory/database_cube.svg;",
@@ -10181,118 +10181,118 @@ e,b+c-k),this.quadTo(a+e,b+c,a+e-d,b+c),this.lineTo(a+d,b+c),this.quadTo(a,b+c,a
this.passThrough=!1}};a.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};a.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};a.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!0))};a.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;
this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;this.canvas.rect=this.originalRect;this.canvas.ellipse=this.originalEllipse;
this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(b){return new a(b,Editor.createRoughCanvas(b),this)};var b=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0")?b.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(a):this.createRoughCanvas(a)};var e=mxShape.prototype.paint;
-mxShape.prototype.paint=function(b){var c=b.addTolerance,d=null,k=!0;null!=this.style&&(k="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),d=mxUtils.getValue(this.style,"fillStyle","auto"),null!=this.state&&"auto"==d&&(d=this.state.view.graph.defaultPageBackgroundColor,null!=this.fill&&(null!=this.gradient||null!=d&&this.fill.toLowerCase()==d.toLowerCase())&&(d="solid")));if(k&&null!=b.handJiggle&&b.handJiggle.constructor==a&&!this.outline){b.save();k=this.fill;d=this.stroke;
-this.stroke=this.fill=null;var l=b.setStrokeColor;b.setStrokeColor=function(){};var f=b.setFillColor;b.setFillColor=function(){};b.handJiggle.passThrough=!0;e.apply(this,arguments);b.handJiggle.passThrough=!1;b.setFillColor=f;b.setStrokeColor=l;this.stroke=d;this.fill=k;b.restore();b.addTolerance=function(){}}e.apply(this,arguments);b.addTolerance=c};var c=mxShape.prototype.paintGlassEffect;mxShape.prototype.paintGlassEffect=function(b,e,d,k,l,f){null!=b.handJiggle&&b.handJiggle.constructor==a?(b.handJiggle.passThrough=
-!0,c.apply(this,arguments),b.handJiggle.passThrough=!1):c.apply(this,arguments)}})();Editor.fastCompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:Graph.arrayBufferToString(pako.deflateRaw(a))};Editor.fastDecompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.inflateRaw(Graph.stringToArrayBuffer(atob(a)),{to:"string"})};Editor.extractGraphModel=function(a,b,e){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),
-d=[];if(null!=c&&0<c.length)for(var k=0;k<c.length;k++)if("mxgraph"==c[k].getAttribute("class")){d.push(c[k]);break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(a=mxUtils.parseXml(d.xml),a=a.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=Graph.decompress(c,null,e),0<c.length&&(a=mxUtils.parseXml(c),a=a.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),null!=c&&"<"!=
-c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==a||b||(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(d=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=d&&(a=Editor.parseDiagramNode(d,e)));null==a||"mxGraphModel"==a.nodeName||
-b&&"mxfile"==a.nodeName||(a=null);return a};Editor.parseDiagramNode=function(a,b){var e=mxUtils.trim(mxUtils.getTextContent(a)),c=null;0<e.length?(e=Graph.decompress(e,null,b),null!=e&&0<e.length&&(c=mxUtils.parseXml(e).documentElement)):(e=mxUtils.getChildNodes(a),0<e.length&&(c=mxUtils.createXmlDocument(),c.appendChild(c.importNode(e[0],!0)),c=c.documentElement));return c};Editor.getDiagramNodeXml=function(a){var b=mxUtils.getTextContent(a),e=null;0<b.length?e=Graph.decompress(b):null!=a.firstChild&&
-(e=mxUtils.getXml(a.firstChild));return e};Editor.extractGraphModelFromPdf=function(a){a=a.substring(a.indexOf(",")+1);a=window.atob&&!mxClient.IS_SF?atob(a):Base64.decode(a,!0);if("%PDF-1.7"==a.substring(0,8)){var b=a.indexOf("EmbeddedFile");if(-1<b){var e=a.indexOf("stream",b)+9;if(0<a.substring(b,e).indexOf("application#2Fvnd.jgraph.mxfile"))return b=a.indexOf("endstream",e-1),pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(e,b)),{to:"string"})}return null}for(var e=null,b="",c=0,d=0,k=[],
-l=null;d<a.length;){var f=a.charCodeAt(d),d=d+1;10!=f&&(b+=String.fromCharCode(f));f=="/Subject (%3Cmxfile".charCodeAt(c)?c++:c=0;if(19==c){var g=a.indexOf("%3C%2Fmxfile%3E)",d)+15,d=d-9;if(g>d){e=a.substring(d,g);break}}10==f&&("endobj"==b?l=null:"obj"==b.substring(b.length-3,b.length)||"xref"==b||"trailer"==b?(l=[],k[b.split(" ")[0]]=l):null!=l&&l.push(b),b="")}null==e&&(e=Editor.extractGraphModelFromXref(k));null!=e&&(e=decodeURIComponent(e.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return e};
-Editor.extractGraphModelFromXref=function(a){var b=a.trailer,e=null;null!=b&&(b=/.* \/Info (\d+) (\d+) R/g.exec(b.join("\n")),null!=b&&0<b.length&&(b=a[b[1]],null!=b&&(b=/.* \/Subject (\d+) (\d+) R/g.exec(b.join("\n")),null!=b&&0<b.length&&(a=a[b[1]],null!=a&&(a=a.join("\n"),e=a.substring(1,a.length-1))))));return e};Editor.extractGraphModelFromPng=function(a){var b=null;try{var e=a.substring(a.indexOf(",")+1),c=window.atob&&!mxClient.IS_SF?atob(e):Base64.decode(e,!0);EditorUi.parsePng(c,mxUtils.bind(this,
-function(a,e,d){a=c.substring(a+8,a+8+d);"zTXt"==e?(d=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,d)&&(a=pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(d+2)),{to:"string"}).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==e&&(a=a.split(String.fromCharCode(0)),1<a.length&&("mxGraphModel"==a[0]||"mxfile"==a[0])&&(b=a[1]));if(null!=b||"IDAT"==e)return!0}))}catch(J){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));
-return b};Editor.extractParserError=function(a,b){var e=null,c=null!=a?a.getElementsByTagName("parsererror"):null;null!=c&&0<c.length&&(e=b||mxResources.get("invalidChars"),c=c[0].getElementsByTagName("div"),0<c.length&&(e=mxUtils.getTextContent(c[0])));return null!=e?mxUtils.trim(e):e};Editor.addRetryToError=function(a,b){if(null!=a){var e=null!=a.error?a.error:a;null==e.retry&&(e.retry=b)}};Editor.configure=function(a,b){if(null!=a){Editor.config=a;Editor.configVersion=a.version;Menus.prototype.defaultFonts=
-a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=a.autosaveDelay||DrawioFile.prototype.autosaveDelay;
-null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);null!=a.styles&&(Editor.styles=a.styles);null!=a.globalVars&&(Editor.globalVars=a.globalVars);null!=a.compressXml&&(Editor.compressXml=a.compressXml);null!=a.simpleLabels&&(Editor.simpleLabels=a.simpleLabels);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&
-(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));if(null!=a.css){var e=document.createElement("style");e.setAttribute("type","text/css");e.appendChild(document.createTextNode(a.css));var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(e,c)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&
-(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);null!=a.zoomFactor&&(e=parseFloat(a.zoomFactor),!isNaN(e)&&1<e&&(Graph.prototype.zoomFactor=e));null!=a.gridSteps&&
-(e=parseInt(a.gridSteps),!isNaN(e)&&0<e&&(mxGraphView.prototype.gridSteps=e));a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(e=parseInt(a.autosaveDelay),
-!isNaN(e)&&0<e?DrawioFile.prototype.autosaveDelay=e:EditorUi.debug("Invalid autosaveDelay: "+a.autosaveDelay));if(null!=a.plugins&&!b)for(App.initPluginCallback(),e=0;e<a.plugins.length;e++)mxscript(a.plugins[e]);null!=a.maxImageBytes&&(EditorUi.prototype.maxImageBytes=a.maxImageBytes);null!=a.maxImageSize&&(EditorUi.prototype.maxImageSize=a.maxImageSize)}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var b=document.getElementsByTagName("script")[0];if(null!=b&&null!=
-b.parentNode){var e=document.createElement("style");e.setAttribute("type","text/css");e.appendChild(document.createTextNode(a));b.parentNode.insertBefore(e,b);a=a.split("url(");for(e=1;e<a.length;e++){var c=a[e].indexOf(")"),c=Editor.trimCssUrl(a[e].substring(0,c)),d=document.createElement("link");d.setAttribute("rel","preload");d.setAttribute("href",c);d.setAttribute("as","font");d.setAttribute("crossorigin","");b.parentNode.insertBefore(d,b)}}}};Editor.trimCssUrl=function(a){return a.replace(RegExp("^[\\s\"']+",
-"g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var b=[],e=0;e<a;e++)b.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return b.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=
-null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(b){b=null!=b&&"mxlibrary"!=b.nodeName?this.extractGraphModel(b):null;if(null!=b){var e=b.getElementsByTagName("parsererror");if(null!=e&&0<e.length){var e=e[0],c=e.getElementsByTagName("div");null!=c&&0<c.length&&(e=c[0]);throw{message:mxUtils.getTextContent(e)};}if("mxGraphModel"==b.nodeName){e=b.getAttribute("style")||
-"default-style2";if("1"==urlParams.embed||null!=e&&""!=e)e!=this.graph.currentStyle&&(c=null!=this.graph.themes?this.graph.themes[e]:mxUtils.load(STYLE_PATH+"/"+e+".xml").getDocumentElement(),null!=c&&(d=new mxCodec(c.ownerDocument),d.decode(c,this.graph.getStylesheet())));else if(c=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=c){var d=new mxCodec(c.ownerDocument);d.decode(c,this.graph.getStylesheet())}this.graph.currentStyle=
-e;this.graph.mathEnabled="1"==urlParams.math||"1"==b.getAttribute("math");e=b.getAttribute("backgroundImage");null!=e?(e=JSON.parse(e),this.graph.setBackgroundImage(new mxImage(e.src,e.width,e.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==
-b.getAttribute("shadow"),!1);if(e=b.getAttribute("extFonts"))try{for(e=e.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}}),c=0;c<e.length;c++)this.graph.addExtFont(e[c].name,e[c].url)}catch(J){console.log("ExtFonts format error: "+J.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var d=Editor.prototype.getGraphXml;
-Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var b=d.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&b.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));b.setAttribute("math",this.graph.mathEnabled?"1":"0");b.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var e=this.graph.extFonts.map(function(a){return a.name+
-"^"+a.url});b.setAttribute("extFonts",e.join("|"))}return b};Editor.prototype.isDataSvg=function(a){try{var b=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=b&&(null!=b&&"<"!=b.charAt(0)&&"%"!=b.charAt(0)&&(b=unescape(window.atob?atob(b):Base64.decode(cont,b))),null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b)),null!=b&&0<b.length)){var e=mxUtils.parseXml(b).documentElement;return"mxfile"==e.nodeName||"mxGraphModel"==e.nodeName}}catch(Z){}return!1};Editor.prototype.extractGraphModel=
-function(a,b,e){return Editor.extractGraphModel.apply(this,arguments)};var c=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();c.apply(this,arguments)};
-var b=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){b.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";
-Editor.initMath=function(a,b){if("undefined"===typeof window.MathJax){a=(null!=a?a:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":"SVG")+"-full";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};var e=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";b=null!=b?b:{"HTML-CSS":{availableFonts:[e],imageFont:null},
-SVG:{font:e,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b);MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};
-Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var c=Editor.prototype.init;Editor.prototype.init=function(){c.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};e=document.getElementsByTagName("script");if(null!=e&&0<e.length){var d=document.createElement("script");d.setAttribute("type","text/javascript");d.setAttribute("src",
-a);e[0].parentNode.appendChild(d)}try{if(mxClient.IS_GC||mxClient.IS_SF){var k=document.createElement("style");k.type="text/css";k.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(k)}}catch(S){}}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
-var b=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,e,c,d){void 0!==e?b.push(e.replace(/\\'/g,"'")):void 0!==c?b.push(c.replace(/\\"/g,'"')):void 0!==d&&b.push(d);return""});/,\s*$/.test(a)&&b.push("");return b};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));
-return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)};Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,e=this;a.convert=function(c){if(null!=c){var d="http://"==c.substring(0,7)||"https://"==c.substring(0,8);d&&!navigator.onLine?c=Editor.svgBrokenImage.src:!d||c.substring(0,a.baseUrl.length)==a.baseUrl||e.crossOriginImages&&e.isCorsEnabledForUrl(c)?"chrome-extension://"==c.substring(0,
-19)||mxClient.IS_CHROMEAPP||(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c)}return c};return a};Editor.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};Editor.prototype.convertImageToDataUri=function(a,b){try{var e=!0,c=window.setTimeout(mxUtils.bind(this,function(){e=!1;b(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(c);e&&b(Editor.createSvgDataUri(a.getText()))}),
-function(){window.clearTimeout(c);e&&b(Editor.svgBrokenImage.src)});else{var d=new Image;this.crossOriginImages&&(d.crossOrigin="anonymous");d.onload=function(){window.clearTimeout(c);if(e)try{var a=document.createElement("canvas"),k=a.getContext("2d");a.height=d.height;a.width=d.width;k.drawImage(d,0,0);b(a.toDataURL())}catch(Y){b(Editor.svgBrokenImage.src)}};d.onerror=function(){window.clearTimeout(c);e&&b(Editor.svgBrokenImage.src)};d.src=a}}catch(R){b(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=
-function(a,b,e,c){null==c&&(c=this.createImageUrlConverter());var d=0,k=e||{};e=mxUtils.bind(this,function(e,l){for(var f=a.getElementsByTagName(e),g=0;g<f.length;g++)mxUtils.bind(this,function(e){try{if(null!=e){var f=c.convert(e.getAttribute(l));if(null!=f&&"data:"!=f.substring(0,5)){var g=k[f];null==g?(d++,this.convertImageToDataUri(f,function(c){null!=c&&(k[f]=c,e.setAttribute(l,c));d--;0==d&&b(a)})):e.setAttribute(l,g)}else null!=f&&e.setAttribute(l,f)}}catch(da){}})(f[g])});e("image","xlink:href");
-e("img","src");0==d&&b(a)};Editor.base64Encode=function(a){for(var b="",e=0,c=a.length,d,k,l;e<c;){d=a.charCodeAt(e++)&255;if(e==c){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4);b+="==";break}k=a.charCodeAt(e++);if(e==c){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&
-3)<<4|(k&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2);b+="=";break}l=a.charCodeAt(e++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4|(k&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2|(l&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return b};
-Editor.prototype.loadUrl=function(a,b,e,c,d,k,l,f){try{var g=!l&&(c||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));d=null!=d?d:!0;var p=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var c=a.getText();if(g){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();
-for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=String.fromCharCode(a[d]);c=c.join("")}k=null!=k?k:"data:image/png;base64,";c=k+Editor.base64Encode(c)}b(c)}}else null!=e&&(0==a.getStatus()?e({message:mxResources.get("accessDenied")},a):e({message:mxResources.get("error")+" "+a.getStatus()},a))}),function(a){null!=e&&e({message:mxResources.get("error")+" "+a.getStatus()})},g,this.timeout,function(){d&&null!=e&&e({code:App.ERROR_TIMEOUT,retry:p})},f)});p()}catch(X){null!=e&&e(X)}};Editor.prototype.absoluteCssFonts=
-function(a){var b=null;if(null!=a){var e=a.split("url(");if(0<e.length){b=[e[0]];a=window.location.pathname;var c=null!=a?a.lastIndexOf("/"):-1;0<=c&&(a=a.substring(0,c+1));var c=document.getElementsByTagName("base"),d=null;null!=c&&0<c.length&&(d=c[0].getAttribute("href"));for(var k=1;k<e.length;k++)if(c=e[k].indexOf(")"),0<c){var l=Editor.trimCssUrl(e[k].substring(0,c));this.graph.isRelativeUrl(l)&&(l=null!=d?d+l:window.location.protocol+"//"+window.location.hostname+("/"==l.charAt(0)?"":a)+l);
-b.push('url("'+l+'"'+e[k].substring(c))}else b.push(e[k])}else b=[a]}return null!=b?b.join(""):null};Editor.prototype.embedCssFonts=function(a,b){var e=a.split("url("),c=0;null==this.cachedFonts&&(this.cachedFonts={});var d=mxUtils.bind(this,function(){if(0==c){for(var a=[e[0]],d=1;d<e.length;d++){var k=e[d].indexOf(")");a.push('url("');a.push(this.cachedFonts[Editor.trimCssUrl(e[d].substring(0,k))]);a.push('"'+e[d].substring(k))}b(a.join(""))}});if(0<e.length){for(var k=1;k<e.length;k++){var l=e[k].indexOf(")"),
-f=null,g=e[k].indexOf("format(",l);0<g&&(f=Editor.trimCssUrl(e[k].substring(g+7,e[k].indexOf(")",g))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=a;c++;var b="application/x-font-ttf";if("svg"==f||/(\.svg)($|\?)/i.test(a))b="image/svg+xml";else if("otf"==f||"embedded-opentype"==f||/(\.otf)($|\?)/i.test(a))b="application/x-font-opentype";else if("woff"==f||/(\.woff)($|\?)/i.test(a))b="application/font-woff";else if("woff2"==f||/(\.woff2)($|\?)/i.test(a))b="application/font-woff2";
-else if("eot"==f||/(\.eot)($|\?)/i.test(a))b="application/vnd.ms-fontobject";else if("sfnt"==f||/(\.sfnt)($|\?)/i.test(a))b="application/font-sfnt";var e=a;/^https?:\/\//.test(e)&&!this.isCorsEnabledForUrl(e)&&(e=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(e,mxUtils.bind(this,function(b){this.cachedFonts[a]=b;c--;d()}),mxUtils.bind(this,function(a){c--;d()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(Editor.trimCssUrl(e[k].substring(0,l)),f)}d()}else b(a)};Editor.prototype.loadFonts=
-function(a){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(b){this.resolvedFontCss=b;a()})):a()};Editor.prototype.embedExtFonts=function(a){var b=this.graph.getCustomFonts();if(0<b.length){var e="",c=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var d=mxUtils.bind(this,function(){0==c&&this.embedCssFonts(e,a)}),k=0;k<b.length;k++)mxUtils.bind(this,function(a,b){Graph.isCssFontUrl(b)?null==this.cachedGoogleFonts[b]?(c++,this.loadUrl(b,
-mxUtils.bind(this,function(a){this.cachedGoogleFonts[b]=a;e+=a;c--;d()}),mxUtils.bind(this,function(a){c--;e+="@import url("+b+");";d()}))):e+=this.cachedGoogleFonts[b]:e+='@font-face {font-family: "'+a+'";src: url("'+b+'")}'})(b[k].name,b[k].url);d()}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var b=document.getElementsByTagName("style"),e=0;e<b.length;e++)0<mxUtils.getTextContent(b[e]).indexOf("MathJax")&&a[0].appendChild(b[e].cloneNode(!0))};
-Editor.prototype.addFontCss=function(a,b){b=null!=b?b:this.absoluteCssFonts(this.fontCss);if(null!=b){var e=a.getElementsByTagName("defs"),c=a.ownerDocument;0==e.length?(e=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"defs"):c.createElement("defs"),null!=a.firstChild?a.insertBefore(e,a.firstChild):a.appendChild(e)):e=e[0];c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"style"):c.createElement("style");c.setAttribute("type","text/css");mxUtils.setTextContent(c,b);e.appendChild(c)}};
-Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,b,e){var c=mxClient.IS_FF?8192:16384;return Math.min(e,Math.min(c/a,c/b))};Editor.prototype.exportToCanvas=function(a,b,e,c,d,k,l,f,g,p,q,m,t,n,u,z,B,x){try{k=null!=k?k:!0;l=null!=l?l:!0;m=null!=m?m:this.graph;t=null!=t?t:0;var v=g?null:m.background;v==mxConstants.NONE&&(v=null);null==v&&(v=c);null==v&&0==g&&(v=z?this.graph.defaultPageBackgroundColor:"#ffffff");
-this.convertImages(m.getSvg(null,null,t,n,null,l,null,null,null,p,null,z,B,x),mxUtils.bind(this,function(e){try{var c=new Image;c.onload=mxUtils.bind(this,function(){try{var l=function(){mxClient.IS_SF?window.setTimeout(function(){n.drawImage(c,0,0);a(g,e)},0):(n.drawImage(c,0,0),a(g,e))},g=document.createElement("canvas"),p=parseInt(e.getAttribute("width")),q=parseInt(e.getAttribute("height"));f=null!=f?f:1;null!=b&&(f=k?Math.min(1,Math.min(3*b/(4*q),b/p)):b/p);f=this.getMaxCanvasScale(p,q,f);p=
-Math.ceil(f*p);q=Math.ceil(f*q);g.setAttribute("width",p);g.setAttribute("height",q);var n=g.getContext("2d");null!=v&&(n.beginPath(),n.rect(0,0,p,q),n.fillStyle=v,n.fill());1!=f&&n.scale(f,f);if(u){var z=m.view,B=z.scale;z.scale=1;var x=btoa(unescape(encodeURIComponent(z.createSvgGrid(z.gridColor))));z.scale=B;var x="data:image/svg+xml;base64,"+x,C=m.gridSize*z.gridSteps*f,y=m.getGraphBounds(),M=z.translate.x*B,G=z.translate.y*B,A=M+(y.x-M)/B-t,H=G+(y.y-G)/B-t,K=new Image;K.onload=function(){try{for(var a=
--Math.round(C-mxUtils.mod((M-A)*f,C)),b=-Math.round(C-mxUtils.mod((G-H)*f,C));a<p;a+=C)for(var e=b;e<q;e+=C)n.drawImage(K,a/f,e/f);l()}catch(ra){null!=d&&d(ra)}};K.onerror=function(a){null!=d&&d(a)};K.src=x}else l()}catch(qa){null!=d&&d(qa)}});c.onerror=function(a){null!=d&&d(a)};p&&this.graph.addSvgShadow(e);this.graph.mathEnabled&&this.addMathCss(e);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(e,this.resolvedFontCss),c.src=Editor.createSvgDataUri(mxUtils.getXml(e))}catch(ia){null!=
-d&&d(ia)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(e,a),this.loadFonts(l)}catch(P){null!=d&&d(P)}}))}catch(ia){null!=d&&d(ia)}}),e,q)}catch(U){null!=d&&d(U)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var f=g,m=0;8>m;m++)f=1==(f&1)?3988292384^f>>>1:f>>>1,Editor.crcTable[g]=f;Editor.updateCRC=function(a,b,e,c){for(var d=0;d<c;d++)a=Editor.crcTable[(a^b.charCodeAt(e+d))&255]^a>>>8;return a};Editor.crc32=function(a){for(var b=-1,e=0;e<a.length;e++)b=b>>>8^Editor.crcTable[(b^
-a.charCodeAt(e))&255];return(b^-1)>>>0};Editor.writeGraphModelToPng=function(a,b,e,c,d){function k(a,b){var e=g;g+=b;return a.substring(e,g)}function l(a){a=k(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function f(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var g=0;if(k(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(k(a,
-4),"IHDR"!=k(a,4))null!=d&&d();else{k(a,17);d=a.substring(0,g);do{var p=l(a);if("IDAT"==k(a,4)){d=a.substring(0,g-8);"pHYs"==b&&"dpi"==e?(e=Math.round(c/.0254),e=f(e)+f(e)+String.fromCharCode(1)):e=e+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+c;c=4294967295;c=Editor.updateCRC(c,b,0,4);c=Editor.updateCRC(c,e,0,e.length);d+=f(e.length)+b+e+f(c^4294967295);d+=a.substring(g-8,a.length);break}d+=a.substring(g-8,g-4+p);k(a,p);k(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?
-btoa(d):Base64.encode(d,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var n=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){n.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var e=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&
-(EditDataDialog.getDisplayIdForCell=function(a,b){var e=null;null!=a.editor.graph.getModel().getParent(b)?e=b.getId():null!=a.currentPage&&(e=a.currentPage.getId());return e});if(null!=window.StyleFormatPanel){var k=Format.prototype.init;Format.prototype.init=function(){k.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var l=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?
-l.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var p=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=p.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var b=this.editorUi,e=b.editor.graph,c=this.createOption(mxResources.get("shadow"),
-function(){return e.shadowVisible},function(a){var c=new ChangePageSetup(b);c.ignoreColor=!0;c.ignoreImage=!0;c.shadowVisible=a;e.model.execute(c)},{install:function(a){this.listener=function(){a(e.shadowVisible)};b.addListener("shadowVisibleChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});Editor.shadowOptionEnabled||(c.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(c,60));a.appendChild(c)}return a};var q=DiagramFormatPanel.prototype.addOptions;
-DiagramFormatPanel.prototype.addOptions=function(a){a=q.apply(this,arguments);var b=this.editorUi,e=b.editor.graph;if(e.isEnabled()){var c=b.getCurrentFile();if(null!=c&&c.isAutosaveOptional()){var d=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a);b.editor.autosave&&c.isModified()&&c.fileChanged()},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}});
-a.appendChild(d)}}if(this.isMathOptionVisible()&&e.isEnabled()&&"undefined"!==typeof MathJax){d=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return e.mathEnabled},function(a){b.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=function(){a(e.mathEnabled)};b.addListener("mathEnabledChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});d.style.paddingTop="5px";a.appendChild(d);var k=b.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");
-k.style.position="relative";k.style.marginLeft="6px";k.style.top="2px";d.appendChild(k)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=
-[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",
-dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
-{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=
-[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line",type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity",
-type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties=[{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20},{name:"fixedSize",dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",
-type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
-{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width",type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",
-min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"startSize",dispName:"Header Size",type:"float"},
-{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",
-type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=
-[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",
-dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",
-type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",
-type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},
-{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=
-[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},
-{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=[{name:"width",dispName:"Title Width",type:"float",defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",
-stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",font:"#ffffff"},{fill:"#008a00",stroke:"#005700",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},
-{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",
-stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",
-gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,b,e){if(null!=b){var c=function(a){if(null!=a)if(e)for(var c=
-0;c<a.length;c++)b[a[c].name]=a[c];else for(var d in b){for(var k=!1,c=0;c<a.length;c++)if(a[c].name==d&&a[c].type==b[d].type){k=!0;break}k||delete b[d]}},d=this.editorUi.editor.graph.view.getState(a);null!=d&&null!=d.shape&&(d.shape.commonCustomPropAdded||(d.shape.commonCustomPropAdded=!0,d.shape.customProperties=d.shape.customProperties||[],d.cell.vertex?Array.prototype.push.apply(d.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(d.shape.customProperties,Editor.commonEdgeProperties)),
-c(d.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{c(JSON.parse(a))}catch(R){}}};var t=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"==a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));t.apply(this,arguments);if(Editor.enableCustomProperties){for(var b={},e=a.vertices,c=a.edges,d=0;d<e.length;d++)this.findCommonProperties(e[d],b,0==d);for(d=0;d<c.length;d++)this.findCommonProperties(c[d],
-b,0==e.length&&0==d);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(b).length&&this.container.appendChild(this.addProperties(this.createPanel(),b,a))}};var u=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");
-b.style.marginBottom="2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return u.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=
-function(a,b,e){function c(a,b,e,c){m.getModel().beginUpdate();try{var d=[],k=[];if(null!=e.index){for(var l=[],f=e.parentRow.nextSibling;f&&f.getAttribute("data-pName")==a;)l.push(f.getAttribute("data-pValue")),f=f.nextSibling;e.index<l.length?null!=c?l.splice(c,1):l[e.index]=b:l.push(b);null!=e.size&&l.length>e.size&&(l=l.slice(0,e.size));b=l.join(",");null!=e.countProperty&&(m.setCellStyles(e.countProperty,l.length,m.getSelectionCells()),d.push(e.countProperty),k.push(l.length))}m.setCellStyles(a,
-b,m.getSelectionCells());d.push(a);k.push(b);if(null!=e.dependentProps)for(a=0;a<e.dependentProps.length;a++){var g=e.dependentPropsDefVal[a],p=e.dependentPropsVals[a];if(p.length>b)p=p.slice(0,b);else for(var t=p.length;t<b;t++)p.push(g);p=p.join(",");m.setCellStyles(e.dependentProps[a],p,m.getSelectionCells());d.push(e.dependentProps[a]);k.push(p)}if("function"==typeof e.onChange)e.onChange(m,b);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",d,"values",k,"cells",m.getSelectionCells()))}finally{m.getModel().endUpdate()}}
-function d(b,e,c){var d=mxUtils.getOffset(a,!0),k=mxUtils.getOffset(b,!0);e.style.position="absolute";e.style.left=k.x-d.x+"px";e.style.top=k.y-d.y+"px";e.style.width=b.offsetWidth+"px";e.style.height=b.offsetHeight-(c?4:0)+"px";e.style.zIndex=5}function k(a,b,e){var d=document.createElement("div");d.style.width="32px";d.style.height="4px";d.style.margin="2px";d.style.border="1px solid black";d.style.background=b&&"none"!=b?b:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,
-function(k){this.editorUi.pickColor(b,function(b){d.style.background="none"==b?"url('"+Dialog.prototype.noColorImage+"')":b;c(a,b,e)});mxEvent.consume(k)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(d);return btn}function l(a,b,e,d,k,l,f){null!=b&&(b=b.split(","),t.push({name:a,values:b,type:e,defVal:d,countProperty:k,parentRow:l,isDeletable:!0,flipBkg:f}));btn=mxUtils.button("+",mxUtils.bind(q,function(b){for(var g=l,q=0;null!=g.nextSibling;)if(g.nextSibling.getAttribute("data-pName")==
-a)g=g.nextSibling,q++;else break;var m={type:e,parentRow:l,index:q,isDeletable:!0,defVal:d,countProperty:k},q=p(a,"",m,0==q%2,f);c(a,d,m);g.parentNode.insertBefore(q,g.nextSibling);mxEvent.consume(b)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function f(a,b,e,c,d,k,l){if(0<d){var f=Array(d);b=null!=b?b.split(","):[];for(var g=0;g<d;g++)f[g]=null!=b[g]?b[g]:null!=c?c:"";t.push({name:a,values:f,type:e,defVal:c,parentRow:k,flipBkg:l,size:d})}return document.createElement("div")}
-function g(a,b,e){var d=document.createElement("input");d.type="checkbox";d.checked="1"==b;mxEvent.addListener(d,"change",function(){c(a,d.checked?"1":"0",e)});return d}function p(b,e,p,m,t){var n=p.dispName,u=p.type,z=document.createElement("tr");z.className="gePropRow"+(t?"Dark":"")+(m?"Alt":"")+" gePropNonHeaderRow";z.setAttribute("data-pName",b);z.setAttribute("data-pValue",e);m=!1;null!=p.index&&(z.setAttribute("data-index",p.index),n=(null!=n?n:"")+"["+p.index+"]",m=!0);var B=document.createElement("td");
-B.className="gePropRowCell";B.innerHTML=mxUtils.htmlEntities(mxResources.get(n,null,n));m&&(B.style.textAlign="right");z.appendChild(B);B=document.createElement("td");B.className="gePropRowCell";if("color"==u)B.appendChild(k(b,e,p));else if("bool"==u||"boolean"==u)B.appendChild(g(b,e,p));else if("enum"==u){var x=p.enumList;for(t=0;t<x.length;t++)if(n=x[t],n.val==e){B.innerHTML=mxUtils.htmlEntities(mxResources.get(n.dispName,null,n.dispName));break}mxEvent.addListener(B,"click",mxUtils.bind(q,function(){var k=
-document.createElement("select");d(B,k);for(var l=0;l<x.length;l++){var f=x[l],g=document.createElement("option");g.value=mxUtils.htmlEntities(f.val);g.innerHTML=mxUtils.htmlEntities(mxResources.get(f.dispName,null,f.dispName));k.appendChild(g)}k.value=e;a.appendChild(k);mxEvent.addListener(k,"change",function(){var a=mxUtils.htmlEntities(k.value);c(b,a,p)});k.focus();mxEvent.addListener(k,"blur",function(){a.removeChild(k)})}))}else"dynamicArr"==u?B.appendChild(l(b,e,p.subType,p.subDefVal,p.countProperty,
-z,t)):"staticArr"==u?B.appendChild(f(b,e,p.subType,p.subDefVal,p.size,z,t)):"readOnly"==u?(t=document.createElement("input"),t.setAttribute("readonly",""),t.value=e,t.style.width="96px",t.style.borderWidth="0px",B.appendChild(t)):(B.innerHTML=e,mxEvent.addListener(B,"click",mxUtils.bind(q,function(){function k(){var a=l.value,a=0==a.length&&"string"!=u?0:a;p.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",u="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=p.min&&a<p.min?a=p.min:
-null!=p.max&&a>p.max&&(a=p.max);a=mxUtils.htmlEntities(("int"==u?parseInt(a):a)+"");c(b,a,p)}var l=document.createElement("input");d(B,l,!0);l.value=e;l.className="gePropEditor";"int"!=u&&"float"!=u||p.allowAuto||(l.type="number",l.step="int"==u?"1":"any",null!=p.min&&(l.min=parseFloat(p.min)),null!=p.max&&(l.max=parseFloat(p.max)));a.appendChild(l);mxEvent.addListener(l,"keypress",function(a){13==a.keyCode&&k()});l.focus();mxEvent.addListener(l,"blur",function(){k()})})));p.isDeletable&&(t=mxUtils.button("-",
-mxUtils.bind(q,function(a){c(b,"",p,p.index);mxEvent.consume(a)})),t.style.height="16px",t.style.width="25px",t.style["float"]="right",t.className="geColorBtn",B.appendChild(t));z.appendChild(B);return z}var q=this,m=this.editorUi.editor.graph,t=[];a.style.position="relative";a.style.padding="0";var n=document.createElement("table");n.className="geProperties";n.style.whiteSpace="nowrap";n.style.width="100%";var u=document.createElement("tr");u.className="gePropHeader";var z=document.createElement("th");
-z.className="gePropHeaderCell";var B=document.createElement("img");B.src=Sidebar.prototype.expandedImage;z.appendChild(B);mxUtils.write(z,mxResources.get("property"));u.style.cursor="pointer";var x=function(){var b=n.querySelectorAll(".gePropNonHeaderRow"),e;if(q.editorUi.propertiesCollapsed){B.src=Sidebar.prototype.collapsedImage;e="none";for(var c=a.childNodes.length-1;0<=c;c--)try{var d=a.childNodes[c],k=d.nodeName.toUpperCase();"INPUT"!=k&&"SELECT"!=k||a.removeChild(d)}catch(na){}}else B.src=
-Sidebar.prototype.expandedImage,e="";for(c=0;c<b.length;c++)b[c].style.display=e};mxEvent.addListener(u,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;x()});u.appendChild(z);z=document.createElement("th");z.className="gePropHeaderCell";z.innerHTML=mxResources.get("value");u.appendChild(z);n.appendChild(u);var v=!1,C=!1,u=null;1==e.vertices.length&&0==e.edges.length?u=e.vertices[0].id:0==e.vertices.length&&1==e.edges.length&&(u=e.edges[0].id);null!=u&&n.appendChild(p("id",
-mxUtils.htmlEntities(u),{dispName:"ID",type:"readOnly"},!0,!1));for(var y in b)if(u=b[y],"function"!=typeof u.isVisible||u.isVisible(e,this)){var G=null!=e.style[y]?mxUtils.htmlEntities(e.style[y]+""):null!=u.getDefaultValue?u.getDefaultValue(e,this):u.defVal;if("separator"==u.type)C=!C;else{if("staticArr"==u.type)u.size=parseInt(e.style[u.sizeProperty]||b[u.sizeProperty].defVal)||0;else if(null!=u.dependentProps){for(var A=u.dependentProps,H=[],M=[],z=0;z<A.length;z++){var D=e.style[A[z]];M.push(b[A[z]].subDefVal);
-H.push(null!=D?D.split(","):[])}u.dependentPropsDefVal=M;u.dependentPropsVals=H}n.appendChild(p(y,G,u,v,C));v=!v}}for(z=0;z<t.length;z++)for(u=t[z],b=u.parentRow,e=0;e<u.values.length;e++)y=p(u.name,u.values[e],{type:u.type,parentRow:u.parentRow,isDeletable:u.isDeletable,index:e,defVal:u.defVal,countProperty:u.countProperty,size:u.size},0==e%2,u.flipBkg),b.parentNode.insertBefore(y,b.nextSibling),b=y;a.appendChild(n);x();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){mxEvent.addListener(a,
-"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var e=this.editorUi,c=e.editor.graph,d=document.createElement("div");d.style.whiteSpace="nowrap";d.style.paddingLeft="24px";d.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(d);var k="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),
-l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.position="relative";l.style.textAlign="center";for(var f=[],g=0;g<this.defaultColorSchemes.length;g++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(p,
-"click",mxUtils.bind(this,function(){q(a)}))})(g);f.push(p);l.appendChild(p)}var q=mxUtils.bind(this,function(a){null!=this.format.currentScheme&&(f[this.format.currentScheme].style.background="transparent");this.format.currentScheme=a;m(this.defaultColorSchemes[this.format.currentScheme]);f[this.format.currentScheme].style.background="#84d7ff"}),m=mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(a){var b=mxUtils.button("",function(b){c.getModel().beginUpdate();try{for(var d=c.getSelectionCells(),
-l=0;l<d.length;l++){for(var f=c.getModel().getStyle(d[l]),g=0;g<k.length;g++)f=mxUtils.removeStylename(f,k[g]);var p=c.getModel().isVertex(d[l])?e.initialDefaultVertexStyle:e.initialdefaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isAltDown(b)||(f=""==a.fill?mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,
-null))),mxEvent.isShiftDown(b)||(f=""==a.stroke?mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null))),mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)||!c.getModel().isVertex(d[l])||(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,
-"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),c.getModel().isVertex(d[l])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));c.getModel().setStyle(d[l],f)}}finally{c.getModel().endUpdate()}});b.className="geStyleButton";b.style.width="36px";b.style.height=
-10>=this.defaultColorSchemes.length?"24px":"30px";b.style.margin="0px 6px 6px 0px";if(null!=a){var l="1"==urlParams.sketch?"2px solid":"1px solid";null!=a.gradient?mxClient.IS_IE&&10>document.documentMode?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?b.style.background="url('"+Dialog.prototype.noColorImage+"')":
-b.style.backgroundColor=""==a.fill?mxUtils.getValue(e.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff"):a.fill||mxUtils.getValue(e.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff");b.style.border=a.stroke==mxConstants.NONE?l+" transparent":""==a.stroke?l+" "+mxUtils.getValue(e.initialDefaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"):l+" "+(a.stroke||mxUtils.getValue(e.initialDefaultVertexStyle,
-mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"))}else{var l=mxUtils.getValue(c.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),f=mxUtils.getValue(c.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");b.style.backgroundColor=l;b.style.border="1px solid "+f}b.style.borderRadius="0";d.appendChild(b)});d.innerHTML="";for(var l=0;l<a.length;l++)0<l&&0==mxUtils.mod(l,4)&&mxUtils.br(d),b(a[l])});null==this.format.currentScheme?q(Editor.isDarkMode()?1:"1"==urlParams.sketch?
-5:0):q(this.format.currentScheme);var g=10>=this.defaultColorSchemes.length?28:8,t=document.createElement("div");t.style.cssText="position:absolute;left:10px;top:8px;bottom:"+g+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
-mxEvent.addListener(t,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var n=document.createElement("div");n.style.cssText="position:absolute;left:202px;top:8px;bottom:"+g+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
+mxShape.prototype.paint=function(b){var c=b.addTolerance,d=!0;null!=this.style&&(d="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(null!=b.handJiggle&&b.handJiggle.constructor==a&&!this.outline){b.save();var k=this.fill,l=this.stroke;this.stroke=this.fill=null;var f=this.configurePointerEvents,g=b.setStrokeColor;b.setStrokeColor=function(){};var p=b.setFillColor;b.setFillColor=function(){};d||null==k||(this.configurePointerEvents=function(){});b.handJiggle.passThrough=!0;
+e.apply(this,arguments);b.handJiggle.passThrough=!1;b.setFillColor=p;b.setStrokeColor=g;this.configurePointerEvents=f;this.stroke=l;this.fill=k;b.restore();d&&null!=k&&(b.addTolerance=function(){})}e.apply(this,arguments);b.addTolerance=c};var c=mxShape.prototype.paintGlassEffect;mxShape.prototype.paintGlassEffect=function(b,e,d,k,l,f){null!=b.handJiggle&&b.handJiggle.constructor==a?(b.handJiggle.passThrough=!0,c.apply(this,arguments),b.handJiggle.passThrough=!1):c.apply(this,arguments)}})();Editor.fastCompress=
+function(a){return null==a||0==a.length||"undefined"===typeof pako?a:Graph.arrayBufferToString(pako.deflateRaw(a))};Editor.fastDecompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.inflateRaw(Graph.stringToArrayBuffer(atob(a)),{to:"string"})};Editor.extractGraphModel=function(a,b,e){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var k=0;k<c.length;k++)if("mxgraph"==c[k].getAttribute("class")){d.push(c[k]);
+break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(a=mxUtils.parseXml(d.xml),a=a.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=Graph.decompress(c,null,e),0<c.length&&(a=mxUtils.parseXml(c),a=a.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&
+(c=decodeURIComponent(c)),null!=c&&0<c.length)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==a||b||(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(d=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=d&&(a=Editor.parseDiagramNode(d,e)));null==a||"mxGraphModel"==a.nodeName||b&&"mxfile"==a.nodeName||(a=null);return a};Editor.parseDiagramNode=function(a,b){var e=mxUtils.trim(mxUtils.getTextContent(a)),
+c=null;0<e.length?(e=Graph.decompress(e,null,b),null!=e&&0<e.length&&(c=mxUtils.parseXml(e).documentElement)):(e=mxUtils.getChildNodes(a),0<e.length&&(c=mxUtils.createXmlDocument(),c.appendChild(c.importNode(e[0],!0)),c=c.documentElement));return c};Editor.getDiagramNodeXml=function(a){var b=mxUtils.getTextContent(a),e=null;0<b.length?e=Graph.decompress(b):null!=a.firstChild&&(e=mxUtils.getXml(a.firstChild));return e};Editor.extractGraphModelFromPdf=function(a){a=a.substring(a.indexOf(",")+1);a=window.atob&&
+!mxClient.IS_SF?atob(a):Base64.decode(a,!0);if("%PDF-1.7"==a.substring(0,8)){var b=a.indexOf("EmbeddedFile");if(-1<b){var e=a.indexOf("stream",b)+9;if(0<a.substring(b,e).indexOf("application#2Fvnd.jgraph.mxfile"))return b=a.indexOf("endstream",e-1),pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(e,b)),{to:"string"})}return null}for(var e=null,b="",c=0,d=0,k=[],l=null;d<a.length;){var f=a.charCodeAt(d),d=d+1;10!=f&&(b+=String.fromCharCode(f));f=="/Subject (%3Cmxfile".charCodeAt(c)?c++:c=0;if(19==
+c){var g=a.indexOf("%3C%2Fmxfile%3E)",d)+15,d=d-9;if(g>d){e=a.substring(d,g);break}}10==f&&("endobj"==b?l=null:"obj"==b.substring(b.length-3,b.length)||"xref"==b||"trailer"==b?(l=[],k[b.split(" ")[0]]=l):null!=l&&l.push(b),b="")}null==e&&(e=Editor.extractGraphModelFromXref(k));null!=e&&(e=decodeURIComponent(e.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return e};Editor.extractGraphModelFromXref=function(a){var b=a.trailer,e=null;null!=b&&(b=/.* \/Info (\d+) (\d+) R/g.exec(b.join("\n")),null!=b&&0<
+b.length&&(b=a[b[1]],null!=b&&(b=/.* \/Subject (\d+) (\d+) R/g.exec(b.join("\n")),null!=b&&0<b.length&&(a=a[b[1]],null!=a&&(a=a.join("\n"),e=a.substring(1,a.length-1))))));return e};Editor.extractGraphModelFromPng=function(a){var b=null;try{var e=a.substring(a.indexOf(",")+1),c=window.atob&&!mxClient.IS_SF?atob(e):Base64.decode(e,!0);EditorUi.parsePng(c,mxUtils.bind(this,function(a,e,d){a=c.substring(a+8,a+8+d);"zTXt"==e?(d=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,d)&&(a=pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(d+
+2)),{to:"string"}).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==e&&(a=a.split(String.fromCharCode(0)),1<a.length&&("mxGraphModel"==a[0]||"mxfile"==a[0])&&(b=a[1]));if(null!=b||"IDAT"==e)return!0}))}catch(J){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};Editor.extractParserError=function(a,b){var e=null,c=null!=a?a.getElementsByTagName("parsererror"):null;null!=c&&0<c.length&&(e=b||mxResources.get("invalidChars"),c=c[0].getElementsByTagName("div"),
+0<c.length&&(e=mxUtils.getTextContent(c[0])));return null!=e?mxUtils.trim(e):e};Editor.addRetryToError=function(a,b){if(null!=a){var e=null!=a.error?a.error:a;null==e.retry&&(e.retry=b)}};Editor.configure=function(a,b){if(null!=a){Editor.config=a;Editor.configVersion=a.version;Menus.prototype.defaultFonts=a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;
+StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=a.autosaveDelay||DrawioFile.prototype.autosaveDelay;null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);null!=a.styles&&(Editor.styles=a.styles);null!=a.globalVars&&(Editor.globalVars=a.globalVars);null!=a.compressXml&&(Editor.compressXml=a.compressXml);
+null!=a.simpleLabels&&(Editor.simpleLabels=a.simpleLabels);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));if(null!=a.css){var e=document.createElement("style");e.setAttribute("type",
+"text/css");e.appendChild(document.createTextNode(a.css));var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(e,c)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=
+a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);null!=a.zoomFactor&&(e=parseFloat(a.zoomFactor),!isNaN(e)&&1<e&&(Graph.prototype.zoomFactor=e));null!=a.gridSteps&&(e=parseInt(a.gridSteps),!isNaN(e)&&0<e&&(mxGraphView.prototype.gridSteps=e));a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=
+a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(e=parseInt(a.autosaveDelay),!isNaN(e)&&0<e?DrawioFile.prototype.autosaveDelay=e:EditorUi.debug("Invalid autosaveDelay: "+a.autosaveDelay));if(null!=a.plugins&&!b)for(App.initPluginCallback(),e=0;e<a.plugins.length;e++)mxscript(a.plugins[e]);
+null!=a.maxImageBytes&&(EditorUi.prototype.maxImageBytes=a.maxImageBytes);null!=a.maxImageSize&&(EditorUi.prototype.maxImageSize=a.maxImageSize)}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var b=document.getElementsByTagName("script")[0];if(null!=b&&null!=b.parentNode){var e=document.createElement("style");e.setAttribute("type","text/css");e.appendChild(document.createTextNode(a));b.parentNode.insertBefore(e,b);a=a.split("url(");for(e=1;e<a.length;e++){var c=a[e].indexOf(")"),
+c=Editor.trimCssUrl(a[e].substring(0,c)),d=document.createElement("link");d.setAttribute("rel","preload");d.setAttribute("href",c);d.setAttribute("as","font");d.setAttribute("crossorigin","");b.parentNode.insertBefore(d,b)}}}};Editor.trimCssUrl=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=
+20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var b=[],e=0;e<a;e++)b.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return b.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(b){b=null!=b&&"mxlibrary"!=
+b.nodeName?this.extractGraphModel(b):null;if(null!=b){var e=b.getElementsByTagName("parsererror");if(null!=e&&0<e.length){var e=e[0],c=e.getElementsByTagName("div");null!=c&&0<c.length&&(e=c[0]);throw{message:mxUtils.getTextContent(e)};}if("mxGraphModel"==b.nodeName){e=b.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=e&&""!=e)e!=this.graph.currentStyle&&(c=null!=this.graph.themes?this.graph.themes[e]:mxUtils.load(STYLE_PATH+"/"+e+".xml").getDocumentElement(),null!=c&&(d=new mxCodec(c.ownerDocument),
+d.decode(c,this.graph.getStylesheet())));else if(c=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=c){var d=new mxCodec(c.ownerDocument);d.decode(c,this.graph.getStylesheet())}this.graph.currentStyle=e;this.graph.mathEnabled="1"==urlParams.math||"1"==b.getAttribute("math");e=b.getAttribute("backgroundImage");null!=e?(e=JSON.parse(e),this.graph.setBackgroundImage(new mxImage(e.src,e.width,e.height))):this.graph.setBackgroundImage(null);
+mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==b.getAttribute("shadow"),!1);if(e=b.getAttribute("extFonts"))try{for(e=e.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}}),c=0;c<e.length;c++)this.graph.addExtFont(e[c].name,e[c].url)}catch(J){console.log("ExtFonts format error: "+
+J.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var d=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var b=d.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&b.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&
+b.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));b.setAttribute("math",this.graph.mathEnabled?"1":"0");b.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var e=this.graph.extFonts.map(function(a){return a.name+"^"+a.url});b.setAttribute("extFonts",e.join("|"))}return b};Editor.prototype.isDataSvg=function(a){try{var b=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=b&&(null!=b&&"<"!=
+b.charAt(0)&&"%"!=b.charAt(0)&&(b=unescape(window.atob?atob(b):Base64.decode(cont,b))),null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b)),null!=b&&0<b.length)){var e=mxUtils.parseXml(b).documentElement;return"mxfile"==e.nodeName||"mxGraphModel"==e.nodeName}}catch(Z){}return!1};Editor.prototype.extractGraphModel=function(a,b,e){return Editor.extractGraphModel.apply(this,arguments)};var c=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;
+this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();c.apply(this,arguments)};var b=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){b.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&
+null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";Editor.initMath=function(a,b){if("undefined"===typeof window.MathJax){a=(null!=a?a:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":
+"SVG")+"-full";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};var e=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";b=null!=b?b:{"HTML-CSS":{availableFonts:[e],imageFont:null},SVG:{font:e,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",
+AuthorInit:function(){MathJax.Hub.Config(b);MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var c=Editor.prototype.init;Editor.prototype.init=function(){c.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,
+mxUtils.bind(this,function(a,b){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};e=document.getElementsByTagName("script");if(null!=e&&0<e.length){var d=document.createElement("script");d.setAttribute("type","text/javascript");d.setAttribute("src",a);e[0].parentNode.appendChild(d)}try{if(mxClient.IS_GC||mxClient.IS_SF){var k=document.createElement("style");k.type="text/css";k.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(k)}}catch(S){}}};
+Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;var b=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,e,c,d){void 0!==e?b.push(e.replace(/\\'/g,"'")):void 0!==c?b.push(c.replace(/\\"/g,
+'"')):void 0!==d&&b.push(d);return""});/,\s*$/.test(a)&&b.push("");return b};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)};Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();
+var b=a.convert,e=this;a.convert=function(c){if(null!=c){var d="http://"==c.substring(0,7)||"https://"==c.substring(0,8);d&&!navigator.onLine?c=Editor.svgBrokenImage.src:!d||c.substring(0,a.baseUrl.length)==a.baseUrl||e.crossOriginImages&&e.isCorsEnabledForUrl(c)?"chrome-extension://"==c.substring(0,19)||mxClient.IS_CHROMEAPP||(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c)}return c};return a};Editor.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};
+Editor.prototype.convertImageToDataUri=function(a,b){try{var e=!0,c=window.setTimeout(mxUtils.bind(this,function(){e=!1;b(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(c);e&&b(Editor.createSvgDataUri(a.getText()))}),function(){window.clearTimeout(c);e&&b(Editor.svgBrokenImage.src)});else{var d=new Image;this.crossOriginImages&&(d.crossOrigin="anonymous");d.onload=function(){window.clearTimeout(c);if(e)try{var a=document.createElement("canvas"),
+k=a.getContext("2d");a.height=d.height;a.width=d.width;k.drawImage(d,0,0);b(a.toDataURL())}catch(Y){b(Editor.svgBrokenImage.src)}};d.onerror=function(){window.clearTimeout(c);e&&b(Editor.svgBrokenImage.src)};d.src=a}}catch(R){b(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(a,b,e,c){null==c&&(c=this.createImageUrlConverter());var d=0,k=e||{};e=mxUtils.bind(this,function(e,l){for(var f=a.getElementsByTagName(e),g=0;g<f.length;g++)mxUtils.bind(this,function(e){try{if(null!=e){var f=
+c.convert(e.getAttribute(l));if(null!=f&&"data:"!=f.substring(0,5)){var g=k[f];null==g?(d++,this.convertImageToDataUri(f,function(c){null!=c&&(k[f]=c,e.setAttribute(l,c));d--;0==d&&b(a)})):e.setAttribute(l,g)}else null!=f&&e.setAttribute(l,f)}}catch(da){}})(f[g])});e("image","xlink:href");e("img","src");0==d&&b(a)};Editor.base64Encode=function(a){for(var b="",e=0,c=a.length,d,k,l;e<c;){d=a.charCodeAt(e++)&255;if(e==c){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>
+2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4);b+="==";break}k=a.charCodeAt(e++);if(e==c){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4|(k&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2);b+="=";break}l=a.charCodeAt(e++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>
+2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4|(k&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2|(l&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return b};Editor.prototype.loadUrl=function(a,b,e,c,d,k,l,f){try{var g=!l&&(c||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));d=null!=d?d:!0;var p=mxUtils.bind(this,
+function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var c=a.getText();if(g){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=String.fromCharCode(a[d]);c=c.join("")}k=null!=k?k:"data:image/png;base64,";c=k+Editor.base64Encode(c)}b(c)}}else null!=e&&(0==a.getStatus()?e({message:mxResources.get("accessDenied")},
+a):e({message:mxResources.get("error")+" "+a.getStatus()},a))}),function(a){null!=e&&e({message:mxResources.get("error")+" "+a.getStatus()})},g,this.timeout,function(){d&&null!=e&&e({code:App.ERROR_TIMEOUT,retry:p})},f)});p()}catch(X){null!=e&&e(X)}};Editor.prototype.absoluteCssFonts=function(a){var b=null;if(null!=a){var e=a.split("url(");if(0<e.length){b=[e[0]];a=window.location.pathname;var c=null!=a?a.lastIndexOf("/"):-1;0<=c&&(a=a.substring(0,c+1));var c=document.getElementsByTagName("base"),
+d=null;null!=c&&0<c.length&&(d=c[0].getAttribute("href"));for(var k=1;k<e.length;k++)if(c=e[k].indexOf(")"),0<c){var l=Editor.trimCssUrl(e[k].substring(0,c));this.graph.isRelativeUrl(l)&&(l=null!=d?d+l:window.location.protocol+"//"+window.location.hostname+("/"==l.charAt(0)?"":a)+l);b.push('url("'+l+'"'+e[k].substring(c))}else b.push(e[k])}else b=[a]}return null!=b?b.join(""):null};Editor.prototype.embedCssFonts=function(a,b){var e=a.split("url("),c=0;null==this.cachedFonts&&(this.cachedFonts={});
+var d=mxUtils.bind(this,function(){if(0==c){for(var a=[e[0]],d=1;d<e.length;d++){var k=e[d].indexOf(")");a.push('url("');a.push(this.cachedFonts[Editor.trimCssUrl(e[d].substring(0,k))]);a.push('"'+e[d].substring(k))}b(a.join(""))}});if(0<e.length){for(var k=1;k<e.length;k++){var l=e[k].indexOf(")"),f=null,g=e[k].indexOf("format(",l);0<g&&(f=Editor.trimCssUrl(e[k].substring(g+7,e[k].indexOf(")",g))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=a;c++;var b="application/x-font-ttf";
+if("svg"==f||/(\.svg)($|\?)/i.test(a))b="image/svg+xml";else if("otf"==f||"embedded-opentype"==f||/(\.otf)($|\?)/i.test(a))b="application/x-font-opentype";else if("woff"==f||/(\.woff)($|\?)/i.test(a))b="application/font-woff";else if("woff2"==f||/(\.woff2)($|\?)/i.test(a))b="application/font-woff2";else if("eot"==f||/(\.eot)($|\?)/i.test(a))b="application/vnd.ms-fontobject";else if("sfnt"==f||/(\.sfnt)($|\?)/i.test(a))b="application/font-sfnt";var e=a;/^https?:\/\//.test(e)&&!this.isCorsEnabledForUrl(e)&&
+(e=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(e,mxUtils.bind(this,function(b){this.cachedFonts[a]=b;c--;d()}),mxUtils.bind(this,function(a){c--;d()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(Editor.trimCssUrl(e[k].substring(0,l)),f)}d()}else b(a)};Editor.prototype.loadFonts=function(a){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(b){this.resolvedFontCss=b;a()})):a()};Editor.prototype.embedExtFonts=function(a){var b=this.graph.getCustomFonts();
+if(0<b.length){var e="",c=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var d=mxUtils.bind(this,function(){0==c&&this.embedCssFonts(e,a)}),k=0;k<b.length;k++)mxUtils.bind(this,function(a,b){Graph.isCssFontUrl(b)?null==this.cachedGoogleFonts[b]?(c++,this.loadUrl(b,mxUtils.bind(this,function(a){this.cachedGoogleFonts[b]=a;e+=a;c--;d()}),mxUtils.bind(this,function(a){c--;e+="@import url("+b+");";d()}))):e+=this.cachedGoogleFonts[b]:e+='@font-face {font-family: "'+a+'";src: url("'+b+
+'")}'})(b[k].name,b[k].url);d()}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var b=document.getElementsByTagName("style"),e=0;e<b.length;e++)0<mxUtils.getTextContent(b[e]).indexOf("MathJax")&&a[0].appendChild(b[e].cloneNode(!0))};Editor.prototype.addFontCss=function(a,b){b=null!=b?b:this.absoluteCssFonts(this.fontCss);if(null!=b){var e=a.getElementsByTagName("defs"),c=a.ownerDocument;0==e.length?(e=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,
+"defs"):c.createElement("defs"),null!=a.firstChild?a.insertBefore(e,a.firstChild):a.appendChild(e)):e=e[0];c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"style"):c.createElement("style");c.setAttribute("type","text/css");mxUtils.setTextContent(c,b);e.appendChild(c)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,b,e){var c=mxClient.IS_FF?8192:16384;return Math.min(e,Math.min(c/a,c/
+b))};Editor.prototype.exportToCanvas=function(a,b,e,c,d,k,l,f,g,p,q,m,t,n,u,z,B,x){try{k=null!=k?k:!0;l=null!=l?l:!0;m=null!=m?m:this.graph;t=null!=t?t:0;var v=g?null:m.background;v==mxConstants.NONE&&(v=null);null==v&&(v=c);null==v&&0==g&&(v=z?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(m.getSvg(null,null,t,n,null,l,null,null,null,p,null,z,B,x),mxUtils.bind(this,function(e){try{var c=new Image;c.onload=mxUtils.bind(this,function(){try{var l=function(){mxClient.IS_SF?window.setTimeout(function(){n.drawImage(c,
+0,0);a(g,e)},0):(n.drawImage(c,0,0),a(g,e))},g=document.createElement("canvas"),p=parseInt(e.getAttribute("width")),q=parseInt(e.getAttribute("height"));f=null!=f?f:1;null!=b&&(f=k?Math.min(1,Math.min(3*b/(4*q),b/p)):b/p);f=this.getMaxCanvasScale(p,q,f);p=Math.ceil(f*p);q=Math.ceil(f*q);g.setAttribute("width",p);g.setAttribute("height",q);var n=g.getContext("2d");null!=v&&(n.beginPath(),n.rect(0,0,p,q),n.fillStyle=v,n.fill());1!=f&&n.scale(f,f);if(u){var z=m.view,B=z.scale;z.scale=1;var x=btoa(unescape(encodeURIComponent(z.createSvgGrid(z.gridColor))));
+z.scale=B;var x="data:image/svg+xml;base64,"+x,C=m.gridSize*z.gridSteps*f,y=m.getGraphBounds(),M=z.translate.x*B,G=z.translate.y*B,A=M+(y.x-M)/B-t,H=G+(y.y-G)/B-t,K=new Image;K.onload=function(){try{for(var a=-Math.round(C-mxUtils.mod((M-A)*f,C)),b=-Math.round(C-mxUtils.mod((G-H)*f,C));a<p;a+=C)for(var e=b;e<q;e+=C)n.drawImage(K,a/f,e/f);l()}catch(ra){null!=d&&d(ra)}};K.onerror=function(a){null!=d&&d(a)};K.src=x}else l()}catch(qa){null!=d&&d(qa)}});c.onerror=function(a){null!=d&&d(a)};p&&this.graph.addSvgShadow(e);
+this.graph.mathEnabled&&this.addMathCss(e);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(e,this.resolvedFontCss),c.src=Editor.createSvgDataUri(mxUtils.getXml(e))}catch(ia){null!=d&&d(ia)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(e,a),this.loadFonts(l)}catch(P){null!=d&&d(P)}}))}catch(ia){null!=d&&d(ia)}}),e,q)}catch(U){null!=d&&d(U)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var f=g,m=0;8>m;m++)f=1==(f&1)?3988292384^f>>>
+1:f>>>1,Editor.crcTable[g]=f;Editor.updateCRC=function(a,b,e,c){for(var d=0;d<c;d++)a=Editor.crcTable[(a^b.charCodeAt(e+d))&255]^a>>>8;return a};Editor.crc32=function(a){for(var b=-1,e=0;e<a.length;e++)b=b>>>8^Editor.crcTable[(b^a.charCodeAt(e))&255];return(b^-1)>>>0};Editor.writeGraphModelToPng=function(a,b,e,c,d){function k(a,b){var e=g;g+=b;return a.substring(e,g)}function l(a){a=k(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function f(a){return String.fromCharCode(a>>
+24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var g=0;if(k(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(k(a,4),"IHDR"!=k(a,4))null!=d&&d();else{k(a,17);d=a.substring(0,g);do{var p=l(a);if("IDAT"==k(a,4)){d=a.substring(0,g-8);"pHYs"==b&&"dpi"==e?(e=Math.round(c/.0254),e=f(e)+f(e)+String.fromCharCode(1)):e=e+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+c;c=4294967295;c=Editor.updateCRC(c,
+b,0,4);c=Editor.updateCRC(c,e,0,e.length);d+=f(e.length)+b+e+f(c^4294967295);d+=a.substring(g-8,a.length);break}d+=a.substring(g-8,g-4+p);k(a,p);k(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(d):Base64.encode(d,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var n=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){n.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};
+var e=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,b){var e=null;null!=a.editor.graph.getModel().getParent(b)?e=b.getId():null!=a.currentPage&&(e=a.currentPage.getId());return e});if(null!=window.StyleFormatPanel){var k=Format.prototype.init;Format.prototype.init=function(){k.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",
+this.update)};var l=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?l.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var p=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=
+function(a){a=p.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var b=this.editorUi,e=b.editor.graph,c=this.createOption(mxResources.get("shadow"),function(){return e.shadowVisible},function(a){var c=new ChangePageSetup(b);c.ignoreColor=!0;c.ignoreImage=!0;c.shadowVisible=a;e.model.execute(c)},{install:function(a){this.listener=function(){a(e.shadowVisible)};b.addListener("shadowVisibleChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});
+Editor.shadowOptionEnabled||(c.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(c,60));a.appendChild(c)}return a};var q=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=q.apply(this,arguments);var b=this.editorUi,e=b.editor.graph;if(e.isEnabled()){var c=b.getCurrentFile();if(null!=c&&c.isAutosaveOptional()){var d=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a);
+b.editor.autosave&&c.isModified()&&c.fileChanged()},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}});a.appendChild(d)}}if(this.isMathOptionVisible()&&e.isEnabled()&&"undefined"!==typeof MathJax){d=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return e.mathEnabled},function(a){b.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=
+function(){a(e.mathEnabled)};b.addListener("mathEnabledChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});d.style.paddingTop="5px";a.appendChild(d);var k=b.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");k.style.position="relative";k.style.marginLeft="6px";k.style.top="2px";d.appendChild(k)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
+{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=
+[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",
+type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",
+type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line",
+type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties=[{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20},
+{name:"fixedSize",dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",
+type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width",
+type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left",
+dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"startSize",dispName:"Header Size",type:"float"},{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},
+{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=
+[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",
+defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},
+{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",
+dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];
+mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},
+{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,
+defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=
+[{name:"width",dispName:"Title Width",type:"float",defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",
+font:"#ffffff"},{fill:"#008a00",stroke:"#005700",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},
+{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",
+gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",
+stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,b,e){if(null!=b){var c=function(a){if(null!=a)if(e)for(var c=0;c<a.length;c++)b[a[c].name]=a[c];else for(var d in b){for(var k=!1,c=0;c<a.length;c++)if(a[c].name==d&&a[c].type==b[d].type){k=!0;break}k||delete b[d]}},d=this.editorUi.editor.graph.view.getState(a);null!=d&&null!=d.shape&&(d.shape.commonCustomPropAdded||
+(d.shape.commonCustomPropAdded=!0,d.shape.customProperties=d.shape.customProperties||[],d.cell.vertex?Array.prototype.push.apply(d.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(d.shape.customProperties,Editor.commonEdgeProperties)),c(d.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{c(JSON.parse(a))}catch(R){}}};var t=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"==
+a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));t.apply(this,arguments);if(Editor.enableCustomProperties){for(var b={},e=a.vertices,c=a.edges,d=0;d<e.length;d++)this.findCommonProperties(e[d],b,0==d);for(d=0;d<c.length;d++)this.findCommonProperties(c[d],b,0==e.length&&0==d);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(b).length&&this.container.appendChild(this.addProperties(this.createPanel(),b,a))}};var u=StyleFormatPanel.prototype.addStyleOps;
+StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));
+b.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return u.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,b,e){function c(a,b,e,c){m.getModel().beginUpdate();try{var d=[],k=[];if(null!=e.index){for(var l=[],f=e.parentRow.nextSibling;f&&f.getAttribute("data-pName")==a;)l.push(f.getAttribute("data-pValue")),
+f=f.nextSibling;e.index<l.length?null!=c?l.splice(c,1):l[e.index]=b:l.push(b);null!=e.size&&l.length>e.size&&(l=l.slice(0,e.size));b=l.join(",");null!=e.countProperty&&(m.setCellStyles(e.countProperty,l.length,m.getSelectionCells()),d.push(e.countProperty),k.push(l.length))}m.setCellStyles(a,b,m.getSelectionCells());d.push(a);k.push(b);if(null!=e.dependentProps)for(a=0;a<e.dependentProps.length;a++){var g=e.dependentPropsDefVal[a],p=e.dependentPropsVals[a];if(p.length>b)p=p.slice(0,b);else for(var t=
+p.length;t<b;t++)p.push(g);p=p.join(",");m.setCellStyles(e.dependentProps[a],p,m.getSelectionCells());d.push(e.dependentProps[a]);k.push(p)}if("function"==typeof e.onChange)e.onChange(m,b);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",d,"values",k,"cells",m.getSelectionCells()))}finally{m.getModel().endUpdate()}}function d(b,e,c){var d=mxUtils.getOffset(a,!0),k=mxUtils.getOffset(b,!0);e.style.position="absolute";e.style.left=k.x-d.x+"px";e.style.top=k.y-d.y+"px";e.style.width=b.offsetWidth+
+"px";e.style.height=b.offsetHeight-(c?4:0)+"px";e.style.zIndex=5}function k(a,b,e){var d=document.createElement("div");d.style.width="32px";d.style.height="4px";d.style.margin="2px";d.style.border="1px solid black";d.style.background=b&&"none"!=b?b:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(k){this.editorUi.pickColor(b,function(b){d.style.background="none"==b?"url('"+Dialog.prototype.noColorImage+"')":b;c(a,b,e)});mxEvent.consume(k)}));btn.style.height=
+"12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(d);return btn}function l(a,b,e,d,k,l,f){null!=b&&(b=b.split(","),t.push({name:a,values:b,type:e,defVal:d,countProperty:k,parentRow:l,isDeletable:!0,flipBkg:f}));btn=mxUtils.button("+",mxUtils.bind(q,function(b){for(var g=l,q=0;null!=g.nextSibling;)if(g.nextSibling.getAttribute("data-pName")==a)g=g.nextSibling,q++;else break;var m={type:e,parentRow:l,index:q,isDeletable:!0,defVal:d,countProperty:k},q=p(a,"",m,0==q%2,f);c(a,d,
+m);g.parentNode.insertBefore(q,g.nextSibling);mxEvent.consume(b)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function f(a,b,e,c,d,k,l){if(0<d){var f=Array(d);b=null!=b?b.split(","):[];for(var g=0;g<d;g++)f[g]=null!=b[g]?b[g]:null!=c?c:"";t.push({name:a,values:f,type:e,defVal:c,parentRow:k,flipBkg:l,size:d})}return document.createElement("div")}function g(a,b,e){var d=document.createElement("input");d.type="checkbox";d.checked="1"==b;mxEvent.addListener(d,
+"change",function(){c(a,d.checked?"1":"0",e)});return d}function p(b,e,p,m,t){var n=p.dispName,u=p.type,z=document.createElement("tr");z.className="gePropRow"+(t?"Dark":"")+(m?"Alt":"")+" gePropNonHeaderRow";z.setAttribute("data-pName",b);z.setAttribute("data-pValue",e);m=!1;null!=p.index&&(z.setAttribute("data-index",p.index),n=(null!=n?n:"")+"["+p.index+"]",m=!0);var B=document.createElement("td");B.className="gePropRowCell";B.innerHTML=mxUtils.htmlEntities(mxResources.get(n,null,n));m&&(B.style.textAlign=
+"right");z.appendChild(B);B=document.createElement("td");B.className="gePropRowCell";if("color"==u)B.appendChild(k(b,e,p));else if("bool"==u||"boolean"==u)B.appendChild(g(b,e,p));else if("enum"==u){var x=p.enumList;for(t=0;t<x.length;t++)if(n=x[t],n.val==e){B.innerHTML=mxUtils.htmlEntities(mxResources.get(n.dispName,null,n.dispName));break}mxEvent.addListener(B,"click",mxUtils.bind(q,function(){var k=document.createElement("select");d(B,k);for(var l=0;l<x.length;l++){var f=x[l],g=document.createElement("option");
+g.value=mxUtils.htmlEntities(f.val);g.innerHTML=mxUtils.htmlEntities(mxResources.get(f.dispName,null,f.dispName));k.appendChild(g)}k.value=e;a.appendChild(k);mxEvent.addListener(k,"change",function(){var a=mxUtils.htmlEntities(k.value);c(b,a,p)});k.focus();mxEvent.addListener(k,"blur",function(){a.removeChild(k)})}))}else"dynamicArr"==u?B.appendChild(l(b,e,p.subType,p.subDefVal,p.countProperty,z,t)):"staticArr"==u?B.appendChild(f(b,e,p.subType,p.subDefVal,p.size,z,t)):"readOnly"==u?(t=document.createElement("input"),
+t.setAttribute("readonly",""),t.value=e,t.style.width="96px",t.style.borderWidth="0px",B.appendChild(t)):(B.innerHTML=e,mxEvent.addListener(B,"click",mxUtils.bind(q,function(){function k(){var a=l.value,a=0==a.length&&"string"!=u?0:a;p.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",u="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=p.min&&a<p.min?a=p.min:null!=p.max&&a>p.max&&(a=p.max);a=mxUtils.htmlEntities(("int"==u?parseInt(a):a)+"");c(b,a,p)}var l=document.createElement("input");
+d(B,l,!0);l.value=e;l.className="gePropEditor";"int"!=u&&"float"!=u||p.allowAuto||(l.type="number",l.step="int"==u?"1":"any",null!=p.min&&(l.min=parseFloat(p.min)),null!=p.max&&(l.max=parseFloat(p.max)));a.appendChild(l);mxEvent.addListener(l,"keypress",function(a){13==a.keyCode&&k()});l.focus();mxEvent.addListener(l,"blur",function(){k()})})));p.isDeletable&&(t=mxUtils.button("-",mxUtils.bind(q,function(a){c(b,"",p,p.index);mxEvent.consume(a)})),t.style.height="16px",t.style.width="25px",t.style["float"]=
+"right",t.className="geColorBtn",B.appendChild(t));z.appendChild(B);return z}var q=this,m=this.editorUi.editor.graph,t=[];a.style.position="relative";a.style.padding="0";var n=document.createElement("table");n.className="geProperties";n.style.whiteSpace="nowrap";n.style.width="100%";var u=document.createElement("tr");u.className="gePropHeader";var z=document.createElement("th");z.className="gePropHeaderCell";var B=document.createElement("img");B.src=Sidebar.prototype.expandedImage;z.appendChild(B);
+mxUtils.write(z,mxResources.get("property"));u.style.cursor="pointer";var x=function(){var b=n.querySelectorAll(".gePropNonHeaderRow"),e;if(q.editorUi.propertiesCollapsed){B.src=Sidebar.prototype.collapsedImage;e="none";for(var c=a.childNodes.length-1;0<=c;c--)try{var d=a.childNodes[c],k=d.nodeName.toUpperCase();"INPUT"!=k&&"SELECT"!=k||a.removeChild(d)}catch(na){}}else B.src=Sidebar.prototype.expandedImage,e="";for(c=0;c<b.length;c++)b[c].style.display=e};mxEvent.addListener(u,"click",function(){q.editorUi.propertiesCollapsed=
+!q.editorUi.propertiesCollapsed;x()});u.appendChild(z);z=document.createElement("th");z.className="gePropHeaderCell";z.innerHTML=mxResources.get("value");u.appendChild(z);n.appendChild(u);var v=!1,C=!1,u=null;1==e.vertices.length&&0==e.edges.length?u=e.vertices[0].id:0==e.vertices.length&&1==e.edges.length&&(u=e.edges[0].id);null!=u&&n.appendChild(p("id",mxUtils.htmlEntities(u),{dispName:"ID",type:"readOnly"},!0,!1));for(var y in b)if(u=b[y],"function"!=typeof u.isVisible||u.isVisible(e,this)){var G=
+null!=e.style[y]?mxUtils.htmlEntities(e.style[y]+""):null!=u.getDefaultValue?u.getDefaultValue(e,this):u.defVal;if("separator"==u.type)C=!C;else{if("staticArr"==u.type)u.size=parseInt(e.style[u.sizeProperty]||b[u.sizeProperty].defVal)||0;else if(null!=u.dependentProps){for(var A=u.dependentProps,H=[],M=[],z=0;z<A.length;z++){var D=e.style[A[z]];M.push(b[A[z]].subDefVal);H.push(null!=D?D.split(","):[])}u.dependentPropsDefVal=M;u.dependentPropsVals=H}n.appendChild(p(y,G,u,v,C));v=!v}}for(z=0;z<t.length;z++)for(u=
+t[z],b=u.parentRow,e=0;e<u.values.length;e++)y=p(u.name,u.values[e],{type:u.type,parentRow:u.parentRow,isDeletable:u.isDeletable,index:e,defVal:u.defVal,countProperty:u.countProperty,size:u.size},0==e%2,u.flipBkg),b.parentNode.insertBefore(y,b.nextSibling),b=y;a.appendChild(n);x();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var e=this.editorUi,
+c=e.editor.graph,d=document.createElement("div");d.style.whiteSpace="nowrap";d.style.paddingLeft="24px";d.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(d);var k="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.position="relative";
+l.style.textAlign="center";for(var f=[],g=0;g<this.defaultColorSchemes.length;g++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(a)}))})(g);f.push(p);l.appendChild(p)}var q=mxUtils.bind(this,
+function(a){null!=this.format.currentScheme&&(f[this.format.currentScheme].style.background="transparent");this.format.currentScheme=a;m(this.defaultColorSchemes[this.format.currentScheme]);f[this.format.currentScheme].style.background="#84d7ff"}),m=mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(a){var b=mxUtils.button("",function(b){c.getModel().beginUpdate();try{for(var d=c.getSelectionCells(),l=0;l<d.length;l++){for(var f=c.getModel().getStyle(d[l]),g=0;g<k.length;g++)f=mxUtils.removeStylename(f,
+k[g]);var p=c.getModel().isVertex(d[l])?e.initialDefaultVertexStyle:e.initialdefaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isAltDown(b)||(f=""==a.fill?mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,null))),mxEvent.isShiftDown(b)||(f=""==a.stroke?mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,
+null):mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null))),mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)||!c.getModel().isVertex(d[l])||(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,
+mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),c.getModel().isVertex(d[l])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));c.getModel().setStyle(d[l],f)}}finally{c.getModel().endUpdate()}});b.className="geStyleButton";b.style.width="36px";b.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";b.style.margin="0px 6px 6px 0px";
+if(null!=a){var l="1"==urlParams.sketch?"2px solid":"1px solid";null!=a.gradient?mxClient.IS_IE&&10>document.documentMode?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor=""==a.fill?mxUtils.getValue(e.initialDefaultVertexStyle,
+mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff"):a.fill||mxUtils.getValue(e.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff");b.style.border=a.stroke==mxConstants.NONE?l+" transparent":""==a.stroke?l+" "+mxUtils.getValue(e.initialDefaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"):l+" "+(a.stroke||mxUtils.getValue(e.initialDefaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":
+"#2a2a2a"))}else{var l=mxUtils.getValue(c.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),f=mxUtils.getValue(c.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");b.style.backgroundColor=l;b.style.border="1px solid "+f}b.style.borderRadius="0";d.appendChild(b)});d.innerHTML="";for(var l=0;l<a.length;l++)0<l&&0==mxUtils.mod(l,4)&&mxUtils.br(d),b(a[l])});null==this.format.currentScheme?q(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):q(this.format.currentScheme);var g=10>=this.defaultColorSchemes.length?
+28:8,t=document.createElement("div");t.style.cssText="position:absolute;left:10px;top:8px;bottom:"+g+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(t,
+"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var n=document.createElement("div");n.style.cssText="position:absolute;left:202px;top:8px;bottom:"+g+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
1<this.defaultColorSchemes.length&&(a.appendChild(t),a.appendChild(n));mxEvent.addListener(n,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));b(t);b(n);m(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&a.appendChild(l);return a};StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),e=null;1==this.editorUi.editor.graph.getSelectionCount()&&(e=mxUtils.button(mxResources.get("editStyle"),
mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),e.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),e.style.width="202px",e.style.marginBottom="2px",a.appendChild(e));var c=this.editorUi.editor.graph,d=c.view.getState(c.getSelectionCell());1==c.getSelectionCount()&&null!=d&&null!=d.shape&&null!=d.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),
b.setAttribute("title",mxResources.get("editShape")),b.style.marginBottom="2px",null==e?b.style.width="202px":(e.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b)):b.image&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==e?b.style.width="202px":(e.style.width="100px",b.style.width="100px",b.style.marginLeft=
@@ -10362,7 +10362,7 @@ l=document.createElement("div");l.style.marginBottom="12px";var M=PageSetupDialo
(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(H.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),
this.shadowVisible=!this.shadowVisible))};Editor.prototype.useCanvasForExport=!1;try{var L=document.createElement("canvas"),I=new Image;I.onload=function(){try{L.getContext("2d").drawImage(I,0,0);var a=L.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(N){}};I.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(M){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,c,b){b.ui=a.ui;return c};a.afterDecode=function(a,c,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,c,b){b.ui=a.ui;return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.6.10";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,c,b){b.ui=a.ui;return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.6.12";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=
!mxClient.IS_OP&&!EditorUi.isElectronApp&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,
messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(a,b,c,d,f,g,m){g=null!=g?g:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
@@ -10454,87 +10454,87 @@ f&&G(a)});d=m.cloneNode(!1);d.setAttribute("src",Editor.plusImage);d.setAttribut
mxEvent.consume(a)})),p.insertBefore(d,p.firstChild))}g.appendChild(p);g.style.paddingRight=18*p.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var e=a[c],d=e.data;if(null!=d){var d=this.convertDataUri(d),k="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(k+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(k+"image="+d,e.w,e.h,"",e.title||"",!1,!1,!0))}else null!=e.xml&&(d=this.stringToCells(Graph.decompress(e.xml)),
0<d.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(d,e.w,e.h,e.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultPageBorderColor="#505759",BaseFormatPanel.prototype.buttonBackgroundColor=
-"#2a2a2a",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxConstants.DROP_TARGET_COLOR="#00ff00");Editor.sketchFontFamily="Architects Daughter";Editor.sketchFontSource="https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter";"1"==urlParams.sketch&&(Menus.prototype.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},
-{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(Menus.prototype.defaultFonts),Graph.prototype.defaultVertexStyle={fontFamily:Editor.sketchFontFamily,fontSize:"20",fontSource:Editor.sketchFontSource,pointerEvents:"0",sketch:"0"==urlParams.rough?"0":"1",hachureGap:"4"},Graph.prototype.defaultEdgeStyle={edgeStyle:"none",rounded:"0",curved:"1",jettySize:"auto",orthogonalLoop:"1",endArrow:"open",startSize:"14",endSize:"14",fontFamily:Editor.sketchFontFamily,
-fontSize:"20",fontSource:Editor.sketchFontSource,sourcePerimeterSpacing:"8",targetPerimeterSpacing:"8",sketch:"0"==urlParams.rough?"0":"1"},Editor.configurationKey=".sketch-configuration",Editor.settingsKey=".sketch-config",Graph.prototype.defaultGridEnabled=!1,Graph.prototype.defaultPageVisible=!1,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(a,b,c,d,f){a=new ImageDialog(this,a,b,c,d,f);
-this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a,b){if(!b){var c=new ChangePageSetup(this,null,a);c.ignoreColor=!0;this.editor.graph.model.execute(c)}});var c=new BackgroundImageDialog(this,a,b);this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,d,f){a=new LibraryDialog(this,a,b,c,d,f);this.showDialog(a.container,
-640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var c=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var b=c.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(a){this.editor.graph.isSelectionEmpty()&&b.refresh()}));return b};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer geSidebarFooter");
-a.style.position="absolute";a.style.overflow="hidden";var b=document.createElement("a");b.className="geTitle";b.style.color="#DF6C0C";b.style.fontWeight="bold";b.style.height="100%";b.style.paddingTop="9px";b.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();
-mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c,d,f,g,m){var e=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},k=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&null!=a.message)try{m?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(B){}if(null!=k||null!=b){m=mxUtils.htmlEntities(mxResources.get("unknownError"));
-var l=mxResources.get("ok"),p=null;b=null!=b?b:mxResources.get("error");if(null!=k){null!=k.retry&&(l=mxResources.get("cancel"),p=function(){e();k.retry()});if(404==k.code||404==k.status||403==k.code){m=403==k.code?null!=k.message?mxUtils.htmlEntities(k.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=f?f:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var n=
-null!=f?null:null!=g?g:window.location.hash;if(null!=n&&("#G"==n.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==n.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==k.code||404==k.status)){n="#U"==n.substring(0,2)?n.substring(45,n.lastIndexOf("%26ex")):n.substring(2);this.showError(b,m,mxResources.get("openInNewWindow"),
-mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+n);this.handleError(a,b,c,d,f)}),p,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){d.innerHTML="";for(var a=0;a<b.length;a++){var c=document.createElement("option");mxUtils.write(c,b[a].displayName);c.value=a;d.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(c,"<"+b[a].email+">");c.setAttribute("disabled","disabled");d.appendChild(c)}c=
-document.createElement("option");mxUtils.write(c,mxResources.get("addAccount"));c.value=b.length;d.appendChild(c)}var b=this.drive.getUsersList(),c=document.createElement("div"),e=document.createElement("span");e.style.marginTop="6px";mxUtils.write(e,mxResources.get("changeUser")+": ");c.appendChild(e);var d=document.createElement("select");d.style.width="200px";a();mxEvent.addListener(d,"change",mxUtils.bind(this,function(){var c=d.value,e=b.length!=c;e&&this.drive.setUser(b[c]);this.drive.authorize(e,
-mxUtils.bind(this,function(){e||(b=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));c.appendChild(d);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(c.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=c&&c()}),480,150);return}}null!=k.message?m=""==k.message&&null!=k.name?mxUtils.htmlEntities(k.name):mxUtils.htmlEntities(k.message):
-null!=k.response&&null!=k.response.error?m=mxUtils.htmlEntities(k.response.error):"undefined"!==typeof window.App&&(k.code==App.ERROR_TIMEOUT?m=mxUtils.htmlEntities(mxResources.get("timeout")):k.code==App.ERROR_BUSY?m=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof k&&0<k.length&&(m=mxUtils.htmlEntities(k)))}var q=g=null;null!=k&&null!=k.helpLink&&(g=mxResources.get("help"),q=mxUtils.bind(this,function(){return this.editor.graph.openLink(k.helpLink)}));this.showError(b,m,l,c,p,null,
-null,g,q,null,null,null,d?c:null)}else null!=c&&c()};EditorUi.prototype.alert=function(a,b,c){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,c||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,c,d,f,g){var e=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},k=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){e();null!=b&&b()},function(){e();null!=c&&c()},d,f,null,null,null,null,k);this.showDialog(a.container,
-340,46+k,!0,g);a.init()};EditorUi.prototype.showBanner=function(a,b,c,d){var e=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var k=document.createElement("div");k.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(k.style,"box-shadow","1px 1px 2px 0px #ddd");
-mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(k.style,"transition","all 1s ease");k.className="geBtn gePrimaryBtn";e=document.createElement("img");e.setAttribute("src",IMAGE_PATH+"/logo.png");e.setAttribute("border","0");e.setAttribute("align","absmiddle");e.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";k.appendChild(e);e=document.createElement("img");e.setAttribute("src",Dialog.prototype.closeImage);e.setAttribute("title",
-mxResources.get(d?"doNotShowAgain":"close"));e.setAttribute("border","0");e.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";k.appendChild(e);mxUtils.write(k,b);document.body.appendChild(k);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var f=document.createElement("input");f.setAttribute("type","checkbox");f.setAttribute("id","geDoNotShowAgainCheckbox");f.style.marginRight=
-"6px";if(!d){b.appendChild(f);var l=document.createElement("label");l.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(l,mxResources.get("doNotShowAgain"));b.appendChild(l);k.style.paddingBottom="30px";k.appendChild(b)}var g=mxUtils.bind(this,function(){null!=k.parentNode&&(k.parentNode.removeChild(k),this.bannerShowing=!1,f.checked||d)&&(this["hideBanner"+a]=!0,isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings["close"+a]=Date.now(),mxSettings.save()))});mxEvent.addListener(e,
-"click",mxUtils.bind(this,function(a){mxEvent.consume(a);g()}));var p=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){g()}),1E3)});mxEvent.addListener(k,"click",mxUtils.bind(this,function(a){var b=mxEvent.getSource(a);b!=f&&b!=l?(null!=c&&c(),g(),mxEvent.consume(a)):p()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(p,
-3E4);e=!0}return e};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(a,b,c,d){a=a.toDataURL("image/"+c);if(null!=a&&6<a.length)null!=b&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(b))),0<d&&(a=Editor.writeGraphModelToPng(a,"pHYs",
-"dpi",d));else throw{message:mxResources.get("unknownError")};return a};EditorUi.prototype.saveCanvas=function(a,b,c,d,f){var e="jpeg"==c?"jpg":c;d=this.getBaseFilename(d)+"."+e;a=this.createImageDataUri(a,b,c,f);this.saveData(d,e,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||
-this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height="380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d,f,g){"text/xml"!=c||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+
-"."+(null!=g?g:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=d?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==c||"image/"!=c.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,c,d);else{var e=document.createElement("a");
-g=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof e.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var k=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);g=65==(k?parseInt(k[2],10):!1)?!1:g}if(g||this.isOffline()){e.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));g?e.download=b:e.setAttribute("target","_blank");document.body.appendChild(e);try{window.setTimeout(function(){URL.revokeObjectURL(e.href)},2E4),e.click(),
-e.parentNode.removeChild(e)}catch(A){}}else this.createEchoRequest(a,b,c,d,f).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,f,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=f?"&format="+f:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),k=Array(e),f=0;f<e;++f){for(var g=
-1024*f,m=Math.min(g+1024,d),n=Array(m-g),y=0;g<m;++y,++g)n[y]=c[g].charCodeAt(0);k[f]=new Uint8Array(n)}return new Blob(k,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,f,g,m,n){g=null!=g?g:!1;m=null!=m?m:"vsdx"!=f&&(!mxClient.IS_IOS||!navigator.standalone);f=this.getServiceCount(g);isLocalStorage&&f++;var e=4>=f?2:6<f?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e)if(null!=c&&"image/"==c.substring(0,6))this.openInNewWindow(a,c,d);else if(null!=c&&"text/html"==
-c.substring(0,9)){var k=new EmbedDialog(this,a);this.showDialog(k.container,440,240,!0,!0);k.init()}else{var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write("<pre>"+mxUtils.htmlEntities(a,!1)+"</pre>"),f.document.close())}else e==App.MODE_DEVICE||"download"==e?this.doSaveLocalFile(a,b,c,d,null,n):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(k){try{this.exportFile(a,b,c,d,e,k)}catch(G){this.handleError(G)}}))}catch(B){this.handleError(B)}}),mxUtils.bind(this,
-function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,g,m,null,1<f,e,a,c,d);g=this.isServices(f)?f>e?390:270:160;this.showDialog(b.container,400,g,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):(a=c?a:btoa(unescape(encodeURIComponent(a))),d.document.write('<html><img style="max-width:100%;" src="data:'+
-b+";base64,"+a+'"/></html>')):d.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),d.document.close())};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),
-this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding=
-"4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var e=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});e.spin(this.exportDialog);
-this.editor.exportToCanvas(mxUtils.bind(this,function(a){e.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);
-mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,
-arguments)};EditorUi.prototype.saveData=function(a,b,c,d,f){this.isLocalFileSave()?this.saveLocalFile(c,a,d,f,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,e){return this.createEchoRequest(c,a,d,f,b,e)}),c,f,d)};EditorUi.prototype.saveRequest=function(a,b,c,d,f,g,m){m=null!=m?m:!mxClient.IS_IOS||!navigator.standalone;var e=this.getServiceCount(!1);isLocalStorage&&e++;var k=4>=e?2:6<e?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,e){if("_blank"==e||null!=a&&0<a.length){var k=c("_blank"==
-e?null:a,e==App.MODE_DEVICE||"download"==e||null==e||"_blank"==e?"0":"1");null!=k&&(e==App.MODE_DEVICE||"download"==e||"_blank"==e?k.simulate(document,"_blank"):this.pickFolder(e,mxUtils.bind(this,function(c){g=null!=g?g:"pdf"==b?"application/pdf":"image/"+b;if(null!=d)try{this.exportFile(d,a,g,!0,e,c)}catch(B){this.handleError(B)}else this.spinner.spin(document.body,mxResources.get("saving"))&&k.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=k.getStatus()&&299>=k.getStatus())try{this.exportFile(k.getText(),
-a,g,!0,e,c)}catch(B){this.handleError(B)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,m,null,1<e,k,d,g,f);e=this.isServices(e)?4<e?390:270:160;this.showDialog(a.container,380,e,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
-EditorUi.prototype.exportFile=function(a,b,c,d,f,g){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,f,g,m,n,A,x,y,E){if(this.spinner.spin(document.body,mxResources.get("export")))try{var e=this.editor.graph.isSelectionEmpty();c=null!=c?c:e;var k=b?null:this.editor.graph.background;k==mxConstants.NONE&&(k=null);null==k&&0==b&&(k=y?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(k,a,m,n,null,c,null,null,"blank"==
-x?"_blank":"self"==x?"_top":null,null,!0,y,E);d&&this.editor.graph.addSvgShadow(l);var p=this.getBaseFilename()+".svg",q=mxUtils.bind(this,function(a){this.spinner.stop();f&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,A,null,null,null,!1));var b='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(p,"svg",b,"image/svg+xml"):
-this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.editor.addFontCss(l);this.editor.graph.mathEnabled&&this.editor.addMathCss(l);g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(l,q,this.thumbImageCache)):q(l)}catch(F){this.handleError(F)}};EditorUi.prototype.addRadiobox=function(a,b,c,d,f,g,m){return this.addCheckbox(a,c,d,f,g,m,!0,b)};EditorUi.prototype.addCheckbox=function(a,
-b,c,d,f,g,m,n){g=null!=g?g:!0;var e=document.createElement("input");e.style.marginRight="8px";e.style.marginTop="16px";e.setAttribute("type",m?"radio":"checkbox");m="geCheckbox-"+Editor.guid();e.id=m;null!=n&&e.setAttribute("name",n);c&&(e.setAttribute("checked","checked"),e.defaultChecked=!0);d&&e.setAttribute("disabled","disabled");g&&(a.appendChild(e),c=document.createElement("label"),mxUtils.write(c,b),c.setAttribute("for",m),a.appendChild(c),f||mxUtils.br(a));return e};EditorUi.prototype.addEditButton=
-function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),e="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(e=window.location.href);var k=document.createElement("select");k.style.width="120px";k.style.marginLeft="8px";k.style.marginRight="10px";k.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));k.appendChild(d);d=document.createElement("option");
-d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");k.appendChild(d);a.appendChild(k);mxEvent.addListener(k,"change",mxUtils.bind(this,function(){if("custom"==k.value){var a=new FilenameDialog(this,e,mxResources.get("ok"),function(a){null!=a?e=a:k.value="blank"},mxResources.get("url"),null,null,null,null,function(){k.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||
-b.checked)?k.removeAttribute("disabled"):k.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===k.value?"_blank":e:null},getEditInput:function(){return c},getEditSelect:function(){return k}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){f.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=k&&k!=mxConstants.NONE?"border:1px solid black;background-color:"+k:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
-Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var e=document.createElement("option");e.setAttribute("value","auto");mxUtils.write(e,mxResources.get("automatic"));d.appendChild(e);e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("openInNewWindow"));d.appendChild(e);e=document.createElement("option");
-e.setAttribute("value","self");mxUtils.write(e,mxResources.get("openInThisWindow"));d.appendChild(e);b&&(e=document.createElement("option"),e.setAttribute("value","frame"),mxUtils.write(e,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(e));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var k="#0000ff",f=null,f=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(k||"none",function(a){k=a;c()});mxEvent.consume(a)}));c();f.style.padding=
-mxClient.IS_FF?"4px 2px 4px 2px":"4px";f.style.marginLeft="4px";f.style.height="22px";f.style.width="22px";f.style.position="relative";f.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";f.className="geColorBtn";a.appendChild(f);mxUtils.br(a);return{getColor:function(){return k},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,c,d,f,g,m){m=null!=m?m:[];d&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
-"1"!=urlParams.dev||m.push("lightbox=1"),"auto"!=a&&m.push("target="+a),null!=b&&b!=mxConstants.NONE&&m.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=f&&0<f.length&&m.push("edit="+encodeURIComponent(f)),g&&m.push("layers=1"),this.editor.graph.foldingEnabled&&m.push("nav=1"));c&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&m.push("page-id="+this.currentPage.getId());return m};EditorUi.prototype.createLink=function(a,b,c,d,f,g,m,n,A,x){A=this.createUrlParameters(a,
-b,c,d,f,g,A);a=this.getCurrentFile();b=!0;null!=m?c="#U"+encodeURIComponent(m):(a=this.getCurrentFile(),n||null==a||a.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&A.push("title="+encodeURIComponent(a.getTitle()));x&&1<c.length&&(A.push("open="+c.substring(1)),c="");return(d&&
-"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<A.length?"?"+A.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,f,g,m,n,A,x,y){this.getBasenames();var e={};""!=f&&f!=mxConstants.NONE&&(e.highlight=f);"auto"!==d&&(e.target=d);A||(e.lightbox=!1);e.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(e.zoom=c/100);c=[];m&&(c.push("pages"),
-e.resize=!0,null!=this.pages&&null!=this.currentPage&&(e.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),e.resize=!0);n&&c.push("layers");0<c.length&&(A&&c.push("lightbox"),e.toolbar=c.join(" "));null!=x&&0<x.length&&(e.edit=x);null!=a?e.url=a:e.xml=this.getFileData(!0,null,null,null,null,!m);b='<div class="mxgraph" style="'+(g?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(e))+'"></div>';a=null!=a?"&fetch="+
-encodeURIComponent(a):"";y(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,d){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,
-mxResources.get("html"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";e.appendChild(k);var f=document.createElement("div");f.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";g.setAttribute("value","url");g.setAttribute("type","radio");g.setAttribute("name","type-embedhtmldialog");k=g.cloneNode(!0);k.setAttribute("value",
-"copy");f.appendChild(k);var l=document.createElement("span");mxUtils.write(l,mxResources.get("includeCopyOfMyDiagram"));f.appendChild(l);mxUtils.br(f);f.appendChild(g);l=document.createElement("span");mxUtils.write(l,mxResources.get("publicDiagramUrl"));f.appendChild(l);var m=this.getCurrentFile();null==c&&null!=m&&m.constructor==window.DriveFile&&(l=document.createElement("a"),l.style.paddingLeft="12px",l.style.color="gray",l.style.cursor="pointer",mxUtils.write(l,mxResources.get("share")),f.appendChild(l),
-mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));k.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");e.appendChild(f);var p=this.addLinkSection(e),n=this.addCheckbox(e,mxResources.get("zoom"),!0,null,!0);mxUtils.write(e,":");var z=document.createElement("input");z.setAttribute("type","text");z.style.marginRight="16px";z.style.width="60px";z.style.marginLeft="4px";z.style.marginRight="12px";z.value=
-"100%";e.appendChild(z);var B=this.addCheckbox(e,mxResources.get("fit"),!0),f=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(e,mxResources.get("allPages"),f,!f),D=this.addCheckbox(e,mxResources.get("layers"),!0),C=this.addCheckbox(e,mxResources.get("lightbox"),!0),F=this.addEditButton(e,C),H=F.getEditInput();H.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?H.removeAttribute("disabled"):H.setAttribute("disabled","disabled");H.checked&&C.checked?F.getEditSelect().removeAttribute("disabled"):
-F.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,e,mxUtils.bind(this,function(){d(g.checked?c:null,n.checked,z.value,p.getTarget(),p.getColor(),B.checked,G.checked,D.checked,C.checked,F.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);k.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,f,g){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,a||mxResources.get("link"));k.style.cssText=
-"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";e.appendChild(k);var l=this.getCurrentFile(),k="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=l&&l.constructor==window.DriveFile&&!b){a=80;var k="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var p=document.createElement("div");
-p.style.whiteSpace="normal";mxUtils.write(p,mxResources.get("linkAccountRequired"));m.appendChild(p);p=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));p.style.marginTop="12px";p.className="geBtn";m.appendChild(p);e.appendChild(m);p=document.createElement("a");p.style.paddingLeft="12px";p.style.color="gray";p.style.fontSize="11px";p.style.cursor="pointer";mxUtils.write(p,mxResources.get("check"));m.appendChild(p);mxEvent.addListener(p,"click",
-mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var n=null,q=null;if(null!=c||null!=d)a+=30,mxUtils.write(e,mxResources.get("width")+":"),n=document.createElement("input"),n.setAttribute("type","text"),
-n.style.marginRight="16px",n.style.width="50px",n.style.marginLeft="6px",n.style.marginRight="16px",n.style.marginBottom="10px",n.value="100%",e.appendChild(n),mxUtils.write(e,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=d+"px",e.appendChild(q),mxUtils.br(e);var t=this.addLinkSection(e,g);c=null!=this.pages&&1<this.pages.length;var G=null;if(null==l||l.constructor!=window.DriveFile||
-b)G=this.addCheckbox(e,mxResources.get("allPages"),c,!c);var D=this.addCheckbox(e,mxResources.get("lightbox"),!0,null,null,!g),C=this.addEditButton(e,D),F=C.getEditInput();g&&(F.style.marginLeft=D.style.marginLeft,D.style.display="none",a-=30);var H=this.addCheckbox(e,mxResources.get("layers"),!0);H.style.marginLeft=F.style.marginLeft;H.style.marginBottom="16px";H.style.marginTop="8px";mxEvent.addListener(D,"change",function(){D.checked?(H.removeAttribute("disabled"),F.removeAttribute("disabled")):
-(H.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&D.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,e,mxUtils.bind(this,function(){f(t.getTarget(),t.getColor(),null==G?!0:G.checked,D.checked,C.getLink(),H.checked,null!=n?n.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),k);this.showDialog(b.container,340,254+a,!0,!0);null!=n?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||
-5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)):t.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d,f){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,mxResources.get("image"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(f?"10":"4")+"px";e.appendChild(k);if(f){mxUtils.write(e,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type",
-"text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";e.appendChild(g);mxUtils.write(e,mxResources.get("borderWidth")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";l.style.marginLeft="4px";l.value=this.lastExportBorder||"0";e.appendChild(l);mxUtils.br(e)}var m=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
-p=d?null:this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),!0),k=this.editor.graph,n=d?null:this.addCheckbox(e,mxResources.get("transparentBackground"),k.background==mxConstants.NONE||null==k.background);null!=n&&(n.style.marginBottom="16px");a=new CustomDialog(this,e,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,b=parseInt(l.value)||0;c(!m.checked,null!=p?p.checked:!1,null!=n?n.checked:!1,a,b)}),null,a,b);this.showDialog(a.container,300,(f?25:0)+(d?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
-function(a,b,c,d,f,g,m,n,A){m=null!=m?m:!0;var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=this.editor.graph,l="jpeg"==n?196:300,p=document.createElement("h3");mxUtils.write(p,a);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";e.appendChild(p);mxUtils.write(e,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight=
-"12px";q.value=this.lastExportZoom||"100%";e.appendChild(q);mxUtils.write(e,mxResources.get("borderWidth")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.value=this.lastExportBorder||"0";e.appendChild(t);mxUtils.br(e);var u=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,k.isSelectionEmpty()),C=document.createElement("input");C.style.marginTop="16px";C.style.marginRight="8px";C.style.marginLeft=
-"24px";C.setAttribute("disabled","disabled");C.setAttribute("type","checkbox");var v=document.createElement("select");v.style.marginTop="16px";v.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(p=0;p<a.length;p++)if(!k.isSelectionEmpty()||"selectionOnly"!=a[p]){var H=document.createElement("option");mxUtils.write(H,mxResources.get(a[p]));H.setAttribute("value",a[p]);v.appendChild(H)}A?(mxUtils.write(e,mxResources.get("size")+":"),e.appendChild(v),mxUtils.br(e),l+=26,mxEvent.addListener(v,
-"change",function(){"selectionOnly"==v.value&&(u.checked=!0)})):g&&(e.appendChild(C),mxUtils.write(e,mxResources.get("crop")),mxUtils.br(e),l+=26,mxEvent.addListener(u,"change",function(){u.checked?C.removeAttribute("disabled"):C.setAttribute("disabled","disabled")}));k.isSelectionEmpty()?A&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",l-=26):(v.value="diagram",C.setAttribute("checked","checked"),C.defaultChecked=!0,mxEvent.addListener(u,
-"change",function(){v.value=u.checked?"selectionOnly":"diagram"}));var L=this.addCheckbox(e,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=n),I=null;Editor.isDarkMode()&&(I=this.addCheckbox(e,mxResources.get("dark"),!0),l+=26);var M=this.addCheckbox(e,mxResources.get("shadow"),k.shadowVisible),N=document.createElement("input");N.style.marginTop="16px";N.style.marginRight="8px";N.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||N.setAttribute("disabled","disabled");
-b&&(e.appendChild(N),mxUtils.write(e,mxResources.get("embedImages")),mxUtils.br(e),l+=26);var K=null;if("png"==n||"jpeg"==n)K=this.addCheckbox(e,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=26;var Z=this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),m,null,null,"jpeg"!=n);Z.style.marginBottom="16px";var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";b=document.createElement("option");
-b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));J.appendChild(b);"svg"==n&&(mxUtils.write(e,mxResources.get("links")+":"),e.appendChild(J),mxUtils.br(e),mxUtils.br(e),l+=26);c=new CustomDialog(this,e,
-mxUtils.bind(this,function(){this.lastExportBorder=t.value;this.lastExportZoom=q.value;f(q.value,L.checked,!u.checked,M.checked,Z.checked,N.checked,t.value,C.checked,!1,J.value,null!=K?K.checked:null,null!=I?I.checked:null,v.value)}),null,c,d);this.showDialog(c.container,340,l,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,d,f){var e=document.createElement("div");
-e.style.whiteSpace="nowrap";var k=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";e.appendChild(g)}var l=this.addCheckbox(e,mxResources.get("fit"),!0),m=this.addCheckbox(e,mxResources.get("shadow"),k.shadowVisible&&d,!d),p=this.addCheckbox(e,c),n=this.addCheckbox(e,mxResources.get("lightbox"),!0),q=this.addEditButton(e,n),B=q.getEditInput(),G=1<k.model.getChildCount(k.model.getRoot()),
-D=this.addCheckbox(e,mxResources.get("layers"),G,!G);D.style.marginLeft=B.style.marginLeft;D.style.marginBottom="12px";D.style.marginTop="8px";mxEvent.addListener(n,"change",function(){n.checked?(G&&D.removeAttribute("disabled"),B.removeAttribute("disabled")):(D.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"));B.checked&&n.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,e,mxUtils.bind(this,
-function(){a(l.checked,m.checked,p.checked,n.checked,q.getLink(),D.checked)}),null,mxResources.get("embed"),f);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,d,f,g,m,n){function e(b){var e=" ",p="";d&&(e=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=l?"&page="+l:"")+(f?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",p+="cursor:pointer;");a&&(p+="max-width:100%;");var n="";c&&(n=' width="'+Math.round(k.width)+'" height="'+Math.round(k.height)+'"');m('<img src="'+b+'"'+n+(""!=p?' style="'+p+'"':"")+e+"/>")}var k=this.editor.graph.getGraphBounds(),l=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=d?this.getFileData(!0):null;a=
-this.createImageDataUri(a,b,"png");e(a)}),null,null,null,mxUtils.bind(this,function(a){n({message:mxResources.get("unknownError")})}),null,!0,c?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),k.width*k.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var p="";c&&(p="&w="+Math.round(2*k.width)+"&h="+Math.round(2*k.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+p+"&xml="+encodeURIComponent(b));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&
-299>=q.getStatus()?e("data:image/png;base64,"+q.getText()):n({message:mxResources.get("unknownError")})}))}else n({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,b,c,d,f,g,m){var e=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!c),k=e.getElementsByTagName("a");if(null!=k)for(var l=0;l<k.length;l++){var p=k[l].getAttribute("href");null!=p&&"#"==p.charAt(0)&&"_blank"==k[l].getAttribute("target")&&k[l].removeAttribute("target")}d&&
-e.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(e);if(c){var n=" ",q="";d&&(n="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(f?"&edit=_blank":"")+(g?"&layers=1":
-"")+"');}})(this);\"",q+="cursor:pointer;");a&&(q+="max-width:100%;");this.editor.convertImages(e,mxUtils.bind(this,function(a){m('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=q?' style="'+q+'"':"")+n+"/>")}))}else q="",d&&(b=this.getSelectedPageIndex(),e.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
+"#2a2a2a",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxConstants.DROP_TARGET_COLOR="#00ff00");Editor.sketchFontFamily="Architects Daughter";Editor.sketchFontSource="https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter";"1"==urlParams.sketch&&(Graph.prototype.defaultVertexStyle={pointerEvents:"0",hachureGap:"4"},Graph.prototype.defaultEdgeStyle={edgeStyle:"none",rounded:"0",curved:"1",jettySize:"auto",orthogonalLoop:"1",
+endArrow:"open",startSize:"14",endSize:"14",sourcePerimeterSpacing:"8",targetPerimeterSpacing:"8"},"0"!=urlParams.rough&&(Graph.prototype.defaultVertexStyle.fontFamily=Editor.sketchFontFamily,Graph.prototype.defaultVertexStyle.fontSource=Editor.sketchFontSource,Graph.prototype.defaultVertexStyle.fontSize="20",Graph.prototype.defaultVertexStyle.sketch="1",Graph.prototype.defaultEdgeStyle.fontFamily=Editor.sketchFontFamily,Graph.prototype.defaultEdgeStyle.fontSource=Editor.sketchFontSource,Graph.prototype.defaultEdgeStyle.fontSize=
+"20",Graph.prototype.defaultEdgeStyle.sketch="1",Menus.prototype.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(Menus.prototype.defaultFonts)),Editor.configurationKey=".sketch-configuration",Editor.settingsKey=".sketch-config",Graph.prototype.defaultGridEnabled=
+!1,Graph.prototype.defaultPageVisible=!1,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(a,b,c,d,f){a=new ImageDialog(this,a,b,c,d,f);this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a,b){if(!b){var c=new ChangePageSetup(this,null,a);c.ignoreColor=
+!0;this.editor.graph.model.execute(c)}});var c=new BackgroundImageDialog(this,a,b);this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,d,f){a=new LibraryDialog(this,a,b,c,d,f);this.showDialog(a.container,640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var c=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var b=c.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",
+mxUtils.bind(this,function(a){this.editor.graph.isSelectionEmpty()&&b.refresh()}));return b};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer geSidebarFooter");a.style.position="absolute";a.style.overflow="hidden";var b=document.createElement("a");b.className="geTitle";b.style.color="#DF6C0C";b.style.fontWeight="bold";b.style.height="100%";b.style.paddingTop="9px";b.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,
+mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c,d,f,g,m){var e=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},k=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&
+null!=a.message)try{m?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(B){}if(null!=k||null!=b){m=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok"),p=null;b=null!=b?b:mxResources.get("error");if(null!=k){null!=k.retry&&(l=mxResources.get("cancel"),p=function(){e();k.retry()});if(404==k.code||404==k.status||403==k.code){m=403==
+k.code?null!=k.message?mxUtils.htmlEntities(k.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=f?f:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var n=null!=f?null:null!=g?g:window.location.hash;if(null!=n&&("#G"==n.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==n.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&
+"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==k.code||404==k.status)){n="#U"==n.substring(0,2)?n.substring(45,n.lastIndexOf("%26ex")):n.substring(2);this.showError(b,m,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+n);this.handleError(a,b,c,d,f)}),p,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){d.innerHTML="";for(var a=
+0;a<b.length;a++){var c=document.createElement("option");mxUtils.write(c,b[a].displayName);c.value=a;d.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(c,"<"+b[a].email+">");c.setAttribute("disabled","disabled");d.appendChild(c)}c=document.createElement("option");mxUtils.write(c,mxResources.get("addAccount"));c.value=b.length;d.appendChild(c)}var b=this.drive.getUsersList(),c=document.createElement("div"),e=document.createElement("span");e.style.marginTop=
+"6px";mxUtils.write(e,mxResources.get("changeUser")+": ");c.appendChild(e);var d=document.createElement("select");d.style.width="200px";a();mxEvent.addListener(d,"change",mxUtils.bind(this,function(){var c=d.value,e=b.length!=c;e&&this.drive.setUser(b[c]);this.drive.authorize(e,mxUtils.bind(this,function(){e||(b=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));c.appendChild(d);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),
+!0)}));this.showDialog(c.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=c&&c()}),480,150);return}}null!=k.message?m=""==k.message&&null!=k.name?mxUtils.htmlEntities(k.name):mxUtils.htmlEntities(k.message):null!=k.response&&null!=k.response.error?m=mxUtils.htmlEntities(k.response.error):"undefined"!==typeof window.App&&(k.code==App.ERROR_TIMEOUT?m=mxUtils.htmlEntities(mxResources.get("timeout")):k.code==App.ERROR_BUSY?m=mxUtils.htmlEntities(mxResources.get("busy")):
+"string"===typeof k&&0<k.length&&(m=mxUtils.htmlEntities(k)))}var q=g=null;null!=k&&null!=k.helpLink&&(g=mxResources.get("help"),q=mxUtils.bind(this,function(){return this.editor.graph.openLink(k.helpLink)}));this.showError(b,m,l,c,p,null,null,g,q,null,null,null,d?c:null)}else null!=c&&c()};EditorUi.prototype.alert=function(a,b,c){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,c||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,c,d,f,g){var e=null!=
+this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},k=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){e();null!=b&&b()},function(){e();null!=c&&c()},d,f,null,null,null,null,k);this.showDialog(a.container,340,46+k,!0,g);a.init()};EditorUi.prototype.showBanner=function(a,b,c,d){var e=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var k=document.createElement("div");
+k.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(k.style,"box-shadow","1px 1px 2px 0px #ddd");mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(k.style,"transition","all 1s ease");k.className="geBtn gePrimaryBtn";e=document.createElement("img");e.setAttribute("src",IMAGE_PATH+
+"/logo.png");e.setAttribute("border","0");e.setAttribute("align","absmiddle");e.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";k.appendChild(e);e=document.createElement("img");e.setAttribute("src",Dialog.prototype.closeImage);e.setAttribute("title",mxResources.get(d?"doNotShowAgain":"close"));e.setAttribute("border","0");e.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";k.appendChild(e);mxUtils.write(k,
+b);document.body.appendChild(k);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var f=document.createElement("input");f.setAttribute("type","checkbox");f.setAttribute("id","geDoNotShowAgainCheckbox");f.style.marginRight="6px";if(!d){b.appendChild(f);var l=document.createElement("label");l.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(l,mxResources.get("doNotShowAgain"));b.appendChild(l);k.style.paddingBottom=
+"30px";k.appendChild(b)}var g=mxUtils.bind(this,function(){null!=k.parentNode&&(k.parentNode.removeChild(k),this.bannerShowing=!1,f.checked||d)&&(this["hideBanner"+a]=!0,isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings["close"+a]=Date.now(),mxSettings.save()))});mxEvent.addListener(e,"click",mxUtils.bind(this,function(a){mxEvent.consume(a);g()}));var p=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,
+function(){g()}),1E3)});mxEvent.addListener(k,"click",mxUtils.bind(this,function(a){var b=mxEvent.getSource(a);b!=f&&b!=l?(null!=c&&c(),g(),mxEvent.consume(a)):p()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(p,3E4);e=!0}return e};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=
+function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(a,b,c,d){a=a.toDataURL("image/"+c);if(null!=a&&6<a.length)null!=b&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(b))),0<d&&(a=Editor.writeGraphModelToPng(a,"pHYs","dpi",d));else throw{message:mxResources.get("unknownError")};return a};EditorUi.prototype.saveCanvas=function(a,b,c,d,f){var e="jpeg"==c?"jpg":c;d=this.getBaseFilename(d)+"."+e;a=this.createImageDataUri(a,b,c,f);this.saveData(d,
+e,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height=
+"380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d,f,g){"text/xml"!=c||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+"."+(null!=g?g:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=d?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),
+null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==c||"image/"!=c.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,c,d);else{var e=document.createElement("a");g=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof e.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var k=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
+g=65==(k?parseInt(k[2],10):!1)?!1:g}if(g||this.isOffline()){e.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));g?e.download=b:e.setAttribute("target","_blank");document.body.appendChild(e);try{window.setTimeout(function(){URL.revokeObjectURL(e.href)},2E4),e.click(),e.parentNode.removeChild(e)}catch(A){}}else this.createEchoRequest(a,b,c,d,f).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,f,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,
+a+(null!=c?"&mime="+c:"")+(null!=f?"&format="+f:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),k=Array(e),f=0;f<e;++f){for(var g=1024*f,m=Math.min(g+1024,d),n=Array(m-g),y=0;g<m;++y,++g)n[y]=c[g].charCodeAt(0);k[f]=new Uint8Array(n)}return new Blob(k,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,f,g,m,n){g=null!=g?g:!1;m=null!=m?
+m:"vsdx"!=f&&(!mxClient.IS_IOS||!navigator.standalone);f=this.getServiceCount(g);isLocalStorage&&f++;var e=4>=f?2:6<f?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e)if(null!=c&&"image/"==c.substring(0,6))this.openInNewWindow(a,c,d);else if(null!=c&&"text/html"==c.substring(0,9)){var k=new EmbedDialog(this,a);this.showDialog(k.container,440,240,!0,!0);k.init()}else{var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write("<pre>"+mxUtils.htmlEntities(a,
+!1)+"</pre>"),f.document.close())}else e==App.MODE_DEVICE||"download"==e?this.doSaveLocalFile(a,b,c,d,null,n):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(k){try{this.exportFile(a,b,c,d,e,k)}catch(G){this.handleError(G)}}))}catch(B){this.handleError(B)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,g,m,null,1<f,e,a,c,d);g=this.isServices(f)?f>e?390:270:160;this.showDialog(b.container,400,g,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=
+function(a,b,c){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):(a=c?a:btoa(unescape(encodeURIComponent(a))),d.document.write('<html><img style="max-width:100%;" src="data:'+b+";base64,"+a+'"/></html>')):d.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),d.document.close())};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=
+function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");
+this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var e=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});e.spin(this.exportDialog);this.editor.exportToCanvas(mxUtils.bind(this,function(a){e.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,
+null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,
+function(a){this.spinner.stop();this.handleError(a)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,c,d,f){this.isLocalFileSave()?this.saveLocalFile(c,a,d,f,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,e){return this.createEchoRequest(c,a,d,
+f,b,e)}),c,f,d)};EditorUi.prototype.saveRequest=function(a,b,c,d,f,g,m){m=null!=m?m:!mxClient.IS_IOS||!navigator.standalone;var e=this.getServiceCount(!1);isLocalStorage&&e++;var k=4>=e?2:6<e?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,e){if("_blank"==e||null!=a&&0<a.length){var k=c("_blank"==e?null:a,e==App.MODE_DEVICE||"download"==e||null==e||"_blank"==e?"0":"1");null!=k&&(e==App.MODE_DEVICE||"download"==e||"_blank"==e?k.simulate(document,"_blank"):this.pickFolder(e,mxUtils.bind(this,
+function(c){g=null!=g?g:"pdf"==b?"application/pdf":"image/"+b;if(null!=d)try{this.exportFile(d,a,g,!0,e,c)}catch(B){this.handleError(B)}else this.spinner.spin(document.body,mxResources.get("saving"))&&k.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=k.getStatus()&&299>=k.getStatus())try{this.exportFile(k.getText(),a,g,!0,e,c)}catch(B){this.handleError(B)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),
+mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,m,null,1<e,k,d,g,f);e=this.isServices(e)?4<e?390:270:160;this.showDialog(a.container,380,e,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,d,f,g){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,
+f,g,m,n,A,x,y,E){if(this.spinner.spin(document.body,mxResources.get("export")))try{var e=this.editor.graph.isSelectionEmpty();c=null!=c?c:e;var k=b?null:this.editor.graph.background;k==mxConstants.NONE&&(k=null);null==k&&0==b&&(k=y?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(k,a,m,n,null,c,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,y,E);d&&this.editor.graph.addSvgShadow(l);var p=this.getBaseFilename()+".svg",q=mxUtils.bind(this,function(a){this.spinner.stop();
+f&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,A,null,null,null,!1));var b='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(p,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.editor.addFontCss(l);
+this.editor.graph.mathEnabled&&this.editor.addMathCss(l);g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(l,q,this.thumbImageCache)):q(l)}catch(F){this.handleError(F)}};EditorUi.prototype.addRadiobox=function(a,b,c,d,f,g,m){return this.addCheckbox(a,c,d,f,g,m,!0,b)};EditorUi.prototype.addCheckbox=function(a,b,c,d,f,g,m,n){g=null!=g?g:!0;var e=document.createElement("input");e.style.marginRight="8px";e.style.marginTop="16px";e.setAttribute("type",m?"radio":"checkbox");
+m="geCheckbox-"+Editor.guid();e.id=m;null!=n&&e.setAttribute("name",n);c&&(e.setAttribute("checked","checked"),e.defaultChecked=!0);d&&e.setAttribute("disabled","disabled");g&&(a.appendChild(e),c=document.createElement("label"),mxUtils.write(c,b),c.setAttribute("for",m),a.appendChild(c),f||mxUtils.br(a));return e};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),e="";null!=d&&d.getMode()!=
+App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(e=window.location.href);var k=document.createElement("select");k.style.width="120px";k.style.marginLeft="8px";k.style.marginRight="10px";k.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));k.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");k.appendChild(d);a.appendChild(k);mxEvent.addListener(k,
+"change",mxUtils.bind(this,function(){if("custom"==k.value){var a=new FilenameDialog(this,e,mxResources.get("ok"),function(a){null!=a?e=a:k.value="blank"},mxResources.get("url"),null,null,null,null,function(){k.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?k.removeAttribute("disabled"):k.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?
+"blank"===k.value?"_blank":e:null},getEditInput:function(){return c},getEditSelect:function(){return k}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){f.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=k&&k!=mxConstants.NONE?"border:1px solid black;background-color:"+k:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");
+d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var e=document.createElement("option");e.setAttribute("value","auto");mxUtils.write(e,mxResources.get("automatic"));d.appendChild(e);e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("openInNewWindow"));d.appendChild(e);e=document.createElement("option");e.setAttribute("value","self");mxUtils.write(e,mxResources.get("openInThisWindow"));d.appendChild(e);b&&
+(e=document.createElement("option"),e.setAttribute("value","frame"),mxUtils.write(e,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(e));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var k="#0000ff",f=null,f=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(k||"none",function(a){k=a;c()});mxEvent.consume(a)}));c();f.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";f.style.marginLeft="4px";f.style.height="22px";f.style.width=
+"22px";f.style.position="relative";f.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";f.className="geColorBtn";a.appendChild(f);mxUtils.br(a);return{getColor:function(){return k},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,c,d,f,g,m){m=null!=m?m:[];d&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&"1"!=urlParams.dev||m.push("lightbox=1"),"auto"!=a&&m.push("target="+a),null!=b&&b!=mxConstants.NONE&&
+m.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=f&&0<f.length&&m.push("edit="+encodeURIComponent(f)),g&&m.push("layers=1"),this.editor.graph.foldingEnabled&&m.push("nav=1"));c&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&m.push("page-id="+this.currentPage.getId());return m};EditorUi.prototype.createLink=function(a,b,c,d,f,g,m,n,A,x){A=this.createUrlParameters(a,b,c,d,f,g,A);a=this.getCurrentFile();b=!0;null!=m?c="#U"+encodeURIComponent(m):(a=this.getCurrentFile(),
+n||null==a||a.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&A.push("title="+encodeURIComponent(a.getTitle()));x&&1<c.length&&(A.push("open="+c.substring(1)),c="");return(d&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
+EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<A.length?"?"+A.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,f,g,m,n,A,x,y){this.getBasenames();var e={};""!=f&&f!=mxConstants.NONE&&(e.highlight=f);"auto"!==d&&(e.target=d);A||(e.lightbox=!1);e.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(e.zoom=c/100);c=[];m&&(c.push("pages"),e.resize=!0,null!=this.pages&&null!=this.currentPage&&(e.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),
+e.resize=!0);n&&c.push("layers");0<c.length&&(A&&c.push("lightbox"),e.toolbar=c.join(" "));null!=x&&0<x.length&&(e.edit=x);null!=a?e.url=a:e.xml=this.getFileData(!0,null,null,null,null,!m);b='<div class="mxgraph" style="'+(g?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(e))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";y(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":
+EditorUi.lightboxHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,d){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,mxResources.get("html"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";e.appendChild(k);var f=
+document.createElement("div");f.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";g.setAttribute("value","url");g.setAttribute("type","radio");g.setAttribute("name","type-embedhtmldialog");k=g.cloneNode(!0);k.setAttribute("value","copy");f.appendChild(k);var l=document.createElement("span");mxUtils.write(l,mxResources.get("includeCopyOfMyDiagram"));f.appendChild(l);
+mxUtils.br(f);f.appendChild(g);l=document.createElement("span");mxUtils.write(l,mxResources.get("publicDiagramUrl"));f.appendChild(l);var m=this.getCurrentFile();null==c&&null!=m&&m.constructor==window.DriveFile&&(l=document.createElement("a"),l.style.paddingLeft="12px",l.style.color="gray",l.style.cursor="pointer",mxUtils.write(l,mxResources.get("share")),f.appendChild(l),mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));k.setAttribute("checked",
+"checked");null==c&&g.setAttribute("disabled","disabled");e.appendChild(f);var p=this.addLinkSection(e),n=this.addCheckbox(e,mxResources.get("zoom"),!0,null,!0);mxUtils.write(e,":");var z=document.createElement("input");z.setAttribute("type","text");z.style.marginRight="16px";z.style.width="60px";z.style.marginLeft="4px";z.style.marginRight="12px";z.value="100%";e.appendChild(z);var B=this.addCheckbox(e,mxResources.get("fit"),!0),f=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(e,mxResources.get("allPages"),
+f,!f),D=this.addCheckbox(e,mxResources.get("layers"),!0),C=this.addCheckbox(e,mxResources.get("lightbox"),!0),F=this.addEditButton(e,C),H=F.getEditInput();H.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?H.removeAttribute("disabled"):H.setAttribute("disabled","disabled");H.checked&&C.checked?F.getEditSelect().removeAttribute("disabled"):F.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,e,mxUtils.bind(this,function(){d(g.checked?c:null,n.checked,
+z.value,p.getTarget(),p.getColor(),B.checked,G.checked,D.checked,C.checked,F.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);k.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,f,g){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,a||mxResources.get("link"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";e.appendChild(k);var l=this.getCurrentFile(),k="https://www.diagrams.net/doc/faq/publish-diagram-as-link";
+a=0;if(null!=l&&l.constructor==window.DriveFile&&!b){a=80;var k="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var p=document.createElement("div");p.style.whiteSpace="normal";mxUtils.write(p,mxResources.get("linkAccountRequired"));m.appendChild(p);p=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));
+p.style.marginTop="12px";p.className="geBtn";m.appendChild(p);e.appendChild(m);p=document.createElement("a");p.style.paddingLeft="12px";p.style.color="gray";p.style.fontSize="11px";p.style.cursor="pointer";mxUtils.write(p,mxResources.get("check"));m.appendChild(p);mxEvent.addListener(p,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,
+mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var n=null,q=null;if(null!=c||null!=d)a+=30,mxUtils.write(e,mxResources.get("width")+":"),n=document.createElement("input"),n.setAttribute("type","text"),n.style.marginRight="16px",n.style.width="50px",n.style.marginLeft="6px",n.style.marginRight="16px",n.style.marginBottom="10px",n.value="100%",e.appendChild(n),mxUtils.write(e,mxResources.get("height")+":"),
+q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=d+"px",e.appendChild(q),mxUtils.br(e);var t=this.addLinkSection(e,g);c=null!=this.pages&&1<this.pages.length;var G=null;if(null==l||l.constructor!=window.DriveFile||b)G=this.addCheckbox(e,mxResources.get("allPages"),c,!c);var D=this.addCheckbox(e,mxResources.get("lightbox"),!0,null,null,!g),C=this.addEditButton(e,D),F=C.getEditInput();g&&(F.style.marginLeft=
+D.style.marginLeft,D.style.display="none",a-=30);var H=this.addCheckbox(e,mxResources.get("layers"),!0);H.style.marginLeft=F.style.marginLeft;H.style.marginBottom="16px";H.style.marginTop="8px";mxEvent.addListener(D,"change",function(){D.checked?(H.removeAttribute("disabled"),F.removeAttribute("disabled")):(H.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&D.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});
+b=new CustomDialog(this,e,mxUtils.bind(this,function(){f(t.getTarget(),t.getColor(),null==G?!0:G.checked,D.checked,C.getLink(),H.checked,null!=n?n.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),k);this.showDialog(b.container,340,254+a,!0,!0);null!=n?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)):t.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d,f){var e=document.createElement("div");e.style.whiteSpace=
+"nowrap";var k=document.createElement("h3");mxUtils.write(k,mxResources.get("image"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(f?"10":"4")+"px";e.appendChild(k);if(f){mxUtils.write(e,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type","text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";e.appendChild(g);mxUtils.write(e,mxResources.get("borderWidth")+
+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";l.style.marginLeft="4px";l.value=this.lastExportBorder||"0";e.appendChild(l);mxUtils.br(e)}var m=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),p=d?null:this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),!0),k=this.editor.graph,n=d?null:this.addCheckbox(e,mxResources.get("transparentBackground"),k.background==mxConstants.NONE||
+null==k.background);null!=n&&(n.style.marginBottom="16px");a=new CustomDialog(this,e,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,b=parseInt(l.value)||0;c(!m.checked,null!=p?p.checked:!1,null!=n?n.checked:!1,a,b)}),null,a,b);this.showDialog(a.container,300,(f?25:0)+(d?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,f,g,m,n,A){m=null!=m?m:!0;var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=this.editor.graph,l="jpeg"==n?196:300,p=document.createElement("h3");
+mxUtils.write(p,a);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";e.appendChild(p);mxUtils.write(e,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";e.appendChild(q);mxUtils.write(e,mxResources.get("borderWidth")+":");var t=document.createElement("input");t.setAttribute("type","text");
+t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.value=this.lastExportBorder||"0";e.appendChild(t);mxUtils.br(e);var u=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,k.isSelectionEmpty()),C=document.createElement("input");C.style.marginTop="16px";C.style.marginRight="8px";C.style.marginLeft="24px";C.setAttribute("disabled","disabled");C.setAttribute("type","checkbox");var v=document.createElement("select");v.style.marginTop="16px";v.style.marginLeft="8px";a=["selectionOnly",
+"diagram","page"];for(p=0;p<a.length;p++)if(!k.isSelectionEmpty()||"selectionOnly"!=a[p]){var H=document.createElement("option");mxUtils.write(H,mxResources.get(a[p]));H.setAttribute("value",a[p]);v.appendChild(H)}A?(mxUtils.write(e,mxResources.get("size")+":"),e.appendChild(v),mxUtils.br(e),l+=26,mxEvent.addListener(v,"change",function(){"selectionOnly"==v.value&&(u.checked=!0)})):g&&(e.appendChild(C),mxUtils.write(e,mxResources.get("crop")),mxUtils.br(e),l+=26,mxEvent.addListener(u,"change",function(){u.checked?
+C.removeAttribute("disabled"):C.setAttribute("disabled","disabled")}));k.isSelectionEmpty()?A&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",l-=26):(v.value="diagram",C.setAttribute("checked","checked"),C.defaultChecked=!0,mxEvent.addListener(u,"change",function(){v.value=u.checked?"selectionOnly":"diagram"}));var L=this.addCheckbox(e,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=n),I=null;Editor.isDarkMode()&&(I=this.addCheckbox(e,
+mxResources.get("dark"),!0),l+=26);var M=this.addCheckbox(e,mxResources.get("shadow"),k.shadowVisible),N=document.createElement("input");N.style.marginTop="16px";N.style.marginRight="8px";N.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||N.setAttribute("disabled","disabled");b&&(e.appendChild(N),mxUtils.write(e,mxResources.get("embedImages")),mxUtils.br(e),l+=26);var K=null;if("png"==n||"jpeg"==n)K=this.addCheckbox(e,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,
+!1,!0),l+=26;var Z=this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),m,null,null,"jpeg"!=n);Z.style.marginBottom="16px";var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";b=document.createElement("option");b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));
+J.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));J.appendChild(b);"svg"==n&&(mxUtils.write(e,mxResources.get("links")+":"),e.appendChild(J),mxUtils.br(e),mxUtils.br(e),l+=26);c=new CustomDialog(this,e,mxUtils.bind(this,function(){this.lastExportBorder=t.value;this.lastExportZoom=q.value;f(q.value,L.checked,!u.checked,M.checked,Z.checked,N.checked,t.value,C.checked,!1,J.value,null!=K?K.checked:null,null!=I?I.checked:
+null,v.value)}),null,c,d);this.showDialog(c.container,340,l,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,d,f){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
+e.appendChild(g)}var l=this.addCheckbox(e,mxResources.get("fit"),!0),m=this.addCheckbox(e,mxResources.get("shadow"),k.shadowVisible&&d,!d),p=this.addCheckbox(e,c),n=this.addCheckbox(e,mxResources.get("lightbox"),!0),q=this.addEditButton(e,n),B=q.getEditInput(),G=1<k.model.getChildCount(k.model.getRoot()),D=this.addCheckbox(e,mxResources.get("layers"),G,!G);D.style.marginLeft=B.style.marginLeft;D.style.marginBottom="12px";D.style.marginTop="8px";mxEvent.addListener(n,"change",function(){n.checked?
+(G&&D.removeAttribute("disabled"),B.removeAttribute("disabled")):(D.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"));B.checked&&n.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,e,mxUtils.bind(this,function(){a(l.checked,m.checked,p.checked,n.checked,q.getLink(),D.checked)}),null,mxResources.get("embed"),f);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
+function(a,b,c,d,f,g,m,n){function e(b){var e=" ",p="";d&&(e=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(null!=l?"&page="+l:"")+(f?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",p+=
+"cursor:pointer;");a&&(p+="max-width:100%;");var n="";c&&(n=' width="'+Math.round(k.width)+'" height="'+Math.round(k.height)+'"');m('<img src="'+b+'"'+n+(""!=p?' style="'+p+'"':"")+e+"/>")}var k=this.editor.graph.getGraphBounds(),l=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=d?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");e(a)}),null,null,null,mxUtils.bind(this,function(a){n({message:mxResources.get("unknownError")})}),
+null,!0,c?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),k.width*k.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var p="";c&&(p="&w="+Math.round(2*k.width)+"&h="+Math.round(2*k.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+p+"&xml="+encodeURIComponent(b));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&299>=q.getStatus()?e("data:image/png;base64,"+q.getText()):n({message:mxResources.get("unknownError")})}))}else n({message:mxResources.get("drawingTooLarge")})};
+EditorUi.prototype.createEmbedSvg=function(a,b,c,d,f,g,m){var e=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!c),k=e.getElementsByTagName("a");if(null!=k)for(var l=0;l<k.length;l++){var p=k[l].getAttribute("href");null!=p&&"#"==p.charAt(0)&&"_blank"==k[l].getAttribute("target")&&k[l].removeAttribute("target")}d&&e.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(e);if(c){var n=" ",q="";d&&(n="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(f?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",q+="cursor:pointer;");a&&(q+="max-width:100%;");this.editor.convertImages(e,mxUtils.bind(this,function(a){m('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=q?' style="'+q+'"':"")+n+"/>")}))}else q="",d&&(b=this.getSelectedPageIndex(),e.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
EditorUi.lightboxHost+"/?client=1"+(null!=b?"&page="+b:"")+(f?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),q+="cursor:pointer;"),a&&(a=parseInt(e.getAttribute("width")),f=parseInt(e.getAttribute("height")),e.setAttribute("viewBox","-0.5 -0.5 "+a+" "+f),q+="max-width:100%;max-height:"+f+"px;",e.removeAttribute("height")),""!=q&&e.setAttribute("style",q),this.editor.addFontCss(e),this.editor.graph.mathEnabled&&this.editor.addMathCss(e),m(mxUtils.getXml(e))};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.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=
a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(t){}finally{this.editor.graph=d}return a};EditorUi.prototype.getPngFileProperties=function(a){var b=1,c=0;if(null!=
@@ -11156,11 +11156,11 @@ App.pluginRegistry={"4xAKTrabTpTzahoLthkwPNUn":"plugins/explore.js",ex:"plugins/
"import":"plugins/import.js",replay:"plugins/replay.js",anon:"plugins/anonymize.js",tr:"plugins/trello.js",f5:"plugins/rackF5.js",tickets:"plugins/tickets.js",flow:"plugins/flow.js",webcola:"plugins/webcola/webcola.js",rnd:"plugins/random.js",page:"plugins/page.js",gd:"plugins/googledrive.js",tags:"plugins/tags.js"};App.publicPlugin="ex voice tips svgdata number sql props text anim update trees replay anon tickets flow webcola tags".split(" ");
App.loadScripts=function(a,d){for(var c=a.length,b=0;b<c;b++)mxscript(a[b],function(){0==--c&&null!=d&&d()})};
App.getStoredMode=function(){var a=null;null==a&&isLocalStorage&&(a=localStorage.getItem(".mode"));if(null==a&&"undefined"!=typeof Storage){for(var d=document.cookie.split(";"),c=0;c<d.length;c++){var b=mxUtils.trim(d[c]);if("MODE="==b.substring(0,5)){a=b.substring(5);break}}null!=a&&isLocalStorage&&(d=new Date,d.setYear(d.getFullYear()-1),document.cookie="MODE=; expires="+d.toUTCString(),localStorage.setItem(".mode",a))}return a};
-(function(){mxClient.IS_CHROMEAPP||("1"!=urlParams.offline&&("db.draw.io"==window.location.hostname&&null==urlParams.mode&&(urlParams.mode="dropbox"),App.mode=urlParams.mode),null==App.mode&&(App.mode=App.getStoredMode()),null!=window.mxscript&&("1"!=urlParams.embed&&("function"===typeof window.DriveClient&&("0"!=urlParams.gapi&&isSvgBrowser&&(null==document.documentMode||10<=document.documentMode)?App.mode==App.MODE_GOOGLE||null!=urlParams.state&&""==window.location.hash||null!=window.location.hash&&
+(function(){mxClient.IS_CHROMEAPP||("1"!=urlParams.offline&&("db.draw.io"==window.location.hostname&&null==urlParams.mode&&(urlParams.mode="dropbox"),App.mode=urlParams.mode),null==App.mode&&(App.mode=App.getStoredMode()),null!=window.mxscript&&"1"!=urlParams.embed&&("function"===typeof window.DriveClient&&("0"!=urlParams.gapi&&isSvgBrowser&&(null==document.documentMode||10<=document.documentMode)?App.mode==App.MODE_GOOGLE||null!=urlParams.state&&""==window.location.hash||null!=window.location.hash&&
"#G"==window.location.hash.substring(0,2)?mxscript("https://apis.google.com/js/api.js"):"0"!=urlParams.chrome||null!=window.location.hash&&"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"===window.location.hash.substring(0,45)||(window.DriveClient=null):window.DriveClient=null),"function"===typeof window.DropboxClient&&("0"!=urlParams.db&&isSvgBrowser&&(null==document.documentMode||9<document.documentMode)?App.mode==App.MODE_DROPBOX||null!=window.location.hash&&"#D"==window.location.hash.substring(0,
-2)?mxscript(App.DROPBOX_URL,function(){mxscript(App.DROPINS_URL,null,"dropboxjs",App.DROPBOX_APPKEY)}):"0"==urlParams.chrome&&(window.DropboxClient=null):window.DropboxClient=null),"function"===typeof window.OneDriveClient&&("0"!=urlParams.od&&(null==navigator.userAgent||0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?App.mode==App.MODE_ONEDRIVE||null!=window.location.hash&&"#W"==window.location.hash.substring(0,2)?"1"==urlParams.inlinePicker||mxClient.IS_ANDROID||mxClient.IS_IOS?
+2)?mxscript(App.DROPBOX_URL,function(){mxscript(App.DROPINS_URL,null,"dropboxjs",App.DROPBOX_APPKEY,!0)}):"0"==urlParams.chrome&&(window.DropboxClient=null):window.DropboxClient=null),"function"===typeof window.OneDriveClient&&("0"!=urlParams.od&&(null==navigator.userAgent||0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?App.mode==App.MODE_ONEDRIVE||null!=window.location.hash&&"#W"==window.location.hash.substring(0,2)?"1"==urlParams.inlinePicker||mxClient.IS_ANDROID||mxClient.IS_IOS?
mxscript(App.ONEDRIVE_INLINE_PICKER_URL,function(){window.OneDrive={}}):mxscript(App.ONEDRIVE_URL):"0"==urlParams.chrome&&(window.OneDriveClient=null):window.OneDriveClient=null),"function"===typeof window.TrelloClient&&("1"==urlParams.tr&&isSvgBrowser&&!mxClient.IS_IE11&&(null==document.documentMode||10<=document.documentMode)?App.mode==App.MODE_TRELLO||null!=window.location.hash&&"#T"==window.location.hash.substring(0,2)?mxscript(App.TRELLO_JQUERY_URL,function(){mxscript(App.TRELLO_URL)}):"0"==
-urlParams.chrome&&(window.TrelloClient=null):window.TrelloClient=null)),"undefined"==typeof JSON&&mxscript("js/json/json2.min.js")))})();App.clearServiceWorker=function(a){navigator.serviceWorker.getRegistrations().then(function(d){if(null!=d&&0<d.length){for(var c=0;c<d.length;c++)d[c].unregister();null!=a&&a()}})};
+urlParams.chrome&&(window.TrelloClient=null):window.TrelloClient=null)))})();App.clearServiceWorker=function(a){navigator.serviceWorker.getRegistrations().then(function(d){if(null!=d&&0<d.length){for(var c=0;c<d.length;c++)d[c].unregister();null!=a&&a()}})};
App.main=function(a,d){function c(b){mxUtils.getAll("1"!=urlParams.dev?[b]:[b,STYLE_PATH+"/default.xml",STYLE_PATH+"/dark-default.xml"],function(b){function c(){var b=null!=d?d():new App(new Editor("0"==urlParams.chrome||"min"==uiTheme,null,null,null,"0"!=urlParams.chrome));if(null!=window.mxscript){if("function"===typeof window.DropboxClient&&null==window.Dropbox&&null!=window.DrawDropboxClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.db||"1"==urlParams.embed&&"1"==urlParams.db)&&isSvgBrowser&&
(null==document.documentMode||9<document.documentMode))mxscript(App.DROPBOX_URL,function(){mxscript(App.DROPINS_URL,function(){DrawDropboxClientCallback()},"dropboxjs",App.DROPBOX_APPKEY)});else if("undefined"===typeof window.Dropbox||"undefined"===typeof window.Dropbox.choose)window.DropboxClient=null;"function"===typeof window.OneDriveClient&&"undefined"===typeof OneDrive&&null!=window.DrawOneDriveClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&
(null==navigator.userAgent||0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?"1"==urlParams.inlinePicker||mxClient.IS_ANDROID||mxClient.IS_IOS?mxscript(App.ONEDRIVE_INLINE_PICKER_URL,function(){window.OneDrive={};window.DrawOneDriveClientCallback()}):mxscript(App.ONEDRIVE_URL,window.DrawOneDriveClientCallback):"undefined"===typeof window.OneDrive&&(window.OneDriveClient=null);"function"===typeof window.TrelloClient&&!mxClient.IS_IE11&&"undefined"===typeof window.Trello&&null!=window.DrawTrelloClientCallback&&
@@ -11171,7 +11171,7 @@ b[2].getDocumentElement());"1"==urlParams.dev||EditorUi.isElectronApp?c():(mxSte
function b(){try{if(null!=mxSettings.settings){document.body.style.backgroundColor="dark"==uiTheme||mxSettings.settings.darkMode?"#2a2a2a":"#ffffff";if(null!=mxSettings.settings.autosaveDelay){var a=parseInt(mxSettings.settings.autosaveDelay);!isNaN(a)&&0<a?(DrawioFile.prototype.autosaveDelay=a,EditorUi.debug("Setting autosaveDelay",a)):EditorUi.debug("Invalid autosaveDelay",a)}null!=mxSettings.settings.defaultEdgeLength&&(a=parseInt(mxSettings.settings.defaultEdgeLength),!isNaN(a)&&0<a?(Graph.prototype.defaultEdgeLength=
a,EditorUi.debug("Using defaultEdgeLength",a)):EditorUi.debug("Invalid defaultEdgeLength",a))}}catch(q){null!=window.console&&console.error(q)}if(null!=Menus.prototype.defaultFonts)for(a=0;a<Menus.prototype.defaultFonts.length;a++){var b=Menus.prototype.defaultFonts[a];"string"!==typeof b&&null!=b.fontFamily&&null!=b.fontUrl&&Graph.addFont(b.fontFamily,b.fontUrl)}mxResources.loadDefaultBundle=!1;c(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}
window.onerror=function(a,b,c,d,e){EditorUi.logError("Global: "+(null!=a?a:""),b,c,d,e,null,!0)};if(window.top==window.self&&(/ac\.draw\.io$/.test(window.location.hostname)||/ac-ent\.draw\.io$/.test(window.location.hostname)||/aj\.draw\.io$/.test(window.location.hostname)))document.body.innerHTML='<div style="margin-top:10%;text-align:center;">Stand-alone mode not allowed for this domain.</div>';else{if("1"==urlParams.embed||"1"==urlParams.lightbox){var g=document.getElementById("geInfo");null!=g&&
-g.parentNode.removeChild(g)}null!=document.referrer&&"aws3"==urlParams.libs&&"https://aws.amazon.com/architecture/icons/"==document.referrer.substring(0,42)&&(urlParams.libs="aws4");if(null!=window.mxscript){if("1"==urlParams.dev&&null!=CryptoJS&&"trello"!=urlParams.mode){g=document.getElementsByTagName("script");if(null!=g&&0<g.length){var f=mxUtils.getTextContent(g[0]);"b02227617087e21bd49f2faa15164112"!=CryptoJS.MD5(f).toString()&&(console.log("Change bootstrap script MD5 in the previous line:",
+g.parentNode.removeChild(g)}null!=document.referrer&&"aws3"==urlParams.libs&&"https://aws.amazon.com/architecture/icons/"==document.referrer.substring(0,42)&&(urlParams.libs="aws4");if(null!=window.mxscript){if("1"==urlParams.dev&&null!=CryptoJS&&App.mode!=App.MODE_DROPBOX&&App.mode!=App.MODE_TRELLO){g=document.getElementsByTagName("script");if(null!=g&&0<g.length){var f=mxUtils.getTextContent(g[0]);"b02227617087e21bd49f2faa15164112"!=CryptoJS.MD5(f).toString()&&(console.log("Change bootstrap script MD5 in the previous line:",
CryptoJS.MD5(f).toString()),alert("[Dev] Bootstrap script change requires update of CSP"))}null!=g&&1<g.length&&(f=mxUtils.getTextContent(g[g.length-1]),"d53805dd6f0bbba2da4966491ca0a505"!=CryptoJS.MD5(f).toString()&&(console.log("Change main script MD5 in the previous line:",CryptoJS.MD5(f).toString()),alert("[Dev] Main script change requires update of CSP")))}try{Editor.enableServiceWorker&&("0"==urlParams.offline||/www\.draw\.io$/.test(window.location.hostname)||"1"!=urlParams.offline&&"1"==urlParams.dev)?
App.clearServiceWorker(function(){"0"==urlParams.offline&&alert("Cache cleared")}):Editor.enableServiceWorker&&navigator.serviceWorker.register("/service-worker.js")}catch(l){null!=window.console&&console.error(l)}!("ArrayBuffer"in window)||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"auto"!=DrawioFile.SYNC||"1"==urlParams.embed&&"1"!=urlParams.embedRT||"1"==urlParams.local||"0"==urlParams.chrome&&"1"!=urlParams.rt||"1"==urlParams.stealth||"1"==urlParams.offline||(mxscript(App.PUSHER_URL),"1"==
urlParams.rtCursors&&(mxscript(App.SOCKET_IO_URL),mxscript(App.SIMPLE_PEER_URL)));if("0"!=urlParams.plugins&&"1"!=urlParams.offline){g=null!=mxSettings.settings?mxSettings.getPlugins():null;if(null==mxSettings.settings&&isLocalStorage&&"undefined"!==typeof JSON)try{var m=JSON.parse(localStorage.getItem(mxSettings.key));null!=m&&(g=m.plugins)}catch(l){}m=urlParams.p;App.initPluginCallback();null!=m&&App.loadPlugins(m.split(";"));if(null!=g&&0<g.length&&"0"!=urlParams.plugins){for(var m=window.location.protocol+
@@ -11425,7 +11425,7 @@ this.tagsWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("tags"))):th
300:240;this[f]=new FindWindow(b,document.body.offsetWidth-(k+20),100,k,d?"min"==uiTheme?304:288:170,d);this[f].window.addListener("show",function(){b.fireEvent(new mxEventObject(e))});this[f].window.addListener("hide",function(){b.fireEvent(new mxEventObject(e))});this[f].window.setVisible(!0)}else this[f].window.setVisible(!this[f].window.isVisible())}),null,null,Editor.ctrlKey+"+F");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){var a=g.isEnabled()?"findReplaceWindow":
"findWindow";return null!=this[a]&&this[a].window.isVisible()}));b.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){var a=null==b.pages||1>=b.pages.length;if(a)b.exportVisio();else{var c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatVsdx"));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(d);var e=b.addCheckbox(c,mxResources.get("allPages"),
!a,a);e.style.marginBottom="16px";a=new CustomDialog(b,c,mxUtils.bind(this,function(){b.exportVisio(!e.checked)}),null,mxResources.get("export"));b.showDialog(a.container,300,110,!0,!0)}}));isLocalStorage&&null!=localStorage&&"1"!=urlParams.embed&&b.actions.addAction("configuration...",function(){var a=localStorage.getItem(Editor.configurationKey),c=[[mxResources.get("reset"),function(a,c){b.confirm(mxResources.get("areYouSure"),function(){try{localStorage.removeItem(Editor.configurationKey),mxEvent.isShiftDown(a)&&
-(localStorage.removeItem(".drawio-config"),localStorage.removeItem(".mode")),b.hideDialog(),b.alert(mxResources.get("restartForChangeRequired"))}catch(C){b.handleError(C)}})}]];EditorUi.isElectronApp||c.push([mxResources.get("link"),function(a,c){if(0<c.value.length)try{var d=JSON.parse(c.value),e=window.location.protocol+"//"+window.location.host+"/"+b.getSearch()+"#_CONFIG_"+Graph.compress(JSON.stringify(d)),f=new EmbedDialog(b,e);b.showDialog(f.container,440,240,!0);f.init()}catch(L){b.handleError(L)}else b.handleError({message:mxResources.get("invalidInput")})}]);
+(localStorage.removeItem(".drawio-config"),localStorage.removeItem(".mode")),b.hideDialog(),b.alert(mxResources.get("restartForChangeRequired"))}catch(C){b.handleError(C)}})}]];EditorUi.isElectronApp||c.push([mxResources.get("share"),function(a,c){if(0<c.value.length)try{var d=JSON.parse(c.value),e=window.location.protocol+"//"+window.location.host+"/"+b.getSearch()+"#_CONFIG_"+Graph.compress(JSON.stringify(d)),f=new EmbedDialog(b,e);b.showDialog(f.container,440,240,!0);f.init()}catch(L){b.handleError(L)}else b.handleError({message:mxResources.get("invalidInput")})}]);
a=new TextareaDialog(b,mxResources.get("configuration")+":",null!=a?JSON.stringify(JSON.parse(a),null,2):"",function(a){if(null!=a)try{if(0<a.length){var c=JSON.parse(a);localStorage.setItem(Editor.configurationKey,JSON.stringify(c))}else localStorage.removeItem(Editor.configurationKey);b.hideDialog();b.alert(mxResources.get("restartForChangeRequired"))}catch(C){b.handleError(C)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/configure-diagram-editor",c);a.textarea.style.width=
"600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!1);a.init()});if(mxClient.IS_CHROMEAPP||isLocalStorage){this.put("language",new Menu(mxUtils.bind(this,function(a,c){var d=mxUtils.bind(this,function(d){var e=""==d?mxResources.get("automatic"):mxLanguageMap[d],f=null;""!=e&&(f=a.addItem(e,null,mxUtils.bind(this,function(){mxSettings.setLanguage(d);mxSettings.save();mxClient.language=d;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);b.alert(mxResources.get("restartForChangeRequired"))}),
c),(d==mxLanguage||""==d&&null==mxLanguage)&&a.addCheckmark(f,Editor.checkmarkImage));return f});d("");a.addSeparator(c);for(var e in mxLanguageMap)d(e)})));var t=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(a){var b=t.apply(this,arguments);if(null!=b&&"1"!=urlParams.noLangIcon){var c=this.get("language");if(null!=c){c=b.addMenu("",c.funct);c.setAttribute("title",mxResources.get("language"));c.style.width="16px";c.style.paddingTop="2px";c.style.paddingLeft="4px";c.style.zIndex=
@@ -11703,11 +11703,11 @@ null)],a?60:null),d=b("insert",!0,a?J:null),f([d,e(mxResources.get("delete"),l.a
O.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",O,aa):null,640<=c?e("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,Q):null],60),720<=c)))){var g=e("",fa.funct,null,mxResources.get("dark"),fa,Editor.isDarkMode()?ia:la);g.style.opacity="0.4";l.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ia:la)+")"}));null!=l.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(g,l.statusContainer):p.appendChild(g)}a=
l.menus.get("language");null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=c&&"1"!=urlParams.sketch?(null==pa&&(d=t.addMenu("",a.funct),d.setAttribute("title",mxResources.get("language")),d.className="geToolbarButton",d.style.backgroundImage="url("+Editor.globeImage+")",d.style.backgroundPosition="center center",d.style.backgroundRepeat="no-repeat",d.style.backgroundSize="24px 24px",d.style.position="absolute",d.style.height="24px",d.style.width="24px",d.style.zIndex="1",d.style.right=
"8px",d.style.cursor="pointer",d.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(d),pa=d),l.buttonContainer.style.paddingRight="34px"):(l.buttonContainer.style.paddingRight="4px",null!=pa&&(pa.parentNode.removeChild(pa),pa=null))}x.apply(this,arguments);this.doSetDarkMode(mxSettings.settings.darkMode);var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";k.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?
-"63px":"32px";this.sidebar=this.createSidebar(k);"1"==urlParams.sketch&&(this.toggleScratchpad(),this.editor.graph.isZoomWheelEvent=function(a){return!mxEvent.isAltDown(a)&&(!mxEvent.isControlDown(a)||mxClient.IS_MAC)});if("1"!=urlParams.sketch&&1E3<=c||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])d(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));
-this.keyHandler.bindAction(75,!0,"toggleShapes",!0);if("1"==urlParams.sketch||1E3<=c)if(a(this,!0),"1"==urlParams.sketch){this.formatWindow.window.setClosable(!1);var m=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){m.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width="240px",this.div.style.left=
-parseInt(this.div.style.left)-150+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(){this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var l=this,n=l.editor.graph;l.toolbar=this.createToolbar(l.createDiv("geToolbar"));l.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(l,p);l.statusContainer=l.createStatusContainer();
-l.statusContainer.style.position="relative";l.statusContainer.style.maxWidth="";l.statusContainer.style.marginTop="7px";l.statusContainer.style.marginLeft="6px";l.statusContainer.style.color="gray";l.statusContainer.style.cursor="default";var u=l.hideCurrentMenu;l.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=l.descriptorChanged;l.descriptorChanged=function(){v.apply(this,arguments);var a=l.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=
-a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);p.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else p.removeAttribute("title")};l.setStatusText(l.editor.getStatus());p.appendChild(l.statusContainer);l.buttonContainer=document.createElement("div");l.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";
+"63px":"32px";this.sidebar=this.createSidebar(k);"1"==urlParams.sketch&&(this.toggleScratchpad(),this.editor.graph.isZoomWheelEvent=function(a){return!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)&&(!mxEvent.isControlDown(a)||mxClient.IS_MAC)});if("1"!=urlParams.sketch&&1E3<=c||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])d(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),
+this.sidebar.showEntries("search"));this.keyHandler.bindAction(75,!0,"toggleShapes",!0);if("1"==urlParams.sketch||1E3<=c)if(a(this,!0),"1"==urlParams.sketch){this.formatWindow.window.setClosable(!1);var m=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){m.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width=
+"240px",this.div.style.left=parseInt(this.div.style.left)-150+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(){this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var l=this,n=l.editor.graph;l.toolbar=this.createToolbar(l.createDiv("geToolbar"));l.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(l,p);l.statusContainer=
+l.createStatusContainer();l.statusContainer.style.position="relative";l.statusContainer.style.maxWidth="";l.statusContainer.style.marginTop="7px";l.statusContainer.style.marginLeft="6px";l.statusContainer.style.color="gray";l.statusContainer.style.cursor="default";var u=l.hideCurrentMenu;l.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=l.descriptorChanged;l.descriptorChanged=function(){v.apply(this,arguments);var a=l.getCurrentFile();if(null!=
+a&&null!=a.getTitle()){var b=a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);p.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else p.removeAttribute("title")};l.setStatusText(l.editor.getStatus());p.appendChild(l.statusContainer);l.buttonContainer=document.createElement("div");l.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";
p.appendChild(l.buttonContainer);l.menubarContainer=l.buttonContainer;l.tabContainer=document.createElement("div");l.tabContainer.className="geTabContainer";l.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var k=l.diagramContainer.parentNode,A=document.createElement("div");A.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";l.diagramContainer.style.top="1"==urlParams.sketch?
"0px":"47px";var Z=l.menus.get("viewZoom"),J="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
R="1"==urlParams.sketch?document.createElement("div"):null,S="1"==urlParams.sketch?document.createElement("div"):null,Y="1"==urlParams.sketch?document.createElement("div"):null;l.addListener("darkModeChanged",mxUtils.bind(this,function(){if(null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch)){this.scratchpad=null;this.toggleScratchpad();var a=l.actions.outlineWindow;
diff --git a/src/main/webapp/js/diagramly/App.js b/src/main/webapp/js/diagramly/App.js
index 6ccddf0a..8223b108 100644
--- a/src/main/webapp/js/diagramly/App.js
+++ b/src/main/webapp/js/diagramly/App.js
@@ -487,7 +487,7 @@ App.getStoredMode = function()
mxscript(App.DROPBOX_URL, function()
{
// Must load this after the dropbox SDK since they use the same namespace
- mxscript(App.DROPINS_URL, null, 'dropboxjs', App.DROPBOX_APPKEY);
+ mxscript(App.DROPINS_URL, null, 'dropboxjs', App.DROPBOX_APPKEY, true);
});
}
else if (urlParams['chrome'] == '0')
@@ -563,12 +563,6 @@ App.getStoredMode = function()
}
}
}
-
- // Loads JSON for older browsers
- if (typeof(JSON) == 'undefined')
- {
- mxscript('js/json/json2.min.js');
- }
}
}
})();
@@ -641,7 +635,7 @@ App.main = function(callback, createUi)
if (window.mxscript != null)
{
// Checks for script content changes to avoid CSP errors in production
- if (urlParams['dev'] == '1' && CryptoJS != null && urlParams['mode'] != 'trello')
+ if (urlParams['dev'] == '1' && CryptoJS != null && App.mode != App.MODE_DROPBOX && App.mode != App.MODE_TRELLO)
{
var scripts = document.getElementsByTagName('script');
diff --git a/src/main/webapp/js/diagramly/Devel.js b/src/main/webapp/js/diagramly/Devel.js
index e6fb06ea..9e2eabc8 100644
--- a/src/main/webapp/js/diagramly/Devel.js
+++ b/src/main/webapp/js/diagramly/Devel.js
@@ -120,7 +120,7 @@ if (!mxIsElectron && location.protocol !== 'http:')
}
})();
}
-
+
mxscript(drawDevUrl + 'js/cryptojs/aes.min.js');
mxscript(drawDevUrl + 'js/spin/spin.min.js');
mxscript(drawDevUrl + 'js/deflate/pako.min.js');
diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js
index 12e6b5a3..0cfadfa1 100644
--- a/src/main/webapp/js/diagramly/Editor.js
+++ b/src/main/webapp/js/diagramly/Editor.js
@@ -1215,27 +1215,14 @@
mxShape.prototype.paint = function(c)
{
var addTolerance = c.addTolerance;
- var fillStyle = null;
var events = true;
if (this.style != null)
{
events = mxUtils.getValue(this.style, mxConstants.STYLE_POINTER_EVENTS, '1') == '1';
- fillStyle = mxUtils.getValue(this.style, 'fillStyle', 'auto');
-
- if (this.state != null && fillStyle == 'auto')
- {
- var bg = this.state.view.graph.defaultPageBackgroundColor;
-
- if (this.fill != null && (this.gradient != null || (bg != null &&
- this.fill.toLowerCase() == bg.toLowerCase())))
- {
- fillStyle = 'solid';
- }
- }
}
- if (events && c.handJiggle != null && c.handJiggle.constructor == RoughCanvas && !this.outline)
+ if (c.handJiggle != null && c.handJiggle.constructor == RoughCanvas && !this.outline)
{
// Save needed for possible transforms applied during paint
c.save();
@@ -1244,6 +1231,8 @@
this.fill = null;
this.stroke = null;
+ var configurePointerEvents = this.configurePointerEvents;
+
// Ignores color changes during paint
var setStrokeColor = c.setStrokeColor;
@@ -1259,6 +1248,15 @@
// ignore
};
+ // Adds stroke tolerance for plain rendering if filled
+ if (!events && fill != null)
+ {
+ this.configurePointerEvents = function()
+ {
+ // ignore
+ };
+ }
+
c.handJiggle.passThrough = true;
shapePaint.apply(this, arguments);
@@ -1266,20 +1264,25 @@
c.handJiggle.passThrough = false;
c.setFillColor = setFillColor;
c.setStrokeColor = setStrokeColor;
+ this.configurePointerEvents = configurePointerEvents;
this.stroke = stroke;
this.fill = fill;
c.restore();
- c.addTolerance = function()
+ // Bypasses stroke tolerance for sketched rendering if filled
+ if (events && fill != null)
{
- // ignore
- };
+ c.addTolerance = function()
+ {
+ // ignore
+ };
+ }
}
shapePaint.apply(this, arguments);
c.addTolerance = addTolerance;
};
-
+
// Overrides glass effect to disable sketch style
var shapePaintGlassEffect = mxShape.prototype.paintGlassEffect;
mxShape.prototype.paintGlassEffect = function(c, x, y, w, h, arc)
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index c3177fc0..5c83e232 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -3656,21 +3656,28 @@
// Implements the sketch-min UI
if (urlParams['sketch'] == '1')
{
- Menus.prototype.defaultFonts = [{'fontFamily': Editor.sketchFontFamily,
- 'fontUrl': decodeURIComponent(Editor.sketchFontSource)},
- {'fontFamily': 'Rock Salt', 'fontUrl': 'https://fonts.googleapis.com/css?family=Rock+Salt'},
- {'fontFamily': 'Permanent Marker', 'fontUrl': 'https://fonts.googleapis.com/css?family=Permanent+Marker'}].
- concat(Menus.prototype.defaultFonts);
-
- Graph.prototype.defaultVertexStyle = {'fontFamily': Editor.sketchFontFamily , 'fontSize': '20',
- 'fontSource': Editor.sketchFontSource, 'pointerEvents': '0', 'sketch':
- urlParams['rough'] == '0' ? '0' : '1', 'hachureGap': '4'};
-
+ Graph.prototype.defaultVertexStyle = {'pointerEvents': '0', 'hachureGap': '4'};
Graph.prototype.defaultEdgeStyle = {'edgeStyle': 'none', 'rounded': '0', 'curved': '1',
'jettySize': 'auto', 'orthogonalLoop': '1', 'endArrow': 'open', 'startSize': '14', 'endSize': '14',
- 'fontFamily': Editor.sketchFontFamily, 'fontSize': '20','fontSource': Editor.sketchFontSource,
- 'sourcePerimeterSpacing': '8', 'targetPerimeterSpacing': '8', 'sketch':
- urlParams['rough'] == '0' ? '0' : '1'};
+ 'sourcePerimeterSpacing': '8', 'targetPerimeterSpacing': '8'};
+
+ if (urlParams['rough'] != '0')
+ {
+ Graph.prototype.defaultVertexStyle['fontFamily'] = Editor.sketchFontFamily;
+ Graph.prototype.defaultVertexStyle['fontSource'] = Editor.sketchFontSource;
+ Graph.prototype.defaultVertexStyle['fontSize'] = '20';
+ Graph.prototype.defaultVertexStyle['sketch'] = '1';
+ Graph.prototype.defaultEdgeStyle['fontFamily'] = Editor.sketchFontFamily;
+ Graph.prototype.defaultEdgeStyle['fontSource'] = Editor.sketchFontSource;
+ Graph.prototype.defaultEdgeStyle['fontSize'] = '20';
+ Graph.prototype.defaultEdgeStyle['sketch'] = '1';
+
+ Menus.prototype.defaultFonts = [{'fontFamily': Editor.sketchFontFamily,
+ 'fontUrl': decodeURIComponent(Editor.sketchFontSource)},
+ {'fontFamily': 'Rock Salt', 'fontUrl': 'https://fonts.googleapis.com/css?family=Rock+Salt'},
+ {'fontFamily': 'Permanent Marker', 'fontUrl': 'https://fonts.googleapis.com/css?family=Permanent+Marker'}].
+ concat(Menus.prototype.defaultFonts);
+ }
Editor.configurationKey = '.sketch-configuration';
Editor.settingsKey = '.sketch-config';
diff --git a/src/main/webapp/js/diagramly/Menus.js b/src/main/webapp/js/diagramly/Menus.js
index ebb14119..0cb782c8 100644
--- a/src/main/webapp/js/diagramly/Menus.js
+++ b/src/main/webapp/js/diagramly/Menus.js
@@ -870,7 +870,7 @@
if (!EditorUi.isElectronApp)
{
- buttons.push([mxResources.get('link'), function(evt, input)
+ buttons.push([mxResources.get('share'), function(evt, input)
{
if (input.value.length > 0)
{
diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js
index bcd9d6a4..bc4f77f6 100644
--- a/src/main/webapp/js/diagramly/Minimal.js
+++ b/src/main/webapp/js/diagramly/Minimal.js
@@ -1279,7 +1279,8 @@ EditorUi.initMinimalTheme = function()
this.editor.graph.isZoomWheelEvent = function(evt)
{
- return !mxEvent.isAltDown(evt) && (!mxEvent.isControlDown(evt) || mxClient.IS_MAC);
+ return !mxEvent.isShiftDown(evt) && !mxEvent.isMetaDown(evt) && !mxEvent.isAltDown(evt) &&
+ (!mxEvent.isControlDown(evt) || mxClient.IS_MAC);
};
}
diff --git a/src/main/webapp/js/diagramly/sidebar/Sidebar.js b/src/main/webapp/js/diagramly/sidebar/Sidebar.js
index 7c97d51d..0101e961 100644
--- a/src/main/webapp/js/diagramly/sidebar/Sidebar.js
+++ b/src/main/webapp/js/diagramly/sidebar/Sidebar.js
@@ -1292,12 +1292,6 @@
this.searchFileData = null;
}
- // Logs search terms for improving search results
- if (!this.editorUi.isOffline() && page == 0)
- {
- EditorUi.logEvent({category: 'Shape', action: 'search', label: searchTerms});
- }
-
if (ICONSEARCH_PATH != null)
{
success = mxUtils.bind(this, function(results, len, more, terms)
diff --git a/src/main/webapp/js/grapheditor/EditorUi.js b/src/main/webapp/js/grapheditor/EditorUi.js
index eda1ed03..99bf4aba 100644
--- a/src/main/webapp/js/grapheditor/EditorUi.js
+++ b/src/main/webapp/js/grapheditor/EditorUi.js
@@ -3444,18 +3444,22 @@ EditorUi.prototype.setFoldingEnabled = function(value)
/**
* Loads the stylesheet for this graph.
*/
-EditorUi.prototype.setPageFormat = function(value)
+EditorUi.prototype.setPageFormat = function(value, ignorePageVisible)
{
+ ignorePageVisible = (ignorePageVisible != null) ? ignorePageVisible : urlParams['sketch'] == '1';
this.editor.graph.pageFormat = value;
- if (!this.editor.graph.pageVisible)
- {
- this.actions.get('pageView').funct();
- }
- else
+ if (!ignorePageVisible)
{
- this.editor.graph.view.validateBackground();
- this.editor.graph.sizeDidChange();
+ if (!this.editor.graph.pageVisible)
+ {
+ this.actions.get('pageView').funct();
+ }
+ else
+ {
+ this.editor.graph.view.validateBackground();
+ this.editor.graph.sizeDidChange();
+ }
}
this.fireEvent(new mxEventObject('pageFormatChanged'));
diff --git a/src/main/webapp/js/grapheditor/Shapes.js b/src/main/webapp/js/grapheditor/Shapes.js
index 3f8ffe7b..abe11bf3 100644
--- a/src/main/webapp/js/grapheditor/Shapes.js
+++ b/src/main/webapp/js/grapheditor/Shapes.js
@@ -1466,12 +1466,12 @@
else
{
var events = true;
-
+
if (this.style != null)
{
events = mxUtils.getValue(this.style, mxConstants.STYLE_POINTER_EVENTS, '1') == '1';
}
-
+
if (events || (this.fill != null && this.fill != mxConstants.NONE) ||
(this.stroke != null && this.stroke != mxConstants.NONE))
{
@@ -1479,13 +1479,13 @@
{
c.pointerEvents = false;
}
-
+
c.begin();
-
+
if (this.isRounded)
{
var r = 0;
-
+
if (mxUtils.getValue(this.style, mxConstants.STYLE_ABSOLUTE_ARCSIZE, 0) == '1')
{
r = Math.min(w / 2, Math.min(h / 2, mxUtils.getValue(this.style,
@@ -1497,7 +1497,7 @@
mxConstants.RECTANGLE_ROUNDING_FACTOR * 100) / 100;
r = Math.min(w * f, h * f);
}
-
+
c.moveTo(x + r, y);
c.lineTo(x + w - r, y);
c.quadTo(x + w, y, x + w, y + r);
@@ -1516,28 +1516,15 @@
c.lineTo(x, y + h);
c.lineTo(x, y);
}
-
+
// LATER: Check if close is needed here
c.close();
c.end();
-
+
c.fillAndStroke();
}
}
};
-
- /**
- * Disables glass effect with hand jiggle.
- */
- var mxRectangleShapePaintForeground0 = mxRectangleShape.prototype.paintForeground;
- mxRectangleShape.prototype.paintForeground = function(c, x, y, w, h)
- {
- if (c.handJiggle == null)
- {
- mxRectangleShapePaintForeground0.apply(this, arguments);
- }
- };
-
// End of hand jiggle integration
// Process Shape
diff --git a/src/main/webapp/js/grapheditor/Sidebar.js b/src/main/webapp/js/grapheditor/Sidebar.js
index 0f800b9a..1d9b568d 100644
--- a/src/main/webapp/js/grapheditor/Sidebar.js
+++ b/src/main/webapp/js/grapheditor/Sidebar.js
@@ -1083,7 +1083,7 @@ Sidebar.prototype.addGeneralPalette = function(expand)
this.addEntry('list group erd table', function()
{
var cell = new mxCell('List', new mxGeometry(0, 0, 140, 110),
- 'swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;' +
+ 'swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;' +
'resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;');
cell.vertex = true;
cell.insert(sb.cloneCell(field, 'Item 1'));
@@ -2056,7 +2056,8 @@ Sidebar.prototype.createItem = function(cells, title, showLabel, showTitle, widt
this.editorUi.insertHandler(cells, null, this.graph.model,
Graph.prototype.defaultVertexStyle,
Graph.prototype.defaultEdgeStyle,
- true, true);
+ urlParams['sketch'] == '1',
+ urlParams['sketch'] == '1');
this.createThumb(cells, this.thumbWidth, this.thumbHeight, elt, title, showLabel, showTitle, width, height);
var bounds = new mxRectangle(0, 0, width, height);
diff --git a/src/main/webapp/js/json/json2.min.js b/src/main/webapp/js/json/json2.min.js
deleted file mode 100644
index 32e3ec43..00000000
--- a/src/main/webapp/js/json/json2.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var JSON;JSON||(JSON={});
-(function(){function k(a){return 10>a?"0"+a:a}function o(a){p.lastIndex=0;return p.test(a)?'"'+a.replace(p,function(a){var c=r[a];return"string"===typeof c?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function m(a,j){var c,d,h,n,g=e,f,b=j[a];b&&"object"===typeof b&&"function"===typeof b.toJSON&&(b=b.toJSON(a));"function"===typeof i&&(b=i.call(j,a,b));switch(typeof b){case "string":return o(b);case "number":return isFinite(b)?""+b:"null";case "boolean":case "null":return""+b;
-case "object":if(!b)return"null";e+=l;f=[];if("[object Array]"===Object.prototype.toString.apply(b)){n=b.length;for(c=0;c<n;c+=1)f[c]=m(c,b)||"null";h=0===f.length?"[]":e?"[\n"+e+f.join(",\n"+e)+"\n"+g+"]":"["+f.join(",")+"]";e=g;return h}if(i&&"object"===typeof i){n=i.length;for(c=0;c<n;c+=1)"string"===typeof i[c]&&(d=i[c],(h=m(d,b))&&f.push(o(d)+(e?": ":":")+h))}else for(d in b)Object.prototype.hasOwnProperty.call(b,d)&&(h=m(d,b))&&f.push(o(d)+(e?": ":":")+h);h=0===f.length?"{}":e?"{\n"+e+f.join(",\n"+
-e)+"\n"+g+"}":"{"+f.join(",")+"}";e=g;return h}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+k(this.getUTCMonth()+1)+"-"+k(this.getUTCDate())+"T"+k(this.getUTCHours())+":"+k(this.getUTCMinutes())+":"+k(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var q=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
-p=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e,l,r={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},i;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,j,c){var d;l=e="";if(typeof c==="number")for(d=0;d<c;d=d+1)l=l+" ";else typeof c==="string"&&(l=c);if((i=j)&&typeof j!=="function"&&(typeof j!=="object"||typeof j.length!=="number"))throw Error("JSON.stringify");return m("",
-{"":a})});"function"!==typeof JSON.parse&&(JSON.parse=function(a,e){function c(a,d){var g,f,b=a[d];if(b&&typeof b==="object")for(g in b)if(Object.prototype.hasOwnProperty.call(b,g)){f=c(b,g);f!==void 0?b[g]=f:delete b[g]}return e.call(a,d,b)}var d,a=""+a;q.lastIndex=0;q.test(a)&&(a=a.replace(q,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,""))){d=eval("("+a+")");return typeof e==="function"?c({"":d},""):d}throw new SyntaxError("JSON.parse");})})(); \ No newline at end of file
diff --git a/src/main/webapp/js/viewer-static.min.js b/src/main/webapp/js/viewer-static.min.js
index 3d563678..3611955e 100644
--- a/src/main/webapp/js/viewer-static.min.js
+++ b/src/main/webapp/js/viewer-static.min.js
@@ -205,7 +205,7 @@ function setCurrentXml(a,b){null!=window.parent&&null!=window.parent.openFile&&w
(function(){if("undefined"!==typeof JSON&&isLocalStorage)try{var a=localStorage.getItem(".drawio-config"),b=!0;null!=a&&(b=JSON.parse(a).showStartScreen);0==b&&(urlParams.splash="0")}catch(d){}a=urlParams["export"];null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),EXPORT_URL=a);a=urlParams.gitlab;null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];
null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=window.location.host;if("test.draw.io"!=a){var c="diagrams.net",b=a.length-c.length,c=a.lastIndexOf(c,b);-1!==c&&c===b?window.DRAWIO_LOG_URL="https://log.diagrams.net":(c="draw.io",b=a.length-c.length,c=a.lastIndexOf(c,b),-1!==c&&c===b&&(window.DRAWIO_LOG_URL="https://log.draw.io"))}})();
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";"trello"==urlParams.mode&&(urlParams.tr="1");"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"14.6.9",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"14.6.11",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||
0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -591,9 +591,10 @@ mxShape.prototype.paint=function(a){var b=!1;if(null!=a&&this.outline){var c=a.s
null!=this.stencil&&this.stencilPointerEvents){var n=this.createBoundingBox();this.dialect==mxConstants.DIALECT_SVG?(m=this.createTransparentSvgRectangle(n.x,n.y,n.width,n.height),this.node.appendChild(m)):(e=a.createRect("rect",n.x/e,n.y/e,n.width/e,n.height/e),e.appendChild(a.createTransparentFill()),e.stroked="false",a.root.appendChild(e))}null!=this.stencil?this.stencil.drawShape(a,this,f,g,k,l):(a.setStrokeWidth(this.strokewidth),e=this.getWaypoints(),null!=e?1<e.length&&this.paintEdgeShape(a,
e):this.paintVertexShape(a,f,g,k,l));null!=m&&null!=a.state&&null!=a.state.transform&&m.setAttribute("transform",a.state.transform);null!=a&&this.outline&&!b&&(a.rect(f,g,k,l),a.stroke())};mxShape.prototype.getWaypoints=function(){var a=this.points,b=null;if(null!=a&&(b=[],0<a.length)){var c=this.scale,d=Math.max(c,1),e=a[0];b.push(new mxPoint(e.x/c,e.y/c));for(var f=1;f<a.length;f++){var g=a[f];(Math.abs(e.x-g.x)>=d||Math.abs(e.y-g.y)>=d)&&b.push(new mxPoint(g.x/c,g.y/c));e=g}}return b};
mxShape.prototype.configureCanvas=function(a,b,c,d,e){var f=null;null!=this.style&&(f=this.style.dashPattern);a.setAlpha(this.opacity/100);a.setFillAlpha(this.fillOpacity/100);a.setStrokeAlpha(this.strokeOpacity/100);null!=this.isShadow&&a.setShadow(this.isShadow);null!=this.isDashed&&a.setDashed(this.isDashed,null!=this.style?1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1):!1);null!=f&&a.setDashPattern(f);null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?
-(b=this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b.x,b.y,b.width,b.height,this.gradientDirection)):a.setFillColor(this.fill);a.setStrokeColor(this.stroke);null==this.style||null!=this.fill&&this.fill!=mxConstants.NONE||"0"!=mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||(a.pointerEvents=!1)};mxShape.prototype.getGradientBounds=function(a,b,c,d,e){return new mxRectangle(b,c,d,e)};
-mxShape.prototype.updateTransform=function(a,b,c,d,e){a.scale(this.scale);a.rotate(this.getShapeRotation(),this.flipH,this.flipV,b+d/2,c+e/2)};mxShape.prototype.paintVertexShape=function(a,b,c,d,e){this.paintBackground(a,b,c,d,e);this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(a.setShadow(!1),this.paintForeground(a,b,c,d,e))};mxShape.prototype.paintBackground=function(a,b,c,d,e){};mxShape.prototype.paintForeground=function(a,b,c,d,e){};
-mxShape.prototype.paintEdgeShape=function(a,b){};mxShape.prototype.getArcSize=function(a,b){var c;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?c=Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,c=Math.min(a*c,b*c));return c};
+(b=this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b.x,b.y,b.width,b.height,this.gradientDirection)):a.setFillColor(this.fill);a.setStrokeColor(this.stroke);this.configurePointerEvents(a)};mxShape.prototype.configurePointerEvents=function(a){null==this.style||null!=this.fill&&this.fill!=mxConstants.NONE||"0"!=mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||(a.pointerEvents=!1)};
+mxShape.prototype.getGradientBounds=function(a,b,c,d,e){return new mxRectangle(b,c,d,e)};mxShape.prototype.updateTransform=function(a,b,c,d,e){a.scale(this.scale);a.rotate(this.getShapeRotation(),this.flipH,this.flipV,b+d/2,c+e/2)};mxShape.prototype.paintVertexShape=function(a,b,c,d,e){this.paintBackground(a,b,c,d,e);this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(a.setShadow(!1),this.paintForeground(a,b,c,d,e))};
+mxShape.prototype.paintBackground=function(a,b,c,d,e){};mxShape.prototype.paintForeground=function(a,b,c,d,e){};mxShape.prototype.paintEdgeShape=function(a,b){};
+mxShape.prototype.getArcSize=function(a,b){var c;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?c=Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,c=Math.min(a*c,b*c));return c};
mxShape.prototype.paintGlassEffect=function(a,b,c,d,e,f){var g=Math.ceil(this.strokewidth/2);a.setGradient("#ffffff","#ffffff",b,c,d,.6*e,"south",.9,.1);a.begin();f+=2*g;this.isRounded?(a.moveTo(b-g+f,c-g),a.quadTo(b-g,c-g,b-g,c-g+f),a.lineTo(b-g,c+.4*e),a.quadTo(b+.5*d,c+.7*e,b+d+g,c+.4*e),a.lineTo(b+d+g,c-g+f),a.quadTo(b+d+g,c-g,b+d+g-f,c-g)):(a.moveTo(b-g,c-g),a.lineTo(b-g,c+.4*e),a.quadTo(b+.5*d,c+.7*e,b+d+g,c+.4*e),a.lineTo(b+d+g,c-g));a.close();a.fill()};
mxShape.prototype.addPoints=function(a,b,c,d,e,f,g){if(null!=b&&0<b.length){g=null!=g?g:!0;var k=b[b.length-1];if(e&&c){b=b.slice();var l=b[0],l=new mxPoint(k.x+(l.x-k.x)/2,k.y+(l.y-k.y)/2);b.splice(0,0,l)}var m=b[0],l=1;for(g?a.moveTo(m.x,m.y):a.lineTo(m.x,m.y);l<(e?b.length:b.length-1);){g=b[mxUtils.mod(l,b.length)];var n=m.x-g.x,m=m.y-g.y;if(c&&(0!=n||0!=m)&&(null==f||0>mxUtils.indexOf(f,l-1))){var p=Math.sqrt(n*n+m*m);a.lineTo(g.x+n*Math.min(d,p/2)/p,g.y+m*Math.min(d,p/2)/p);for(m=b[mxUtils.mod(l+
1,b.length)];l<b.length-2&&0==Math.round(m.x-g.x)&&0==Math.round(m.y-g.y);)m=b[mxUtils.mod(l+2,b.length)],l++;n=m.x-g.x;m=m.y-g.y;p=Math.max(1,Math.sqrt(n*n+m*m));n=g.x+n*Math.min(d,p/2)/p;m=g.y+m*Math.min(d,p/2)/p;a.quadTo(g.x,g.y,n,m);g=new mxPoint(n,m)}else a.lineTo(g.x,g.y);m=g;l++}e?a.close():a.lineTo(k.x,k.y)}};
@@ -656,7 +657,7 @@ mxArrowConnector.prototype.isMarkerStart=function(){return mxUtils.getValue(this
function mxText(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,x,y,B,A,z){mxShape.call(this);this.value=a;this.bounds=b;this.color=null!=e?e:"black";this.align=null!=c?c:mxConstants.ALIGN_CENTER;this.valign=null!=d?d:mxConstants.ALIGN_MIDDLE;this.family=null!=f?f:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(m||0);this.spacingRight=this.spacing+parseInt(n||0);
this.spacingBottom=this.spacing+parseInt(p||0);this.spacingLeft=this.spacing+parseInt(q||0);this.horizontal=null!=r?r:!0;this.background=t;this.border=u;this.wrap=null!=x?x:!1;this.clipped=null!=y?y:!1;this.overflow=null!=B?B:"visible";this.labelPadding=null!=A?A:0;this.textDirection=z;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;
mxText.prototype.replaceLinefeeds=!0;mxText.prototype.verticalTextRotation=-90;mxText.prototype.ignoreClippedStringSize=!0;mxText.prototype.ignoreStringSize=!1;mxText.prototype.textWidthPadding=8!=document.documentMode||mxClient.IS_EM?3:4;mxText.prototype.lastValue=null;mxText.prototype.cacheEnabled=!0;mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode||mxClient.IS_EM};mxText.prototype.getSvgScreenOffset=function(){return 0};
-mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};
+mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};mxText.prototype.configurePointerEvents=function(a){};
mxText.prototype.paint=function(a,b){var c=this.scale,d=this.bounds.x/c,e=this.bounds.y/c,f=this.bounds.width/c,c=this.bounds.height/c;this.updateTransform(a,d,e,f,c);this.configureCanvas(a,d,e,f,c);if(b)a.updateText(d,e,f,c,this.align,this.valign,this.wrap,this.overflow,this.clipped,this.getTextRotation(),this.node);else{var g=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,k=g?"html":"",l=this.value;g||"html"!=k||(l=mxUtils.htmlEntities(l,!1));"html"!=k||mxUtils.isNode(this.value)||
(l=mxUtils.replaceTrailingNewlines(l,"<div><br></div>"));var l=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==k?l.replace(/\n/g,"<br/>"):l,m=this.textDirection;m!=mxConstants.TEXT_DIRECTION_AUTO||g||(m=this.getAutoDirection());m!=mxConstants.TEXT_DIRECTION_LTR&&m!=mxConstants.TEXT_DIRECTION_RTL&&(m=null);a.text(d,e,f,c,l,this.align,this.valign,this.wrap,k,this.overflow,this.clipped,this.getTextRotation(),m)}};
mxText.prototype.redraw=function(){if(this.visible&&this.checkBounds()&&this.cacheEnabled&&this.lastValue==this.value&&(mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML))if("DIV"==this.node.nodeName)mxClient.IS_SVG?this.redrawHtmlShapeWithCss3():(this.updateSize(this.node,null==this.state||null==this.state.view.textDiv),mxClient.IS_IE&&(null==document.documentMode||8>=document.documentMode)?this.updateHtmlFilter():this.updateHtmlTransform()),this.updateBoundingBox();else{var a=
@@ -1430,9 +1431,9 @@ mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST][mxUtils.mod(a,4)]};mxGra
mxGraph.prototype.getImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_IMAGE]:null};mxGraph.prototype.isTransparentState=function(a){var b=!1;if(null!=a)var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE),b=b==mxConstants.NONE&&c==mxConstants.NONE&&null==this.getImage(a);return b};
mxGraph.prototype.getVerticalAlign=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null};mxGraph.prototype.getIndicatorColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_COLOR]:null};mxGraph.prototype.getIndicatorGradientColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null};
mxGraph.prototype.getIndicatorShape=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_SHAPE]:null};mxGraph.prototype.getIndicatorImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_IMAGE]:null};mxGraph.prototype.getBorder=function(){return this.border};mxGraph.prototype.setBorder=function(a){this.border=a};
-mxGraph.prototype.isSwimlane=function(a,b){return null==a||this.model.getParent(a)==this.model.getRoot()||this.model.isEdge(a)?!1:this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};mxGraph.prototype.setEnabled=function(a){this.enabled=a};
-mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};
-mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};
+mxGraph.prototype.isSwimlane=function(a,b){return null==a||this.model.getParent(a)==this.model.getRoot()||this.model.isEdge(a)?!1:this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};
+mxGraph.prototype.setEnabled=function(a){this.enabled=a;this.fireEvent(new mxEventObject("enabledChanged","enabled",a))};mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};
+mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};
mxGraph.prototype.isCellCloneable=function(a){a=this.getCurrentCellStyle(a);return this.isCellsCloneable()&&0!=a[mxConstants.STYLE_CLONEABLE]};mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable};mxGraph.prototype.setCellsCloneable=function(a){this.cellsCloneable=a};mxGraph.prototype.getExportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canExportCell(a)}))};mxGraph.prototype.canExportCell=function(a){return this.exportEnabled};
mxGraph.prototype.getImportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canImportCell(a)}))};mxGraph.prototype.canImportCell=function(a){return this.importEnabled};mxGraph.prototype.isCellSelectable=function(a){return this.isCellsSelectable()};mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable};mxGraph.prototype.setCellsSelectable=function(a){this.cellsSelectable=a};
mxGraph.prototype.getDeletableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellDeletable(a)}))};mxGraph.prototype.isCellDeletable=function(a){a=this.getCurrentCellStyle(a);return this.isCellsDeletable()&&0!=a[mxConstants.STYLE_DELETABLE]};mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable};mxGraph.prototype.setCellsDeletable=function(a){this.cellsDeletable=a};
@@ -2225,7 +2226,7 @@ function ChangePageSetup(a,b,e,d,l){this.ui=a;this.previousColor=this.color=b;th
ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var b=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=b}this.ignoreImage||(this.image=this.previousImage,b=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=b);null!=this.previousFormat&&(this.format=this.previousFormat,b=a.pageFormat,this.previousFormat.width!=b.width||this.previousFormat.height!=b.height)&&(this.ui.setPageFormat(this.previousFormat),
this.previousFormat=b);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled);null!=this.previousPageScale&&(a=this.ui.editor.graph.pageScale,this.previousPageScale!=a&&(this.ui.setPageScale(this.previousPageScale),this.previousPageScale=a))};
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat","previousPageScale"]);a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;d.previousPageScale=d.pageScale;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);return d};mxCodecRegistry.register(a)})();EditorUi.prototype.setBackgroundColor=function(a){this.editor.graph.background=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("backgroundColorChanged"))};
-EditorUi.prototype.setFoldingEnabled=function(a){this.editor.graph.foldingEnabled=a;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))};EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageFormatChanged"))};
+EditorUi.prototype.setFoldingEnabled=function(a){this.editor.graph.foldingEnabled=a;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))};EditorUi.prototype.setPageFormat=function(a,b){b=null!=b?b:"1"==urlParams.sketch;this.editor.graph.pageFormat=a;b||(this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct());this.fireEvent(new mxEventObject("pageFormatChanged"))};
EditorUi.prototype.setPageScale=function(a){this.editor.graph.pageScale=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageScaleChanged"))};EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,d);e.addListener(mxEvent.UNDO,d);e.addListener(mxEvent.REDO,d);e.addListener(mxEvent.CLEAR,d);var l=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){l.apply(this,arguments);d()};var m=this.editor.graph.cellEditor.stopEditing;
this.editor.graph.cellEditor.stopEditing=function(a,b){m.apply(this,arguments);d()};d()};
@@ -2537,7 +2538,7 @@ t=this.getCellGeometry(b[e].cell),d=d+p;null!=t&&null!=n&&(t=t.clone(),a?t.x=Mat
return a};Graph.prototype.getSvg=function(a,c,b,d,f,e,g,k,p,n,t,v,l,m){var q=null;if(null!=m)for(q=new mxDictionary,t=0;t<m.length;t++)q.put(m[t],!0);if(m=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{c=null!=c?c:1;b=null!=b?b:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var B="page"==l?this.view.getBackgroundPageBounds():e&&null==q||d||"diagram"==l?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==B)throw Error(mxResources.get("drawingEmpty"));
var C=this.view.scale,y=mxUtils.createXmlDocument(),z=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=z.style?z.style.backgroundColor=a:z.setAttribute("style","background-color:"+a));null==y.createElementNS?(z.setAttribute("xmlns",mxConstants.NS_SVG),z.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):z.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=c/C;var E=Math.max(1,Math.ceil(B.width*a)+2*b)+(n?5:
0),A=Math.max(1,Math.ceil(B.height*a)+2*b)+(n?5:0);z.setAttribute("version","1.1");z.setAttribute("width",E+"px");z.setAttribute("height",A+"px");z.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+E+" "+A);y.appendChild(z);var S=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"g"):y.createElement("g");z.appendChild(S);var u=this.createSvgCanvas(S);u.foOffset=f?-.5:0;u.textOffset=f?-.5:0;u.imageOffset=f?-.5:0;u.translate(Math.floor((b/c-B.x)/C),Math.floor((b/c-B.y)/C));var ka=document.createElement("div"),
-I=u.getAlternateText;u.getAlternateText=function(a,c,b,d,f,e,g,k,p,n,t,v,l){if(null!=e&&0<this.state.fontSize)try{mxUtils.isNode(e)?e=e.innerText:(ka.innerHTML=e,e=mxUtils.extractTextWithWhitespace(ka.childNodes));for(var x=Math.ceil(2*d/this.state.fontSize),la=[],Ca=0,va=0;(0==x||Ca<x)&&va<e.length;){var Sa=e.charCodeAt(va);if(10==Sa||13==Sa){if(0<Ca)break}else la.push(e.charAt(va)),255>Sa&&Ca++;va++}la.length<e.length&&1<e.length-la.length&&(e=mxUtils.trim(la.join(""))+"...");return e}catch(fb){return I.apply(this,
+I=u.getAlternateText;u.getAlternateText=function(a,c,b,d,f,e,g,k,p,n,t,v,x){if(null!=e&&0<this.state.fontSize)try{mxUtils.isNode(e)?e=e.innerText:(ka.innerHTML=e,e=mxUtils.extractTextWithWhitespace(ka.childNodes));for(var oa=Math.ceil(2*d/this.state.fontSize),ya=[],wa=0,Qa=0;(0==oa||wa<oa)&&Qa<e.length;){var Ta=e.charCodeAt(Qa);if(10==Ta||13==Ta){if(0<wa)break}else ya.push(e.charAt(Qa)),255>Ta&&wa++;Qa++}ya.length<e.length&&1<e.length-ya.length&&(e=mxUtils.trim(ya.join(""))+"...");return e}catch(fb){return I.apply(this,
arguments)}else return I.apply(this,arguments)};var F=this.backgroundImage;if(null!=F){c=C/c;var P=this.view.translate,D=new mxRectangle(P.x*c,P.y*c,F.width*c,F.height*c);mxUtils.intersects(B,D)&&u.image(P.x,P.y,F.width,F.height,F.src,!0)}u.scale(a);u.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var U=k.drawCellState,G=k.getLinkForCellState;k.getLinkForCellState=function(a,c){var b=G.apply(this,arguments);return null==b||a.view.graph.isCustomLink(b)?null:b};k.getLinkTargetForCellState=function(a,
c){return a.view.graph.getLinkTargetForCell(a.cell)};k.drawCellState=function(a,c){for(var b=a.view.graph,d=null!=q?q.get(a.cell):b.isCellSelected(a.cell),f=b.model.getParent(a.cell);!(e&&null==q||d)&&null!=f;)d=null!=q?q.get(f):b.isCellSelected(f),f=b.model.getParent(f);(e&&null==q||d)&&U.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),u);this.updateSvgLinks(z,p,!0);this.addForeignObjectWarning(u,z);return z}finally{m&&(this.useCssTransforms=!0,this.view.revalidate(),
this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,c){if("0"!=urlParams["svg-warning"]&&0<c.getElementsByTagName("foreignObject").length){var b=a.createElement("switch"),d=a.createElement("g");d.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var f=a.createElement("a");f.setAttribute("transform","translate(0,-5)");null==f.setAttributeNS||c.ownerDocument!=document&&null==document.documentMode?(f.setAttribute("xlink:href",Graph.foreignObjectWarningLink),
@@ -2619,16 +2620,16 @@ this.graph.view.getState(k[b]),p=this.graph.getCellGeometry(k[b]);null!=n&&null!
var d=c.getX()+b.x,b=c.getY()+b.y,f=this.first.x-d,e=this.first.y-b,g=this.graph.tolerance;if(null!=this.div||Math.abs(f)>g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,b),this.isSpaceEvent(c)?(d=this.x+this.width,b=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(this.width=this.graph.snap(this.width/f)*f,this.height=this.graph.snap(this.height/f)*f,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=
0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=d-this.width),this.y<this.first.y&&(this.y=b-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=
this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),
-this.secondDiv=null)),c.consume()}};var Y=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Y.apply(this,arguments)};var X=(new Date).getTime(),ma=0,pa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){pa.apply(this,arguments);b!=this.currentTerminalState?(X=(new Date).getTime(),ma=0):ma=(new Date).getTime()-X;this.currentTerminalState=
-b};var Z=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<ma||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&Z.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-
+this.secondDiv=null)),c.consume()}};var Y=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Y.apply(this,arguments)};var X=(new Date).getTime(),la=0,pa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){pa.apply(this,arguments);b!=this.currentTerminalState?(X=(new Date).getTime(),la=0):la=(new Date).getTime()-X;this.currentTerminalState=
+b};var Z=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<la||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&Z.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-
1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),f):null)?this.fixedHandleImage:null!=f&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,
mxConstants.HANDLE_STROKECOLOR)};var ha=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ha.apply(this,arguments)};var ia=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]),null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return ia.apply(this,arguments)};var fa=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=fa.apply(this,arguments),c=[],b=0;b<a.length;b++)"1"!=mxUtils.getValue(a[b].style,"part","0")&&c.push(a[b]);return c};var ba=mxVertexHandler.prototype.getSelectionBounds;
-mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):ba.apply(this,arguments)};var na=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
-c){var b=this.graph.getModel(),d=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(d)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&na.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var a=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);
+mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):ba.apply(this,arguments)};var ma=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
+c){var b=this.graph.getModel(),d=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(d)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&ma.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var a=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);
this.state.view.graph.model.isVertex(this.state.cell)&&a==mxConstants.NONE&&c==mxConstants.NONE?(a=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,a,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var V=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){V.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&
null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var Q=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){Q.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display=
-"");this.blockDelayedSelection=null};var oa=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){oa.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=[];for(var c=0;4>c;c++){var b=new mxRectangleShape(new mxRectangle(0,
+"");this.blockDelayedSelection=null};var na=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){na.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=[];for(var c=0;4>c;c++){var b=new mxRectangleShape(new mxRectangle(0,
0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);b.dialect=mxConstants.DIALECT_SVG;b.init(this.graph.view.getOverlayPane());this.cornerHandles.push(b)}}var d=mxUtils.bind(this,function(){null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.changeHandler=mxUtils.bind(this,function(a,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));
d()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);c=this.graph.getLinkForCell(this.state.cell);b=this.graph.getLinksForState(this.state);this.updateLinkHint(c,b);if(null!=c||null!=b&&0<b.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=
function(c,b){try{if(null==c&&(null==b||0==b.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=c||null!=b&&0<b.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint));this.linkHint.innerHTML="";if(null!=c&&(this.linkHint.appendChild(this.graph.createLinkForHint(c)),
@@ -2647,18 +2648,18 @@ null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add
function(){ea.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function l(){mxCylinder.call(this)}function m(){mxCylinder.call(this)}function u(){mxCylinder.call(this)}function q(){mxCylinder.call(this)}function c(){mxShape.call(this)}function f(){mxShape.call(this)}function g(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1}function k(){mxActor.call(this)}function p(){mxCylinder.call(this)}
function t(){mxCylinder.call(this)}function v(){mxActor.call(this)}function A(){mxActor.call(this)}function F(){mxActor.call(this)}function y(){mxActor.call(this)}function z(){mxActor.call(this)}function L(){mxActor.call(this)}function M(){mxActor.call(this)}function G(a,c){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,G.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
this.canvas.moveTo=mxUtils.bind(this,G.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,G.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,G.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,G.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,G.prototype.arcTo)}function J(){mxRectangleShape.call(this)}function H(){mxRectangleShape.call(this)}
-function D(){mxActor.call(this)}function K(){mxActor.call(this)}function I(){mxActor.call(this)}function R(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function n(){mxCylinder.call(this)}function B(){mxShape.call(this)}function C(){mxShape.call(this)}function ka(){mxEllipse.call(this)}function E(){mxShape.call(this)}function U(){mxShape.call(this)}function Y(){mxRectangleShape.call(this)}function X(){mxShape.call(this)}function ma(){mxShape.call(this)}function pa(){mxShape.call(this)}
-function Z(){mxShape.call(this)}function ha(){mxShape.call(this)}function ia(){mxCylinder.call(this)}function fa(){mxCylinder.call(this)}function ba(){mxRectangleShape.call(this)}function na(){mxDoubleEllipse.call(this)}function V(){mxDoubleEllipse.call(this)}function Q(){mxArrowConnector.call(this);this.spacing=0}function oa(){mxArrowConnector.call(this);this.spacing=0}function T(){mxActor.call(this)}function ca(){mxRectangleShape.call(this)}function ja(){mxActor.call(this)}function ra(){mxActor.call(this)}
-function O(){mxActor.call(this)}function ga(){mxActor.call(this)}function ea(){mxActor.call(this)}function S(){mxActor.call(this)}function ya(){mxActor.call(this)}function P(){mxActor.call(this)}function aa(){mxActor.call(this)}function qa(){mxActor.call(this)}function sa(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}function Da(){mxRhombus.call(this)}function Ga(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
-function Ia(){mxEllipse.call(this)}function za(){mxActor.call(this)}function ua(){mxActor.call(this)}function wa(){mxActor.call(this)}function W(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Aa(){mxConnector.call(this)}function Ta(a,c,b,d,f,e,g,k,n,p){g+=n;var x=d.clone();d.x-=f*(2*g+n);d.y-=e*(2*g+n);f*=g+n;e*=g+n;return function(){a.ellipse(x.x-
+function D(){mxActor.call(this)}function K(){mxActor.call(this)}function I(){mxActor.call(this)}function R(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function n(){mxCylinder.call(this)}function B(){mxShape.call(this)}function C(){mxShape.call(this)}function ka(){mxEllipse.call(this)}function E(){mxShape.call(this)}function U(){mxShape.call(this)}function Y(){mxRectangleShape.call(this)}function X(){mxShape.call(this)}function la(){mxShape.call(this)}function pa(){mxShape.call(this)}
+function Z(){mxShape.call(this)}function ha(){mxShape.call(this)}function ia(){mxCylinder.call(this)}function fa(){mxCylinder.call(this)}function ba(){mxRectangleShape.call(this)}function ma(){mxDoubleEllipse.call(this)}function V(){mxDoubleEllipse.call(this)}function Q(){mxArrowConnector.call(this);this.spacing=0}function na(){mxArrowConnector.call(this);this.spacing=0}function T(){mxActor.call(this)}function ca(){mxRectangleShape.call(this)}function ja(){mxActor.call(this)}function ra(){mxActor.call(this)}
+function O(){mxActor.call(this)}function ga(){mxActor.call(this)}function ea(){mxActor.call(this)}function S(){mxActor.call(this)}function za(){mxActor.call(this)}function P(){mxActor.call(this)}function aa(){mxActor.call(this)}function qa(){mxActor.call(this)}function sa(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}function Da(){mxRhombus.call(this)}function Ga(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
+function Ia(){mxEllipse.call(this)}function Aa(){mxActor.call(this)}function ua(){mxActor.call(this)}function va(){mxActor.call(this)}function W(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Ba(){mxConnector.call(this)}function Ua(a,c,b,d,f,e,g,k,n,p){g+=n;var x=d.clone();d.x-=f*(2*g+n);d.y-=e*(2*g+n);f*=g+n;e*=g+n;return function(){a.ellipse(x.x-
f-g,x.y-e-g,2*g,2*g);p?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,c,b,d,f){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-c,-b));this.paintForeground(a,
c,b,d,f)};a.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.state){var x=this.flipH,e=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=x,x=e,e=g;a.rotate(-this.getShapeRotation(),x,e,c+d/2,b+f/2);s=this.scale;c=this.bounds.x/s;b=this.bounds.y/s;d=this.bounds.width/s;f=this.bounds.height/s;this.paintTableForeground(a,c,b,d,f)}};a.prototype.paintTableForeground=function(a,c,b,d,f){var x=this.state.view.graph,e=x.getActualStartSize(this.state.cell),
-g=x.model.getChildCells(this.state.cell,!0);if(0<g.length){var la="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),va="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(la)for(la=1;la<g.length;la++){var k=x.getCellGeometry(g[la]);null!=k&&(a.begin(),a.moveTo(c+e.x,b+k.y),a.lineTo(c+d-e.width,b+k.y),a.end(),a.stroke())}if(va)for(d=x.model.getChildCells(g[0],!0),la=1;la<d.length;la++)k=x.getCellGeometry(d[la]),null!=k&&(a.begin(),a.moveTo(c+k.x+e.x,b+e.y),a.lineTo(c+k.x+e.x,b+f-e.height),
+g=x.model.getChildCells(this.state.cell,!0);if(0<g.length){var oa="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),wa="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(oa)for(oa=1;oa<g.length;oa++){var k=x.getCellGeometry(g[oa]);null!=k&&(a.begin(),a.moveTo(c+e.x,b+k.y),a.lineTo(c+d-e.width,b+k.y),a.end(),a.stroke())}if(wa)for(d=x.model.getChildCells(g[0],!0),oa=1;oa<d.length;oa++)k=x.getCellGeometry(d[oa]),null!=k&&(a.begin(),a.moveTo(c+k.x+e.x,b+e.y),a.lineTo(c+k.x+e.x,b+f-e.height),
a.end(),a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(b,mxCylinder);b.prototype.size=20;b.prototype.darkOpacity=0;b.prototype.darkOpacity2=0;b.prototype.paintVertexShape=function(a,c,b,d,f){var x=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));
a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-x,0);a.lineTo(d,x);a.lineTo(d,f);a.lineTo(x,f);a.lineTo(0,f-x);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-x,0),a.lineTo(d,x),a.lineTo(x,x),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(x,x),a.lineTo(x,f),a.lineTo(0,f-x),
-a.close(),a.fill()),a.begin(),a.moveTo(x,f),a.lineTo(x,x),a.lineTo(0,0),a.moveTo(x,x),a.lineTo(d,x),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Qa=Math.tan(mxUtils.toRadians(30)),Ha=(.5-Qa)/2;mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size=
-6;e.prototype.paintVertexShape=function(a,c,b,d,f){a.setFillColor(this.stroke);var x=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(c+.5*(d-x),b+.5*(f-x),x,x);a.fill();a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Qa);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*Ha);
-a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-Ha)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(l,mxCylinder);l.prototype.size=20;l.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Qa));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-Ha)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-Ha)*c),a.lineTo(.5*c,(1-Ha)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*Ha),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-Ha)*c),a.lineTo(0,.75*
+a.close(),a.fill()),a.begin(),a.moveTo(x,f),a.lineTo(x,x),a.lineTo(0,0),a.moveTo(x,x),a.lineTo(d,x),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Ra=Math.tan(mxUtils.toRadians(30)),Ha=(.5-Ra)/2;mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size=
+6;e.prototype.paintVertexShape=function(a,c,b,d,f){a.setFillColor(this.stroke);var x=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(c+.5*(d-x),b+.5*(f-x),x,x);a.fill();a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Ra);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*Ha);
+a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-Ha)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(l,mxCylinder);l.prototype.size=20;l.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Ra));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-Ha)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-Ha)*c),a.lineTo(.5*c,(1-Ha)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*Ha),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-Ha)*c),a.lineTo(0,.75*
c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",l);mxUtils.extend(m,mxCylinder);m.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,
c),a.curveTo(0,-c/3,d,-c/3,d,c),a.lineTo(d,f-c),a.curveTo(d,f+c/3,0,f+c/3,0,f-c),a.close())};m.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",m);mxUtils.extend(u,mxCylinder);u.prototype.size=30;u.prototype.darkOpacity=0;u.prototype.paintVertexShape=function(a,c,b,d,f){var x=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=
Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-x,0);a.lineTo(d,x);a.lineTo(d,f);a.lineTo(0,f);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-x,0),a.lineTo(d-x,x),a.lineTo(d,x),a.close(),a.fill()),a.begin(),a.moveTo(d-x,0),a.lineTo(d-x,x),a.lineTo(d,x),a.end(),a.stroke())};
@@ -2677,7 +2678,7 @@ c);a.lineTo(d,f-c);a.arcTo(c,c,0,0,1,d-c,f);a.lineTo(x+c,f);a.arcTo(c,c,0,0,1,x,
"size",this.size)))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("card",v);mxUtils.extend(A,mxActor);A.prototype.size=.4;A.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,c/2);a.quadTo(d/4,1.4*c,d/2,c/2);a.quadTo(3*
d/4,c*(1-1.4),d,c/2);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};A.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),b=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*=d,new mxRectangle(a.x,a.y+c,b,d-2*c);c*=b;return new mxRectangle(a.x+c,a.y,b-
2*c,d)}return a};mxCellRenderer.registerShape("tape",A);mxUtils.extend(F,mxActor);F.prototype.size=.3;F.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};F.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/
-4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",F);var Ya=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,b,d){var f=mxUtils.getValue(this.style,"size");return null!=f?d*Math.max(0,Math.min(1,f)):Ya.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*
+4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",F);var Za=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,b,d){var f=mxUtils.getValue(this.style,"size");return null!=f?d*Math.max(0,Math.min(1,f)):Za.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*
this.scale,a.height*c),0,0)}return null};g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(c/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*c*this.scale),0,Math.max(0,.3*c*this.scale))}return null};p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),x=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(x*=Math.min(a.width,a.height));x=Math.min(x,.5*a.width,.5*(a.height-c));d||(x=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(x,0,Math.min(a.width,a.width-
b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,x,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};t.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};q.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",
@@ -2688,224 +2689,224 @@ this.fixedSize)))):d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.sty
a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",M);G.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};G.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};G.prototype.quadTo=function(a,c,b,d){this.originalQuadTo.apply(this.canvas,
arguments);this.lastX=b;this.lastY=d};G.prototype.curveTo=function(a,c,b,d,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};G.prototype.arcTo=function(a,c,b,d,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};G.prototype.lineTo=function(a,c){if(null!=this.lastX&&null!=this.lastY){var b=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),x=Math.sqrt(d*d+f*f);if(2>x){this.originalLineTo.apply(this.canvas,
arguments);this.lastX=a;this.lastY=c;return}var e=Math.round(x/10),g=this.defaultVariation;5>e&&(e=5,g/=3);for(var k=b(a-this.lastX)*d/e,b=b(c-this.lastY)*f/e,d=d/x,f=f/x,x=0;x<e;x++){var n=(Math.random()-.5)*g;this.originalLineTo.call(this.canvas,k*x+this.lastX-n*f,b*x+this.lastY-n*d)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};G.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;
-this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};mxShape.prototype.defaultJiggle=1.5;var Za=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(a){Za.apply(this,arguments);null==a.handJiggle&&(a.handJiggle=this.createHandJiggle(a))};var $a=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(a){$a.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),
-delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new G(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(a)};mxRhombus.prototype.defaultJiggle=2;var ab=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,
-"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&ab.apply(this,arguments)};var db=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,c,b,d,f){if(null==a.handJiggle||a.handJiggle.constructor!=G)db.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||
+this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};mxShape.prototype.defaultJiggle=1.5;var $a=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(a){$a.apply(this,arguments);null==a.handJiggle&&(a.handJiggle=this.createHandJiggle(a))};var ab=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(a){ab.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),
+delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new G(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(a)};mxRhombus.prototype.defaultJiggle=2;var bb=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,
+"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&bb.apply(this,arguments)};var eb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,c,b,d,f){if(null==a.handJiggle||a.handJiggle.constructor!=G)eb.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||
null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?e=Math.min(d/2,Math.min(f/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.min(d*e,f*e)),a.moveTo(c+e,b),a.lineTo(c+d-e,b),a.quadTo(c+d,b,c+d,b+e),a.lineTo(c+d,b+f-e),a.quadTo(c+d,b+f,c+d-e,
-b+f),a.lineTo(c+e,b+f),a.quadTo(c,b+f,c,b+f-e),a.lineTo(c,b+e),a.quadTo(c,b,c+e,b)):(a.moveTo(c,b),a.lineTo(c+d,b),a.lineTo(c+d,b+f),a.lineTo(c,b+f),a.lineTo(c,b)),a.close(),a.end(),a.fillAndStroke()}};var eb=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,b,d,f){null==a.handJiggle&&eb.apply(this,arguments)};mxUtils.extend(J,mxRectangleShape);J.prototype.size=.1;J.prototype.fixedSize=!1;J.prototype.isHtmlAllowed=function(){return!1};J.prototype.getLabelBounds=
-function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var c=a.width,b=a.height;a=new mxRectangle(a.x,a.y,c,b);var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(c*f,b*f));a.x+=
-Math.round(d);a.width-=Math.round(2*d)}return a};J.prototype.paintForeground=function(a,c,b,d,f){var e=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),x=parseFloat(mxUtils.getValue(this.style,"size",this.size)),x=e?Math.max(0,Math.min(d,x)):d*Math.max(0,Math.min(1,x));this.isRounded&&(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,x=Math.max(x,Math.min(d*e,f*e)));x=Math.round(x);a.begin();a.moveTo(c+x,b);a.lineTo(c+x,b+f);a.moveTo(c+
-d-x,b);a.lineTo(c+d-x,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",J);mxCellRenderer.registerShape("process2",J);mxUtils.extend(H,mxRectangleShape);H.prototype.paintBackground=function(a,c,b,d,f){a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};H.prototype.paintForeground=function(a,c,b,d,f){};mxCellRenderer.registerShape("transparent",H);mxUtils.extend(D,mxHexagon);D.prototype.size=30;D.prototype.position=
-.5;D.prototype.position2=.5;D.prototype.base=20;D.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};D.prototype.isRoundable=function(){return!0};D.prototype.redrawPath=function(a,c,b,d,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position",this.position)))),x=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-b),new mxPoint(Math.min(d,e+g),f-b),new mxPoint(x,f),new mxPoint(Math.max(0,e),f-b),new mxPoint(0,f-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",D);mxUtils.extend(K,mxActor);K.prototype.size=.2;K.prototype.fixedSize=
-20;K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(0,
-f),new mxPoint(c,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",K);mxUtils.extend(I,mxHexagon);I.prototype.size=.25;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.5*f),new mxPoint(d-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",I);mxUtils.extend(R,mxRectangleShape);R.prototype.isHtmlAllowed=function(){return!1};R.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();
-a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",R);var Wa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Wa.apply(this,arguments);if(!this.outline&&
-1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Wa.apply(this,[a,c,b,d,f]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-
-2*c)}return a};N.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,x;do{x=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=x){var g=this.style["symbol"+e+"Align"],k=this.style["symbol"+e+"VerticalAlign"],n=this.style["symbol"+
-e+"Width"],p=this.style["symbol"+e+"Height"],la=this.style["symbol"+e+"Spacing"]||0,va=this.style["symbol"+e+"VSpacing"]||la,t=this.style["symbol"+e+"ArcSpacing"];null!=t&&(t*=this.getArcSize(d+this.strokewidth,f+this.strokewidth),la+=t,va+=t);var t=c,Ca=b,t=g==mxConstants.ALIGN_CENTER?t+(d-n)/2:g==mxConstants.ALIGN_RIGHT?t+(d-n-la):t+la,Ca=k==mxConstants.ALIGN_MIDDLE?Ca+(f-p)/2:k==mxConstants.ALIGN_BOTTOM?Ca+(f-p-va):Ca+va;a.save();g=new x;g.style=this.style;x.prototype.paintVertexShape.call(g,a,
-t,Ca,n,p);a.restore()}e++}while(null!=x)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(n,mxCylinder);n.prototype.redrawPath=function(a,c,b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",n);mxUtils.extend(B,mxShape);B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/
-4);a.fillAndStroke();a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0,f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(C,mxShape);C.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};C.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();
-a.begin();a.moveTo(0,f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",C);mxUtils.extend(ka,mxEllipse);ka.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",ka);mxUtils.extend(E,mxShape);E.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();
-a.moveTo(d,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",E);mxUtils.extend(U,mxShape);U.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};U.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,f/8,d,7*f/8);a.fillAndStroke()};U.prototype.paintForeground=function(a,c,b,d,f){a.begin();a.moveTo(3*d/
-8,f/8*1.1);a.lineTo(5*d/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",U);mxUtils.extend(Y,mxRectangleShape);Y.prototype.size=40;Y.prototype.isHtmlAllowed=function(){return!1};Y.prototype.getLabelBounds=function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};Y.prototype.paintBackground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
-"size",this.size)))),x=mxUtils.getValue(this.style,"participant");null==x||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,c,b,d,e):(x=this.state.view.graph.cellRenderer.getShape(x),null!=x&&x!=Y&&(x=new x,x.apply(this.state),a.save(),x.paintVertexShape(a,c,b,d,e),a.restore()));e<f&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(c+d/2,b+e),a.lineTo(c+d/2,b+f),a.end(),a.stroke())};Y.prototype.paintForeground=function(a,c,b,d,f){var e=
-Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,b,d,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline",Y);mxUtils.extend(X,mxShape);X.prototype.width=60;X.prototype.height=30;X.prototype.corner=10;X.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*
-this.scale))};X.prototype.paintBackground=function(a,c,b,d,f){var e=this.corner,x=Math.min(d,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(f,Math.max(1.5*e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(a.setFillColor(k),a.rect(c,b,d,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?
-(this.getGradientBounds(a,c,b,d,f),a.setGradient(this.fill,this.gradient,c,b,d,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,b);a.lineTo(c+x,b);a.lineTo(c+x,b+Math.max(0,g-1.5*e));a.lineTo(c+Math.max(0,x-e),b+g);a.lineTo(c,b+g);a.close();a.fillAndStroke();a.begin();a.moveTo(c+x,b);a.lineTo(c+d,b);a.lineTo(c+d,b+f);a.lineTo(c,b+f);a.lineTo(c,b+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",X);mxPerimeter.CenterPerimeter=function(a,c,b,d){return new mxPoint(a.getCenterX(),
-a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,c,b,d){d=Y.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;b.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y+d,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=
-function(a,c,b,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,b,d){d=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(d+=parseFloat(c.style.backboneSize)*c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return b.x<a.getCenterX()&&(d=-1*(d+1)),
-new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,b,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",D.prototype.size))*c.view.scale))),c.style),
-c,b,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?y.prototype.fixedSize:y.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?
-(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g)]):(f=f?Math.max(0,Math.min(.5*k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k,g),new mxPoint(x+k-f,g+n),new mxPoint(x,g+n),new mxPoint(x+f,g)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<x||b.x>x+k?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",
-mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?z.prototype.fixedSize:z.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(.5*k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+
-f,g),new mxPoint(x+k-f,g),new mxPoint(x+k,g+n),new mxPoint(x,g+n),new mxPoint(x+f,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g),new mxPoint(x+k-f,g+n),new mxPoint(x+f,g+n),new mxPoint(x,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g+f),new mxPoint(x+k,g),new mxPoint(x+k,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g+f)]):(f=f?Math.max(0,Math.min(n,e)):
-n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n-f),new mxPoint(x,g+n),new mxPoint(x,g)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<x||b.x>x+k?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?K.prototype.fixedSize:K.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,
-"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height,p=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k-f,g),new mxPoint(x+k,a),new mxPoint(x+k-f,g+n),new mxPoint(x,g+n),new mxPoint(x+f,a),new mxPoint(x,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(k,
-e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k,g),new mxPoint(x+k-f,a),new mxPoint(x+k,g+n),new mxPoint(x+f,g+n),new mxPoint(x,a),new mxPoint(x+f,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g+f),new mxPoint(p,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n),new mxPoint(p,g+n-f),new mxPoint(x,g+n),new mxPoint(x,g+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(p,g+
-f),new mxPoint(x+k,g),new mxPoint(x+k,g+n-f),new mxPoint(p,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g)]);p=new mxPoint(p,a);d&&(b.x<x||b.x>x+k?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?I.prototype.fixedSize:I.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,
-n=a.height,p=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(p,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n-f),new mxPoint(p,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g+f),new mxPoint(p,g)]):(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+
-f,g),new mxPoint(x+k-f,g),new mxPoint(x+k,a),new mxPoint(x+k-f,g+n),new mxPoint(x+f,g+n),new mxPoint(x,a),new mxPoint(x+f,g)]);p=new mxPoint(p,a);d&&(b.x<x||b.x>x+k?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ma,mxShape);ma.prototype.size=10;ma.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);
-a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",ma);mxUtils.extend(pa,mxShape);pa.prototype.size=10;pa.prototype.inset=2;pa.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),x=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.begin();a.moveTo(d/2,e+x);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-x,e/2);a.quadTo((d-
-e)/2-x,e+x,d/2,e+x);a.quadTo((d+e)/2+x,e+x,(d+e)/2+x,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",pa);mxUtils.extend(Z,mxShape);Z.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",Z);mxUtils.extend(ha,mxShape);ha.prototype.inset=2;ha.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+
-this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ha);mxUtils.extend(ia,mxCylinder);ia.prototype.jettyWidth=20;ia.prototype.jettyHeight=10;ia.prototype.redrawPath=function(a,c,b,d,f,e){var x=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));
-b=x/2;var x=b+x/2,g=Math.min(c,f-c),k=Math.min(g+2*c,f-c);e?(a.moveTo(b,g),a.lineTo(x,g),a.lineTo(x,g+c),a.lineTo(b,g+c),a.moveTo(b,k),a.lineTo(x,k),a.lineTo(x,k+c),a.lineTo(b,k+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(b,k),a.lineTo(b,g+c),a.lineTo(0,g+c),a.lineTo(0,g),a.lineTo(b,g),a.close());a.end()};mxCellRenderer.registerShape("module",ia);mxUtils.extend(fa,mxCylinder);fa.prototype.jettyWidth=32;fa.prototype.jettyHeight=
-12;fa.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,x=.3*f-c/2,k=.7*f-c/2;e?(a.moveTo(b,x),a.lineTo(g,x),a.lineTo(g,x+c),a.lineTo(b,x+c),a.moveTo(b,k),a.lineTo(g,k),a.lineTo(g,k+c),a.lineTo(b,k+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(b,k),a.lineTo(b,x+c),a.lineTo(0,
-x+c),a.lineTo(0,x),a.lineTo(b,x),a.close());a.end()};mxCellRenderer.registerShape("component",fa);mxUtils.extend(ba,mxRectangleShape);ba.prototype.paintForeground=function(a,c,b,d,f){var e=d/2,g=f/2,x=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(c+e,b),new mxPoint(c+d,b+g),new mxPoint(c+e,b+f),new mxPoint(c,b+g)],this.isRounded,x,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",
-ba);mxUtils.extend(na,mxDoubleEllipse);na.prototype.outerStroke=!0;na.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",na);mxUtils.extend(V,na);V.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",V);mxUtils.extend(Q,mxArrowConnector);Q.prototype.defaultWidth=4;Q.prototype.isOpenEnded=
-function(){return!0};Q.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Q.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",Q);mxUtils.extend(oa,mxArrowConnector);oa.prototype.defaultWidth=10;oa.prototype.defaultArrowWidth=20;oa.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};oa.prototype.getEndArrowWidth=
-function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};oa.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",oa);mxUtils.extend(T,mxActor);T.prototype.size=30;T.prototype.isRoundable=function(){return!0};T.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",T);mxUtils.extend(ca,mxRectangleShape);ca.prototype.dx=20;ca.prototype.dy=20;ca.prototype.isHtmlAllowed=function(){return!1};ca.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ca);mxUtils.extend(ja,mxActor);ja.prototype.dx=20;ja.prototype.dy=
-20;ja.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};
-mxCellRenderer.registerShape("corner",ja);mxUtils.extend(ra,mxActor);ra.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",ra);mxUtils.extend(O,mxActor);O.prototype.dx=20;O.prototype.dy=20;O.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",O);mxUtils.extend(ga,mxActor);ga.prototype.arrowWidth=.3;ga.prototype.arrowSize=.2;ga.prototype.redrawPath=
-function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",
-ga);mxUtils.extend(ea,mxActor);ea.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),
-new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ea);mxUtils.extend(S,mxActor);S.prototype.size=.1;S.prototype.fixedSize=20;S.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
-a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",S);mxUtils.extend(ya,mxActor);ya.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",ya);mxUtils.extend(P,mxActor);P.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",
-P);mxUtils.extend(aa,mxActor);aa.prototype.size=20;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
-aa);mxUtils.extend(qa,mxActor);qa.prototype.size=.375;qa.prototype.isRoundable=function(){return!0};qa.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",
-qa);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/2,b+f);a.lineTo(c+d,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",sa);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke();a.begin();a.moveTo(c+d/2,b);
-a.lineTo(c+d/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",ta);mxUtils.extend(Fa,mxEllipse);Fa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*d,b+.145*f);a.lineTo(c+.855*d,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*d,b+.145*f);a.lineTo(c+.145*d,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",Fa);mxUtils.extend(Da,mxRhombus);Da.prototype.paintVertexShape=
-function(a,c,b,d,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",Da);mxUtils.extend(Ga,mxEllipse);Ga.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",
-Ga);mxUtils.extend(Ja,mxEllipse);Ja.prototype.paintVertexShape=function(a,c,b,d,f){var e=b+f-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+f);a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,e+5);a.moveTo(c,e);a.lineTo(c+d,e);a.moveTo(c+d,b);a.lineTo(c+d,b+f);a.moveTo(c+d,e);a.lineTo(c+d-10,e-5);a.moveTo(c+d,e);a.lineTo(c+d-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",Ja);mxUtils.extend(xa,mxEllipse);xa.prototype.paintVertexShape=function(a,c,b,d,f){this.outline||a.setStrokeColor(null);
-if(null!=this.style){var e=a.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1);a.rect(c,b,d,f);a.fill();a.pointerEvents=e;a.setStrokeColor(this.stroke);a.begin();a.moveTo(c,b);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+d,b):a.moveTo(c+d,b);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+d,b+f):a.moveTo(c+d,b+f);this.outline||"1"==mxUtils.getValue(this.style,
-"bottom","1")?a.lineTo(c,b+f):a.moveTo(c,b+f);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(c,b);a.end();a.stroke()}};mxCellRenderer.registerShape("partialRectangle",xa);mxUtils.extend(Ia,mxEllipse);Ia.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+d/2,b),a.lineTo(c+d/2,b+f)):(a.moveTo(c,b+f/2),a.lineTo(c+d,b+f/2));a.end();a.stroke()};
-mxCellRenderer.registerShape("lineEllipse",Ia);mxUtils.extend(za,mxActor);za.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);a.moveTo(0,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay",za);mxUtils.extend(ua,mxActor);ua.prototype.size=.2;ua.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,d);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;b=c+e;var g=(d-
-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(d,c);a.lineTo(d,b);a.lineTo(e,b);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",ua);mxUtils.extend(wa,mxActor);wa.prototype.size=.25;wa.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);b=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/
-2);a.quadTo(d,f,d-c,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",wa);mxUtils.extend(W,mxActor);W.prototype.cst={RECT2:"mxgraph.basic.rect"};W.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",
-dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",
-type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},
-{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
-type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
-dispName:"Fold"}]}];W.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);this.strictDrawShape(a,0,0,d,f)};W.prototype.strictDrawShape=function(a,c,b,d,f,e){var g=e&&e.rectStyle?e.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=e&&e.absoluteCornerSize?e.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),n=e&&e.size?e.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=e&&e.rectOutline?e.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),x=e&&e.indent?e.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),t=e&&e.dashed?e.dashed:mxUtils.getValue(this.style,"dashed",!1),v=e&&e.dashPattern?e.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),l=e&&e.relIndent?e.relIndent:Math.max(0,Math.min(50,x)),m=e&&e.top?e.top:mxUtils.getValue(this.style,"top",!0),q=e&&e.right?e.right:mxUtils.getValue(this.style,"right",!0),B=e&&e.bottom?e.bottom:
-mxUtils.getValue(this.style,"bottom",!0),C=e&&e.left?e.left:mxUtils.getValue(this.style,"left",!0),y=e&&e.topLeftStyle?e.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),z=e&&e.topRightStyle?e.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),E=e&&e.bottomRightStyle?e.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),A=e&&e.bottomLeftStyle?e.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),u=e&&e.fillColor?e.fillColor:
-mxUtils.getValue(this.style,"fillColor","#ffffff");e&&e.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var ka=e&&e.strokeWidth?e.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),va=e&&e.fillColor2?e.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),I=e&&e.gradientColor2?e.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),F=e&&e.gradientDirection2?e.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),la=e&&e.opacity?
-e.opacity:mxUtils.getValue(this.style,"opacity","100"),D=Math.max(0,Math.min(50,n));e=W.prototype;a.setDashed(t);v&&""!=v&&a.setDashPattern(v);a.setStrokeWidth(ka);n=Math.min(.5*f,.5*d,n);k||(n=D*Math.min(d,f)/100);n=Math.min(n,.5*Math.min(d,f));k||(x=Math.min(l*Math.min(d,f)/100));x=Math.min(x,.5*Math.min(d,f)-n);(m||q||B||C)&&"frame"!=p&&(a.begin(),m?e.moveNW(a,c,b,d,f,g,y,n,C):a.moveTo(0,0),m&&e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),q&&e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,
-c,b,d,f,g,E,n,B),B&&e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),C&&e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(va),t=k=la,"none"==va&&(k=0),"none"==I&&(t=0),a.setGradient(va,I,0,0,d,f,F,k,t),a.begin(),m?e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C):a.moveTo(x,0),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),C&&B&&e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),B&&q&&e.paintSEInner(a,c,b,d,f,g,E,n,x),
-e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),q&&m&&e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),m&&C&&e.paintNWInner(a,c,b,d,f,g,y,n,x),a.fill(),"none"==u&&(a.begin(),e.paintFolds(a,c,b,d,f,g,y,z,E,A,n,m,q,B,C),a.stroke()));m||q||B||!C?m||q||!B||C?!m&&!q&&B&&C?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,
-d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m||!q||B||C?!m&&q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,
-c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke(),a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke(),a.begin(),e.moveNE(a,c,b,d,f,g,z,
-n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m&&q&&B&&!C?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,
-b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m&&q&&B&&C?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,
-n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,
-c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m||q||B||C?m&&!q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,
-c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke()):m&&!q&&B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,
-b,d,f,g,y,n,x,C,m)),a.stroke(),a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke(),a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,
-c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m&&!q&&B&&C?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,
-B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m&&q&&!B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,
-c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,
-c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):m&&q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,
-c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke()):m&&q&&B&&!C?"frame"!=p?(a.begin(),
-e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),
-e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):m&&q&&B&&C&&("frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,
-c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,
-c,b,d,f,g,A,n,x,B,C),a.close()),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,
-c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke())):"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,
-c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==
-p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,
-c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke());a.begin();e.paintFolds(a,c,b,d,f,g,y,z,E,A,n,m,q,B,C);a.stroke()};W.prototype.moveNW=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(0,0):a.moveTo(0,n)};W.prototype.moveNE=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(d,0):a.moveTo(d-n,0)};W.prototype.moveSE=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&
-"square"==e||!k?a.moveTo(d,f):a.moveTo(d,f-n)};W.prototype.moveSW=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(0,f):a.moveTo(n,f)};W.prototype.paintNW=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,n,0)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(n,0);else a.lineTo(0,0)};W.prototype.paintTop=
-function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(d,0):a.lineTo(d-n,0)};W.prototype.paintNE=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,d,n)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d,n);else a.lineTo(d,0)};W.prototype.paintRight=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==
-g&&"square"==e||!k?a.lineTo(d,f):a.lineTo(d,f-n)};W.prototype.paintLeft=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(0,0):a.lineTo(0,n)};W.prototype.paintSE=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,d-n,f)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-n,f);else a.lineTo(d,
-f)};W.prototype.paintBottom=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(0,f):a.lineTo(n,f)};W.prototype.paintSW=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,0,f-n)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(0,f-n);else a.lineTo(0,f)};W.prototype.paintNWInner=function(a,c,b,
-d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,k,.5*k+n);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,k,k+n);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(k,.5*k+n);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(k+n,k+n),a.lineTo(k,k+n)};W.prototype.paintTopInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(0,k):p&&!t?a.lineTo(k,0):p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,k):"rounded"==g||"default"==g&&
-"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(n+.5*k,k):a.lineTo(n+k,k):a.lineTo(0,k):a.lineTo(0,0)};W.prototype.paintNEInner=function(a,c,b,d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,d-n-.5*k,k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,d-n-k,k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-n-.5*k,k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-n-k,n+k),a.lineTo(d-n-k,k)};W.prototype.paintRightInner=
-function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(d-k,0):p&&!t?a.lineTo(d,k):p?"square"==g||"default"==g&&"square"==e?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,n+.5*k):a.lineTo(d-k,n+k):a.lineTo(d-k,0):a.lineTo(d,0)};W.prototype.paintLeftInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(k,f):p&&!t?a.lineTo(0,f-k):p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==
-g&&"snip"==e?a.lineTo(k,f-n-.5*k):a.lineTo(k,f-n-k):a.lineTo(k,f):a.lineTo(0,f)};W.prototype.paintSEInner=function(a,c,b,d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,d-k,f-n-.5*k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,d-k,f-n-k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-k,f-n-.5*k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-n-k,f-n-k),a.lineTo(d-k,f-n-k)};W.prototype.paintBottomInner=function(a,c,b,d,
-f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(d,f-k):p&&!t?a.lineTo(d-k,f):"square"==g||"default"==g&&"square"==e||!p?a.lineTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-n-.5*k,f-k):a.lineTo(d-n-k,f-k):a.lineTo(d,f)};W.prototype.paintSWInner=function(a,c,b,d,f,e,g,n,k,p){if(!p)a.lineTo(k,f);else if("square"==g||"default"==g&&"square"==e)a.lineTo(k,f-k);else if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,n+.5*k,f-k);else if("invRound"==
-g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,n+k,f-k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(n+.5*k,f-k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(k+n,f-n-k),a.lineTo(k+n,f-k)};W.prototype.moveSWInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.moveTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(k,
-f-n-k):a.moveTo(0,f-k)};W.prototype.lineSWInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,f-n-k):a.lineTo(0,f-k)};W.prototype.moveSEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.moveTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==
-e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-k,f-n-k):a.moveTo(d-k,f)};W.prototype.lineSEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.lineTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,f-n-k):a.lineTo(d-
-k,f)};W.prototype.moveNEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e||p?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-k,n+k):a.moveTo(d,k)};W.prototype.lineNEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e||p?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==
-g&&"snip"==e?a.lineTo(d-k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,n+k):a.lineTo(d,k)};W.prototype.moveNWInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.moveTo(k,0):p&&!t?a.moveTo(0,k):"square"==g||"default"==g&&"square"==e?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(k,n+k):a.moveTo(0,
-0)};W.prototype.lineNWInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(k,0):p&&!t?a.lineTo(0,k):"square"==g||"default"==g&&"square"==e?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,n+k):a.lineTo(0,0)};W.prototype.paintFolds=function(a,c,b,d,f,e,g,n,k,p,t,v,m,q,B){if("fold"==e||"fold"==g||"fold"==n||"fold"==k||"fold"==p)("fold"==g||"default"==
-g&&"fold"==e)&&v&&B&&(a.moveTo(0,t),a.lineTo(t,t),a.lineTo(t,0)),("fold"==n||"default"==n&&"fold"==e)&&v&&m&&(a.moveTo(d-t,0),a.lineTo(d-t,t),a.lineTo(d,t)),("fold"==k||"default"==k&&"fold"==e)&&q&&m&&(a.moveTo(d-t,f),a.lineTo(d-t,f-t),a.lineTo(d,f-t)),("fold"==p||"default"==p&&"fold"==e)&&q&&B&&(a.moveTo(0,f-t),a.lineTo(t,f-t),a.lineTo(t,f))};mxCellRenderer.registerShape(W.prototype.cst.RECT2,W);W.prototype.constraints=null;mxUtils.extend(Aa,mxConnector);Aa.prototype.origPaintEdgeShape=Aa.prototype.paintEdgeShape;
-Aa.prototype.paintEdgeShape=function(a,c,b){for(var d=[],f=0;f<c.length;f++)d.push(mxUtils.clone(c[f]));var f=a.state.dashed,e=a.state.fixDash;Aa.prototype.origPaintEdgeShape.apply(this,[a,d,b]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),Aa.prototype.origPaintEdgeShape.apply(this,[a,c,b])))};mxCellRenderer.registerShape("filledEdge",Aa);"undefined"!==typeof StyleFormatPanel&&function(){var a=
-StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==c.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1);return function(){a.begin();a.moveTo(d.x-t/2-x/2,d.y-x/2+t/2);a.lineTo(d.x+x/2-3*t/2,d.y-3*x/2-t/2);a.stroke()}});mxMarker.addMarker("box",
-function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1),v=d.x+t/2,m=d.y+x/2;d.x-=t;d.y-=x;return function(){a.begin();a.moveTo(v-t/2-x/2,m-x/2+t/2);a.lineTo(v-t/2+x/2,m-x/2-t/2);a.lineTo(v+x/2-3*t/2,m-3*x/2-t/2);a.lineTo(v-x/2-3*t/2,m-3*x/2+t/2);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1);return function(){a.begin();a.moveTo(d.x-t/2-x/2,d.y-x/2+t/2);a.lineTo(d.x+x/2-3*t/2,d.y-3*x/2-t/2);a.moveTo(d.x-t/2+x/2,d.y-
-x/2-t/2);a.lineTo(d.x-x/2-3*t/2,d.y-3*x/2+t/2);a.stroke()}});mxMarker.addMarker("circle",Ta);mxMarker.addMarker("circlePlus",function(a,c,b,d,f,e,g,n,k,p){var t=d.clone(),x=Ta.apply(this,arguments),v=f*(g+2*k),m=e*(g+2*k);return function(){x.apply(this,arguments);a.begin();a.moveTo(t.x-f*k,t.y-e*k);a.lineTo(t.x-2*v+f*k,t.y-2*m+e*k);a.moveTo(t.x-v-m+e*k,t.y-m+v-f*k);a.lineTo(t.x+m-v-e*k,t.y-m-v+f*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+
-k+1),v=d.clone();d.x-=t;d.y-=x;return function(){a.begin();a.moveTo(v.x-x,v.y+t);a.quadTo(d.x-x,d.y+t,d.x,d.y);a.quadTo(d.x+x,d.y-t,v.x+x,v.y-t);a.stroke()}});mxMarker.addMarker("async",function(a,c,d,b,f,e,g,n,k,p){c=f*k*1.118;d=e*k*1.118;f*=g+k;e*=g+k;var t=b.clone();t.x-=c;t.y-=d;b.x+=1*-f-c;b.y+=1*-e-d;return function(){a.begin();a.moveTo(t.x,t.y);n?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",
-function(a){a=null!=a?a:2;return function(c,d,b,f,e,g,n,k,p,t){e*=n+p;g*=n+p;var x=f.clone();return function(){c.begin();c.moveTo(x.x,x.y);k?c.lineTo(x.x-e-g/a,x.y-g+e/a):c.lineTo(x.x+g/a-e,x.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Xa=function(a,c,d){return La(a,["width"],c,function(c,b,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+d;return new mxPoint(e.x+b*c/4+f*g/2,e.y+f*c/4-b*g/2)},function(c,b,f,e,g,n){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));a.style.width=
-Math.round(2*c)/a.view.scale-d})},La=function(a,c,d,b,f){return da(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g=a.view.scale,n=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-n.x,k=f.y-n.y,p=Math.sqrt(e*e+k*k),n=b.call(this,p,e/p,k/p,n,f);return new mxPoint(n.x/g-c.x,n.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,n=g.length-1;c=a.view.translate;var k=a.view.scale,p=d?g[0]:g[n],g=d?g[1]:g[n-1],n=g.x-p.x,t=g.y-p.y,x=Math.sqrt(n*n+t*t);b.x=(b.x+c.x)*k;b.y=(b.y+c.y)*k;f.call(this,
-x,n/x,t/x,p,g,b,e)})},Ea=function(a){return function(c){return[da(c,["arrowWidth","arrowSize"],function(c){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ga.prototype.arrowWidth))),b=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",ga.prototype.arrowSize)));return new mxPoint(c.x+(1-b)*c.width,c.y+(1-d)*c.height/2)},function(c,d){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(c.y+c.height/2-d.y)/c.height*2));this.state.style.arrowSize=Math.max(0,
-Math.min(a,(c.x+c.width-d.x)/c.width))})]}},Ua=function(a){return function(c){return[da(c,["size"],function(c){var d=Math.max(0,Math.min(.5*c.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(c.x,c.y+d)},function(a,c){this.state.style.size=Math.max(0,c.y-a.y)},!0)]}},Ra=function(a,c,d){return function(b){var f=[da(b,["size"],function(d){var b=Math.max(0,Math.min(d.width,Math.min(d.height,parseFloat(mxUtils.getValue(this.state.style,"size",c)))))*a;return new mxPoint(d.x+
-b,d.y+b)},function(c,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(c.width,d.x-c.x),Math.min(c.height,d.y-c.y)))/a)},!1)];d&&mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ba(b));return f}},Ma=function(a,c,d,b,f){d=null!=d?d:.5;return function(e){var g=[da(e,["size"],function(c){var d=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,b=parseFloat(mxUtils.getValue(this.state.style,"size",d?f:a));return new mxPoint(c.x+Math.max(0,Math.min(.5*c.width,
-b*(d?1:c.width))),c.getCenterY())},function(a,c,b){a=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?c.x-a.x:Math.max(0,Math.min(d,(c.x-a.x)/a.width));this.state.style.size=a},!1,b)];c&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(Ba(e));return g}},Va=function(a,c,d){a=null!=a?a:.5;return function(b){var f=[da(b,["size"],function(b){var f=null!=d?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,e=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
-"size",f?d:c)));return new mxPoint(b.x+Math.min(.75*b.width*a,e*(f?.75:.75*b.width)),b.y+b.height/4)},function(c,b){var f=null!=d&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?b.x-c.x:Math.max(0,Math.min(a,(b.x-c.x)/c.width*.75));this.state.style.size=f},!1,!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ba(b));return f}},Ka=function(){return function(a){var c=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c}},Ba=function(a,c){return da(a,
-[mxConstants.STYLE_ARCSIZE],function(d){var b=null!=c?c:d.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var f=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(d.x+d.width-Math.min(d.width/2,f),d.y+b)}f=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(d.x+d.width-Math.min(Math.max(d.width/2,d.height/2),Math.min(d.width,d.height)*
-f),d.y+b)},function(c,d,b){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(c.width,2*(c.x+c.width-d.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(c.width-d.x+c.x)/Math.min(c.width,c.height))))})},da=function(a,c,d,b,f,e,g){var n=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);n.execute=function(a){for(var d=0;d<c.length;d++)this.copyStyle(c[d]);
-g&&g(a)};n.getPosition=d;n.setPosition=b;n.ignoreGrid=null!=f?f:!0;if(e){var k=n.positionChanged;n.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return n},Na={link:function(a){return[Xa(a,!0,10),Xa(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,d=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(d.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
-!0,function(c,d,b,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2,f.y+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2)},function(d,b,f,e,g,n,k){d=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(b-a.shape.strokewidth)/
-3)/100/a.view.scale;a.style.width=Math.round(2*d)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),d.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,
-d,b,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2,f.y+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2)},function(d,b,f,e,g,n,k){d=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(b-a.shape.strokewidth)/3)/
-100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*d)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-
-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(d.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,d,b,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2,f.y+b*(e+a.shape.strokewidth*
-a.view.scale)+d*c/2)},function(d,b,f,e,g,n,k){d=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(b-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*d)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<
-c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),d.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,d,b,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2,f.y+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2)},function(d,b,f,e,g,n,k){d=
-Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(b-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*d)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-
-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<c&&(a.style.endWidth=a.style.startWidth))})));return d},swimlane:function(a){var c=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var d=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));c.push(Ba(a,d/2))}c.push(da(a,[mxConstants.STYLE_STARTSIZE],
-function(c){var d=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(c.getCenterX(),c.y+Math.max(0,Math.min(c.height,d))):new mxPoint(c.x+Math.max(0,Math.min(c.width,d)),c.getCenterY())},function(c,d){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(c.height,d.y-c.y))):Math.round(Math.max(0,
-Math.min(c.width,d.x-c.x)))},!1,null,function(c){if(mxEvent.isControlDown(c.getEvent())&&(c=a.view.graph,c.isTableRow(a.cell)||c.isTableCell(a.cell))){for(var d=c.getSwimlaneDirection(a.style),b=c.model.getParent(a.cell),b=c.model.getChildCells(b,!0),f=[],e=0;e<b.length;e++)b[e]!=a.cell&&c.isSwimlane(b[e])&&c.getSwimlaneDirection(c.getCurrentCellStyle(b[e]))==d&&f.push(b[e]);c.setCellStyles(mxConstants.STYLE_STARTSIZE,a.style[mxConstants.STYLE_STARTSIZE],f)}}));return c},label:Ka(),ext:Ka(),rectangle:Ka(),
-triangle:Ka(),rhombus:Ka(),umlLifeline:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Y.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},umlFrame:function(a){return[da(a,["width","height"],function(a){var c=Math.max(X.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",X.prototype.width))),
-d=Math.max(1.5*X.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",X.prototype.height)));return new mxPoint(a.x+c,a.y+d)},function(a,c){this.state.style.width=Math.round(Math.max(X.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*X.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[da(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),d=parseFloat(mxUtils.getValue(this.state.style,
-"size",J.prototype.size));return c?new mxPoint(a.x+d,a.y+a.height/4):new mxPoint(a.x+a.width*d,a.y+a.height/4)},function(a,c){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*a.width,c.x-a.x)):Math.max(0,Math.min(.5,(c.x-a.x)/a.width));this.state.style.size=d},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},cross:function(a){return[da(a,["size"],function(a){var c=Math.min(a.width,a.height),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"size",ua.prototype.size)))*c/2;return new mxPoint(a.getCenterX()-c,a.getCenterY()-c)},function(a,c){var d=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-c.y)/d*2,Math.max(0,a.getCenterX()-c.x)/d*2)))})]},note:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=
-Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},note2:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",q.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[da(a,["size"],function(a){var c=
-Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",T.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},dataStorage:function(a){return[da(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),d=parseFloat(mxUtils.getValue(this.state.style,"size",c?S.prototype.fixedSize:
-S.prototype.size));return new mxPoint(a.x+a.width-d*(c?1:a.width),a.getCenterY())},function(a,c){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=d},!1)]},callout:function(a){var c=[da(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"position",D.prototype.position)));mxUtils.getValue(this.state.style,"base",D.prototype.base);return new mxPoint(a.x+d*a.width,a.y+a.height-c)},function(a,c){mxUtils.getValue(this.state.style,"base",D.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),da(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",D.prototype.position2)));
-return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),da(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position))),b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",D.prototype.base)));return new mxPoint(a.x+Math.min(a.width,
-d*a.width+b),a.y+a.height-c)},function(a,c){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-d*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},internalStorage:function(a){var c=[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ca.prototype.dx))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",ca.prototype.dy)));return new mxPoint(a.x+c,a.y+d)},function(a,c){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},module:function(a){return[da(a,["jettyWidth","jettyHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ia.prototype.jettyWidth))),d=Math.max(0,Math.min(a.height,
-mxUtils.getValue(this.state.style,"jettyHeight",ia.prototype.jettyHeight)));return new mxPoint(a.x+c/2,a.y+2*d)},function(a,c){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y))/2)})]},corner:function(a){return[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ja.prototype.dx))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",ja.prototype.dy)));return new mxPoint(a.x+c,a.y+d)},function(a,c){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},tee:function(a){return[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",O.prototype.dx))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",O.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+d)},function(a,
-c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},singleArrow:Ea(1),doubleArrow:Ea(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,
-"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+d)},function(a,c){var d=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=a.width-d);this.state.style.tabWidth=Math.round(d);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},document:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
-"size",F.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},tape:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",A.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[da(a,
-["isoAngle"],function(a){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",c.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(d),.5*a.height))},function(a,c){this.state.style.isoAngle=Math.max(0,50*(c.y-a.y)/a.height)},!0)]},cylinder2:Ua(f.prototype.size),cylinder3:Ua(g.prototype.size),offPageConnector:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",qa.prototype.size))));
-return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},"mxgraph.basic.rect":function(a){var c=[Graph.createHandle(a,["size"],function(a){var c=Math.max(0,Math.min(a.width/2,a.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+c,a.y+c)},function(a,c){this.state.style.size=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,c.x-a.x)))/100})];a=Graph.createHandle(a,
-["indent"],function(a){var c=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+c*a.height/200)},function(a,c){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(c.y-a.y)/a.height)))/100});c.push(a);return c},step:Ma(K.prototype.size,!0,null,!0,K.prototype.fixedSize),hexagon:Ma(I.prototype.size,!0,.5,!0,I.prototype.fixedSize),curlyBracket:Ma(L.prototype.size,!1),display:Ma(wa.prototype.size,!1),cube:Ra(1,
-b.prototype.size,!1),card:Ra(.5,v.prototype.size,!0),loopLimit:Ra(.5,aa.prototype.size,!0),trapezoid:Va(.5,z.prototype.size,z.prototype.fixedSize),parallelogram:Va(1,y.prototype.size,y.prototype.fixedSize)};Graph.createHandle=da;Graph.handleFactory=Na;var bb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=bb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&
-null==mxStencilRegistry.getStencil(c)?c=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(c=mxConstants.SHAPE_SWIMLANE);c=Na[c];null==c&&null!=this.state.shape&&this.state.shape.isRoundable()&&(c=Na[mxConstants.SHAPE_RECTANGLE]);null!=c&&(c=c(this.state),null!=c&&(a=null==a?c:a.concat(c)))}return a};mxEdgeHandler.prototype.createCustomHandles=function(){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
-a=Na[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Oa=new mxPoint(1,0),Pa=new mxPoint(1,0),Ea=mxUtils.toRadians(-30),Oa=mxUtils.getRotatedPoint(Oa,Math.cos(Ea),Math.sin(Ea)),Ea=mxUtils.toRadians(-150),Pa=mxUtils.getRotatedPoint(Pa,Math.cos(Ea),Math.sin(Ea));mxEdgeStyle.IsometricConnector=function(a,c,d,b,f){var e=a.view;b=null!=b&&0<b.length?b[0]:null;var g=a.absolutePoints,n=g[0],g=g[g.length-1];null!=b&&(b=e.transformControlPoint(a,b));null==
-n&&null!=c&&(n=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=d&&(g=new mxPoint(d.getCenterX(),d.getCenterY()));var k=Oa.x,p=Oa.y,t=Pa.x,v=Pa.y,m="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=n){a=function(a,c,d){a-=q.x;var b=c-q.y;c=(v*a-t*b)/(k*v-p*t);a=(p*a-k*b)/(p*t-k*v);m?(d&&(q=new mxPoint(q.x+k*c,q.y+p*c),f.push(q)),q=new mxPoint(q.x+t*a,q.y+v*a)):(d&&(q=new mxPoint(q.x+t*a,q.y+v*a),f.push(q)),q=new mxPoint(q.x+k*c,q.y+p*c));f.push(q)};var q=n;null==
-b&&(b=new mxPoint(n.x+(g.x-n.x)/2,n.y+(g.y-n.y)/2));a(b.x,b.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var cb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var d=new mxElbowEdgeHandler(a);d.snapToTerminals=!1;return d}return cb.apply(this,arguments)};d.prototype.constraints=[];l.prototype.getConstraints=function(a,c,d){a=[];var b=Math.tan(mxUtils.toRadians(30)),f=(.5-
-b)/2,b=Math.min(c,d/(.5+b));c=(c-b)/2;d=(d-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d+.25*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*b,d+b*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+b,d+.25*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+b,d+.75*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*b,d+(1-f)*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d+.75*b));return a};c.prototype.getConstraints=
-function(a,c,d){a=[];var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,b=Math.min(c*Math.tan(b),.5*d);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d-b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));return a};D.prototype.getConstraints=function(a,c,d){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-c,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d-b)));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
-0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,
-1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];xa.prototype.constraints=mxRectangleShape.prototype.constraints;
-mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d+b)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};v.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d+b)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};b.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,Math.min(d,parseFloat(mxUtils.getValue(this.style,
-"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d+b)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(c+b),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,d-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d-b)));return a};g.prototype.getConstraints=function(a,c,d){a=[];c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c+.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(1,
-0),!1,null,0,c+.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d-c-.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-c-.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-c));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-c));return a};p.prototype.getConstraints=
-function(a,c,d){a=[];var b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,b,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),f))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,.25*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.75*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,.75*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};ca.prototype.constraints=mxRectangleShape.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;sa.prototype.constraints=mxEllipse.prototype.constraints;ta.prototype.constraints=mxEllipse.prototype.constraints;
-Fa.prototype.constraints=mxEllipse.prototype.constraints;Ia.prototype.constraints=mxEllipse.prototype.constraints;T.prototype.constraints=mxRectangleShape.prototype.constraints;za.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.getConstraints=function(a,c,d){a=[];var b=Math.min(c,d/2),f=Math.min(c-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-b),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));return a};ia.prototype.getConstraints=function(a,c,d){c=parseFloat(mxUtils.getValue(a,
-"jettyWidth",ia.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ia.prototype.jettyHeight));var b=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
-.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(d-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(d-.5*a,3.5*a))];d>5*a&&b.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,c));d>8*a&&b.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1,null,c));d>15*a&&b.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,c));return b};aa.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];B.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
-.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];fa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
-.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,
-.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];k.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
-.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];A.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
-.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
-0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,
-.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,
-1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
+b+f),a.lineTo(c+e,b+f),a.quadTo(c,b+f,c,b+f-e),a.lineTo(c,b+e),a.quadTo(c,b,c+e,b)):(a.moveTo(c,b),a.lineTo(c+d,b),a.lineTo(c+d,b+f),a.lineTo(c,b+f),a.lineTo(c,b)),a.close(),a.end(),a.fillAndStroke()}};mxUtils.extend(J,mxRectangleShape);J.prototype.size=.1;J.prototype.fixedSize=!1;J.prototype.isHtmlAllowed=function(){return!1};J.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||
+this.direction==mxConstants.DIRECTION_WEST)){var c=a.width,b=a.height;a=new mxRectangle(a.x,a.y,c,b);var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(c*f,b*f));a.x+=Math.round(d);a.width-=Math.round(2*d)}return a};J.prototype.paintForeground=function(a,c,b,d,f){var e=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),
+x=parseFloat(mxUtils.getValue(this.style,"size",this.size)),x=e?Math.max(0,Math.min(d,x)):d*Math.max(0,Math.min(1,x));this.isRounded&&(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,x=Math.max(x,Math.min(d*e,f*e)));x=Math.round(x);a.begin();a.moveTo(c+x,b);a.lineTo(c+x,b+f);a.moveTo(c+d-x,b);a.lineTo(c+d-x,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",J);mxCellRenderer.registerShape("process2",
+J);mxUtils.extend(H,mxRectangleShape);H.prototype.paintBackground=function(a,c,b,d,f){a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};H.prototype.paintForeground=function(a,c,b,d,f){};mxCellRenderer.registerShape("transparent",H);mxUtils.extend(D,mxHexagon);D.prototype.size=30;D.prototype.position=.5;D.prototype.position2=.5;D.prototype.base=20;D.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};D.prototype.isRoundable=
+function(){return!0};D.prototype.redrawPath=function(a,c,b,d,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),x=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));
+this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-b),new mxPoint(Math.min(d,e+g),f-b),new mxPoint(x,f),new mxPoint(Math.max(0,e),f-b),new mxPoint(0,f-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",D);mxUtils.extend(K,mxActor);K.prototype.size=.2;K.prototype.fixedSize=20;K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
+"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(0,f),new mxPoint(c,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",K);mxUtils.extend(I,mxHexagon);I.prototype.size=.25;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};
+I.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.5*f),new mxPoint(d-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,b,
+!0)};mxCellRenderer.registerShape("hexagon",I);mxUtils.extend(R,mxRectangleShape);R.prototype.isHtmlAllowed=function(){return!1};R.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",R);var Xa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==
+this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Xa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Xa.apply(this,[a,c,b,d,f]))}};mxUtils.extend(N,
+mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};N.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
+0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,x;do{x=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=x){var g=this.style["symbol"+e+"Align"],k=this.style["symbol"+e+"VerticalAlign"],n=this.style["symbol"+e+"Width"],p=this.style["symbol"+e+"Height"],oa=this.style["symbol"+e+"Spacing"]||0,wa=this.style["symbol"+e+"VSpacing"]||oa,t=this.style["symbol"+e+"ArcSpacing"];null!=t&&(t*=this.getArcSize(d+this.strokewidth,
+f+this.strokewidth),oa+=t,wa+=t);var t=c,ya=b,t=g==mxConstants.ALIGN_CENTER?t+(d-n)/2:g==mxConstants.ALIGN_RIGHT?t+(d-n-oa):t+oa,ya=k==mxConstants.ALIGN_MIDDLE?ya+(f-p)/2:k==mxConstants.ALIGN_BOTTOM?ya+(f-p-wa):ya+wa;a.save();g=new x;g.style=this.style;x.prototype.paintVertexShape.call(g,a,t,ya,n,p);a.restore()}e++}while(null!=x)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(n,mxCylinder);n.prototype.redrawPath=function(a,c,
+b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",n);mxUtils.extend(B,mxShape);B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/4);a.fillAndStroke();a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0,f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();
+a.stroke()};mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(C,mxShape);C.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};C.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",C);mxUtils.extend(ka,mxEllipse);ka.prototype.paintVertexShape=
+function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",ka);mxUtils.extend(E,mxShape);E.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(d,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",E);mxUtils.extend(U,mxShape);U.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,
+a.y+a.height/8,a.width,7*a.height/8)};U.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,f/8,d,7*f/8);a.fillAndStroke()};U.prototype.paintForeground=function(a,c,b,d,f){a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",U);mxUtils.extend(Y,mxRectangleShape);Y.prototype.size=40;Y.prototype.isHtmlAllowed=function(){return!1};Y.prototype.getLabelBounds=
+function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};Y.prototype.paintBackground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),x=mxUtils.getValue(this.style,"participant");null==x||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,c,b,d,e):(x=this.state.view.graph.cellRenderer.getShape(x),null!=x&&x!=Y&&(x=new x,
+x.apply(this.state),a.save(),x.paintVertexShape(a,c,b,d,e),a.restore()));e<f&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(c+d/2,b+e),a.lineTo(c+d/2,b+f),a.end(),a.stroke())};Y.prototype.paintForeground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,b,d,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline",Y);mxUtils.extend(X,mxShape);
+X.prototype.width=60;X.prototype.height=30;X.prototype.corner=10;X.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};X.prototype.paintBackground=function(a,c,b,d,f){var e=this.corner,x=Math.min(d,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(f,Math.max(1.5*e,parseFloat(mxUtils.getValue(this.style,
+"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(a.setFillColor(k),a.rect(c,b,d,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,c,b,d,f),a.setGradient(this.fill,this.gradient,c,b,d,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,b);a.lineTo(c+x,b);a.lineTo(c+x,b+Math.max(0,g-1.5*e));a.lineTo(c+Math.max(0,x-
+e),b+g);a.lineTo(c,b+g);a.close();a.fillAndStroke();a.begin();a.moveTo(c+x,b);a.lineTo(c+d,b);a.lineTo(c+d,b+f);a.lineTo(c,b+f);a.lineTo(c,b+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",X);mxPerimeter.CenterPerimeter=function(a,c,b,d){return new mxPoint(a.getCenterX(),a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,c,b,d){d=Y.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||
+1)*c.view.scale/2-1;b.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y+d,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,c,b,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,b,d){d=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||
+1)*c.view.scale/2-1;null!=c.style.backboneSize&&(d+=parseFloat(c.style.backboneSize)*c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return b.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=
+function(a,c,b,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",D.prototype.size))*c.view.scale))),c.style),c,b,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?y.prototype.fixedSize:y.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));
+f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g)]):(f=f?Math.max(0,Math.min(.5*k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k,g),
+new mxPoint(x+k-f,g+n),new mxPoint(x,g+n),new mxPoint(x+f,g)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<x||b.x>x+k?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?z.prototype.fixedSize:z.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,
+g=a.y,k=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(.5*k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k-f,g),new mxPoint(x+k,g+n),new mxPoint(x,g+n),new mxPoint(x+f,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g),new mxPoint(x+k-f,g+n),new mxPoint(x+
+f,g+n),new mxPoint(x,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g+f),new mxPoint(x+k,g),new mxPoint(x+k,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n-f),new mxPoint(x,g+n),new mxPoint(x,g)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<x||b.x>x+k?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,
+a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?K.prototype.fixedSize:K.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height,p=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?
+(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k-f,g),new mxPoint(x+k,a),new mxPoint(x+k-f,g+n),new mxPoint(x,g+n),new mxPoint(x+f,a),new mxPoint(x,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k,g),new mxPoint(x+k-f,a),new mxPoint(x+k,g+n),new mxPoint(x+f,g+n),new mxPoint(x,a),new mxPoint(x+f,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,
+Math.min(1,e)),g=[new mxPoint(x,g+f),new mxPoint(p,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n),new mxPoint(p,g+n-f),new mxPoint(x,g+n),new mxPoint(x,g+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(p,g+f),new mxPoint(x+k,g),new mxPoint(x+k,g+n-f),new mxPoint(p,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g)]);p=new mxPoint(p,a);d&&(b.x<x||b.x>x+k?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);
+mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?I.prototype.fixedSize:I.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height,p=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,
+Math.min(1,e)),g=[new mxPoint(p,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n-f),new mxPoint(p,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g+f),new mxPoint(p,g)]):(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k-f,g),new mxPoint(x+k,a),new mxPoint(x+k-f,g+n),new mxPoint(x+f,g+n),new mxPoint(x,a),new mxPoint(x+f,g)]);p=new mxPoint(p,a);d&&(b.x<x||b.x>x+k?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("hexagonPerimeter2",
+mxPerimeter.HexagonPerimeter2);mxUtils.extend(la,mxShape);la.prototype.size=10;la.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",la);mxUtils.extend(pa,mxShape);pa.prototype.size=10;pa.prototype.inset=2;pa.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,
+"size",this.size)),x=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.begin();a.moveTo(d/2,e+x);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-x,e/2);a.quadTo((d-e)/2-x,e+x,d/2,e+x);a.quadTo((d+e)/2+x,e+x,(d+e)/2+x,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",pa);mxUtils.extend(Z,mxShape);Z.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.end();
+a.stroke()};mxCellRenderer.registerShape("requiredInterface",Z);mxUtils.extend(ha,mxShape);ha.prototype.inset=2;ha.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ha);mxUtils.extend(ia,mxCylinder);ia.prototype.jettyWidth=
+20;ia.prototype.jettyHeight=10;ia.prototype.redrawPath=function(a,c,b,d,f,e){var x=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=x/2;var x=b+x/2,g=Math.min(c,f-c),k=Math.min(g+2*c,f-c);e?(a.moveTo(b,g),a.lineTo(x,g),a.lineTo(x,g+c),a.lineTo(b,g+c),a.moveTo(b,k),a.lineTo(x,k),a.lineTo(x,k+c),a.lineTo(b,k+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,k+c),a.lineTo(0,k+c),a.lineTo(0,
+k),a.lineTo(b,k),a.lineTo(b,g+c),a.lineTo(0,g+c),a.lineTo(0,g),a.lineTo(b,g),a.close());a.end()};mxCellRenderer.registerShape("module",ia);mxUtils.extend(fa,mxCylinder);fa.prototype.jettyWidth=32;fa.prototype.jettyHeight=12;fa.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,x=.3*f-c/2,k=.7*f-c/2;e?(a.moveTo(b,x),a.lineTo(g,x),a.lineTo(g,
+x+c),a.lineTo(b,x+c),a.moveTo(b,k),a.lineTo(g,k),a.lineTo(g,k+c),a.lineTo(b,k+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(b,k),a.lineTo(b,x+c),a.lineTo(0,x+c),a.lineTo(0,x),a.lineTo(b,x),a.close());a.end()};mxCellRenderer.registerShape("component",fa);mxUtils.extend(ba,mxRectangleShape);ba.prototype.paintForeground=function(a,c,b,d,f){var e=d/2,g=f/2,x=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
+2;a.begin();this.addPoints(a,[new mxPoint(c+e,b),new mxPoint(c+d,b+g),new mxPoint(c+e,b+f),new mxPoint(c,b+g)],this.isRounded,x,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ba);mxUtils.extend(ma,mxDoubleEllipse);ma.prototype.outerStroke=!0;ma.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&
+(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",ma);mxUtils.extend(V,ma);V.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",V);mxUtils.extend(Q,mxArrowConnector);Q.prototype.defaultWidth=4;Q.prototype.isOpenEnded=function(){return!0};Q.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Q.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
+Q);mxUtils.extend(na,mxArrowConnector);na.prototype.defaultWidth=10;na.prototype.defaultArrowWidth=20;na.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};na.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};na.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};
+mxCellRenderer.registerShape("flexArrow",na);mxUtils.extend(T,mxActor);T.prototype.size=30;T.prototype.isRoundable=function(){return!0};T.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",T);mxUtils.extend(ca,
+mxRectangleShape);ca.prototype.dx=20;ca.prototype.dy=20;ca.prototype.isHtmlAllowed=function(){return!1};ca.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+"dy",this.dy))));a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ca);mxUtils.extend(ja,mxActor);ja.prototype.dx=20;ja.prototype.dy=20;ja.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,
+"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("corner",ja);mxUtils.extend(ra,mxActor);ra.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",
+ra);mxUtils.extend(O,mxActor);O.prototype.dx=20;O.prototype.dy=20;O.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+c)/
+2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",O);mxUtils.extend(ga,mxActor);ga.prototype.arrowWidth=.3;ga.prototype.arrowSize=.2;ga.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=b+e,
+g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",ga);mxUtils.extend(ea,mxActor);ea.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth))));c=d*Math.max(0,
+Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ea);mxUtils.extend(S,mxActor);S.prototype.size=
+.1;S.prototype.fixedSize=20;S.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",S);mxUtils.extend(za,mxActor);za.prototype.redrawPath=function(a,
+c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",za);mxUtils.extend(P,mxActor);P.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",P);mxUtils.extend(aa,mxActor);aa.prototype.size=20;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",aa);mxUtils.extend(qa,mxActor);qa.prototype.size=.375;qa.prototype.isRoundable=function(){return!0};qa.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",qa);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/2,b+f);a.lineTo(c+d,b+f);a.end();a.stroke()};
+mxCellRenderer.registerShape("tapeData",sa);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke();a.begin();a.moveTo(c+d/2,b);a.lineTo(c+d/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",ta);mxUtils.extend(Fa,mxEllipse);Fa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,
+arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*d,b+.145*f);a.lineTo(c+.855*d,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*d,b+.145*f);a.lineTo(c+.145*d,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",Fa);mxUtils.extend(Da,mxRhombus);Da.prototype.paintVertexShape=function(a,c,b,d,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",
+Da);mxUtils.extend(Ga,mxEllipse);Ga.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",Ga);mxUtils.extend(Ja,mxEllipse);Ja.prototype.paintVertexShape=function(a,c,b,d,f){var e=b+f-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+f);a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,
+e+5);a.moveTo(c,e);a.lineTo(c+d,e);a.moveTo(c+d,b);a.lineTo(c+d,b+f);a.moveTo(c+d,e);a.lineTo(c+d-10,e-5);a.moveTo(c+d,e);a.lineTo(c+d-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",Ja);mxUtils.extend(xa,mxEllipse);xa.prototype.paintVertexShape=function(a,c,b,d,f){this.outline||a.setStrokeColor(null);if(null!=this.style){var e=a.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=
+!1);a.rect(c,b,d,f);a.fill();a.pointerEvents=e;a.setStrokeColor(this.stroke);a.begin();a.moveTo(c,b);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+d,b):a.moveTo(c+d,b);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+d,b+f):a.moveTo(c+d,b+f);this.outline||"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,b+f):a.moveTo(c,b+f);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(c,b);a.end();a.stroke()}};mxCellRenderer.registerShape("partialRectangle",
+xa);mxUtils.extend(Ia,mxEllipse);Ia.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+d/2,b),a.lineTo(c+d/2,b+f)):(a.moveTo(c,b+f/2),a.lineTo(c+d,b+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",Ia);mxUtils.extend(Aa,mxActor);Aa.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);a.moveTo(0,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);
+a.quadTo(d,f,d-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay",Aa);mxUtils.extend(ua,mxActor);ua.prototype.size=.2;ua.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,d);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;b=c+e;var g=(d-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(d,c);a.lineTo(d,b);a.lineTo(e,b);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,b);a.lineTo(0,b);a.close();
+a.end()};mxCellRenderer.registerShape("cross",ua);mxUtils.extend(va,mxActor);va.prototype.size=.25;va.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);b=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",va);mxUtils.extend(W,mxActor);W.prototype.cst={RECT2:"mxgraph.basic.rect"};W.prototype.customProperties=
+[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",
+dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",
+defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",
+type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},
+{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]}];W.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);this.strictDrawShape(a,0,0,d,f)};W.prototype.strictDrawShape=function(a,c,b,d,f,e){var g=e&&e.rectStyle?e.rectStyle:
+mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=e&&e.absoluteCornerSize?e.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),n=e&&e.size?e.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=e&&e.rectOutline?e.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),x=e&&e.indent?e.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),t=e&&e.dashed?e.dashed:
+mxUtils.getValue(this.style,"dashed",!1),v=e&&e.dashPattern?e.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),l=e&&e.relIndent?e.relIndent:Math.max(0,Math.min(50,x)),m=e&&e.top?e.top:mxUtils.getValue(this.style,"top",!0),q=e&&e.right?e.right:mxUtils.getValue(this.style,"right",!0),B=e&&e.bottom?e.bottom:mxUtils.getValue(this.style,"bottom",!0),C=e&&e.left?e.left:mxUtils.getValue(this.style,"left",!0),y=e&&e.topLeftStyle?e.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),
+z=e&&e.topRightStyle?e.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),E=e&&e.bottomRightStyle?e.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),A=e&&e.bottomLeftStyle?e.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),u=e&&e.fillColor?e.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");e&&e.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var ka=e&&e.strokeWidth?e.strokeWidth:mxUtils.getValue(this.style,
+"strokeWidth","1"),wa=e&&e.fillColor2?e.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),I=e&&e.gradientColor2?e.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),F=e&&e.gradientDirection2?e.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),oa=e&&e.opacity?e.opacity:mxUtils.getValue(this.style,"opacity","100"),D=Math.max(0,Math.min(50,n));e=W.prototype;a.setDashed(t);v&&""!=v&&a.setDashPattern(v);a.setStrokeWidth(ka);n=Math.min(.5*f,.5*d,n);
+k||(n=D*Math.min(d,f)/100);n=Math.min(n,.5*Math.min(d,f));k||(x=Math.min(l*Math.min(d,f)/100));x=Math.min(x,.5*Math.min(d,f)-n);(m||q||B||C)&&"frame"!=p&&(a.begin(),m?e.moveNW(a,c,b,d,f,g,y,n,C):a.moveTo(0,0),m&&e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),q&&e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),B&&e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),C&&e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(wa),
+t=k=oa,"none"==wa&&(k=0),"none"==I&&(t=0),a.setGradient(wa,I,0,0,d,f,F,k,t),a.begin(),m?e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C):a.moveTo(x,0),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),C&&B&&e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),B&&q&&e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),q&&m&&e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),m&&C&&e.paintNWInner(a,c,b,d,f,g,y,n,x),a.fill(),"none"==u&&(a.begin(),e.paintFolds(a,
+c,b,d,f,g,y,z,E,A,n,m,q,B,C),a.stroke()));m||q||B||!C?m||q||!B||C?!m&&!q&&B&&C?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,
+B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m||!q||B||C?!m&&q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke(),a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==
+p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke(),a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m&&q&&B&&!C?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,
+n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,
+c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m&&q&&B&&C?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,
+n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):
+!m||q||B||C?m&&!q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,
+q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke()):m&&!q&&B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke(),a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),
+a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke(),a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m&&!q&&B&&C?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,
+d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,
+b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m&&q&&!B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,
+g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):m&&q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,
+c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,
+b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke()):m&&q&&B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,
+d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,
+c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):m&&q&&B&&C&&("frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),
+a.close(),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close()),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,
+z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,
+B,C),a.close(),a.fillAndStroke())):"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,
+b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,
+n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke());a.begin();e.paintFolds(a,c,b,
+d,f,g,y,z,E,A,n,m,q,B,C);a.stroke()};W.prototype.moveNW=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(0,0):a.moveTo(0,n)};W.prototype.moveNE=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(d,0):a.moveTo(d-n,0)};W.prototype.moveSE=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(d,f):a.moveTo(d,f-n)};W.prototype.moveSW=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(0,f):
+a.moveTo(n,f)};W.prototype.paintNW=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,n,0)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(n,0);else a.lineTo(0,0)};W.prototype.paintTop=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(d,0):a.lineTo(d-n,0)};W.prototype.paintNE=function(a,c,b,
+d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,d,n)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d,n);else a.lineTo(d,0)};W.prototype.paintRight=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(d,f):a.lineTo(d,f-n)};W.prototype.paintLeft=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==
+e||!k?a.lineTo(0,0):a.lineTo(0,n)};W.prototype.paintSE=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,d-n,f)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-n,f);else a.lineTo(d,f)};W.prototype.paintBottom=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(0,f):a.lineTo(n,f)};W.prototype.paintSW=
+function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,0,f-n)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(0,f-n);else a.lineTo(0,f)};W.prototype.paintNWInner=function(a,c,b,d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,k,.5*k+n);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+
+k,n+k,0,0,1,k,k+n);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(k,.5*k+n);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(k+n,k+n),a.lineTo(k,k+n)};W.prototype.paintTopInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(0,k):p&&!t?a.lineTo(k,0):p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(n+.5*k,k):a.lineTo(n+k,k):a.lineTo(0,k):a.lineTo(0,0)};W.prototype.paintNEInner=function(a,c,b,d,f,
+e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,d-n-.5*k,k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,d-n-k,k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-n-.5*k,k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-n-k,n+k),a.lineTo(d-n-k,k)};W.prototype.paintRightInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(d-k,0):p&&!t?a.lineTo(d,k):p?"square"==g||"default"==g&&"square"==e?a.lineTo(d-k,k):"rounded"==g||"default"==
+g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,n+.5*k):a.lineTo(d-k,n+k):a.lineTo(d-k,0):a.lineTo(d,0)};W.prototype.paintLeftInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(k,f):p&&!t?a.lineTo(0,f-k):p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,f-n-.5*k):a.lineTo(k,f-n-k):a.lineTo(k,f):a.lineTo(0,f)};W.prototype.paintSEInner=function(a,c,b,d,f,e,g,n,k){if("rounded"==g||"default"==
+g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,d-k,f-n-.5*k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,d-k,f-n-k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-k,f-n-.5*k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-n-k,f-n-k),a.lineTo(d-k,f-n-k)};W.prototype.paintBottomInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(d,f-k):p&&!t?a.lineTo(d-k,f):"square"==g||"default"==g&&"square"==e||!p?a.lineTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==
+e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-n-.5*k,f-k):a.lineTo(d-n-k,f-k):a.lineTo(d,f)};W.prototype.paintSWInner=function(a,c,b,d,f,e,g,n,k,p){if(!p)a.lineTo(k,f);else if("square"==g||"default"==g&&"square"==e)a.lineTo(k,f-k);else if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,n+.5*k,f-k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,n+k,f-k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(n+.5*k,f-k);else if("fold"==g||"default"==g&&
+"fold"==e)a.lineTo(k+n,f-n-k),a.lineTo(k+n,f-k)};W.prototype.moveSWInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.moveTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(k,f-n-k):a.moveTo(0,f-k)};W.prototype.lineSWInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,f-k):"rounded"==g||"default"==
+g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,f-n-k):a.lineTo(0,f-k)};W.prototype.moveSEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.moveTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-k,f-n-
+k):a.moveTo(d-k,f)};W.prototype.lineSEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.lineTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,f-n-k):a.lineTo(d-k,f)};W.prototype.moveNEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e||p?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==
+e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-k,n+k):a.moveTo(d,k)};W.prototype.lineNEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e||p?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,n+k):a.lineTo(d,k)};
+W.prototype.moveNWInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.moveTo(k,0):p&&!t?a.moveTo(0,k):"square"==g||"default"==g&&"square"==e?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(k,n+k):a.moveTo(0,0)};W.prototype.lineNWInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(k,0):p&&!t?a.lineTo(0,k):"square"==g||"default"==g&&"square"==
+e?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,n+k):a.lineTo(0,0)};W.prototype.paintFolds=function(a,c,b,d,f,e,g,n,k,p,t,v,m,q,B){if("fold"==e||"fold"==g||"fold"==n||"fold"==k||"fold"==p)("fold"==g||"default"==g&&"fold"==e)&&v&&B&&(a.moveTo(0,t),a.lineTo(t,t),a.lineTo(t,0)),("fold"==n||"default"==n&&"fold"==e)&&v&&m&&(a.moveTo(d-t,0),a.lineTo(d-
+t,t),a.lineTo(d,t)),("fold"==k||"default"==k&&"fold"==e)&&q&&m&&(a.moveTo(d-t,f),a.lineTo(d-t,f-t),a.lineTo(d,f-t)),("fold"==p||"default"==p&&"fold"==e)&&q&&B&&(a.moveTo(0,f-t),a.lineTo(t,f-t),a.lineTo(t,f))};mxCellRenderer.registerShape(W.prototype.cst.RECT2,W);W.prototype.constraints=null;mxUtils.extend(Ba,mxConnector);Ba.prototype.origPaintEdgeShape=Ba.prototype.paintEdgeShape;Ba.prototype.paintEdgeShape=function(a,c,b){for(var d=[],f=0;f<c.length;f++)d.push(mxUtils.clone(c[f]));var f=a.state.dashed,
+e=a.state.fixDash;Ba.prototype.origPaintEdgeShape.apply(this,[a,d,b]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),Ba.prototype.origPaintEdgeShape.apply(this,[a,c,b])))};mxCellRenderer.registerShape("filledEdge",Ba);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=this.format.getSelectionState(),
+b=a.apply(this,arguments);"umlFrame"==c.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1);return function(){a.begin();a.moveTo(d.x-t/2-x/2,d.y-x/2+t/2);a.lineTo(d.x+x/2-3*t/2,d.y-3*x/2-t/2);a.stroke()}});mxMarker.addMarker("box",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1),v=d.x+t/2,m=d.y+x/2;d.x-=t;d.y-=x;return function(){a.begin();
+a.moveTo(v-t/2-x/2,m-x/2+t/2);a.lineTo(v-t/2+x/2,m-x/2-t/2);a.lineTo(v+x/2-3*t/2,m-3*x/2-t/2);a.lineTo(v-x/2-3*t/2,m-3*x/2+t/2);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1);return function(){a.begin();a.moveTo(d.x-t/2-x/2,d.y-x/2+t/2);a.lineTo(d.x+x/2-3*t/2,d.y-3*x/2-t/2);a.moveTo(d.x-t/2+x/2,d.y-x/2-t/2);a.lineTo(d.x-x/2-3*t/2,d.y-3*x/2+t/2);a.stroke()}});mxMarker.addMarker("circle",Ua);mxMarker.addMarker("circlePlus",
+function(a,c,b,d,f,e,g,n,k,p){var t=d.clone(),x=Ua.apply(this,arguments),v=f*(g+2*k),m=e*(g+2*k);return function(){x.apply(this,arguments);a.begin();a.moveTo(t.x-f*k,t.y-e*k);a.lineTo(t.x-2*v+f*k,t.y-2*m+e*k);a.moveTo(t.x-v-m+e*k,t.y-m+v-f*k);a.lineTo(t.x+m-v-e*k,t.y-m-v+f*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1),v=d.clone();d.x-=t;d.y-=x;return function(){a.begin();a.moveTo(v.x-x,v.y+t);a.quadTo(d.x-x,d.y+t,d.x,d.y);a.quadTo(d.x+x,
+d.y-t,v.x+x,v.y-t);a.stroke()}});mxMarker.addMarker("async",function(a,c,d,b,f,e,g,n,k,p){c=f*k*1.118;d=e*k*1.118;f*=g+k;e*=g+k;var t=b.clone();t.x-=c;t.y-=d;b.x+=1*-f-c;b.y+=1*-e-d;return function(){a.begin();a.moveTo(t.x,t.y);n?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(c,d,b,f,e,g,n,k,p,t){e*=n+p;g*=n+p;var x=f.clone();return function(){c.begin();
+c.moveTo(x.x,x.y);k?c.lineTo(x.x-e-g/a,x.y-g+e/a):c.lineTo(x.x+g/a-e,x.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ya=function(a,c,d){return La(a,["width"],c,function(c,b,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+d;return new mxPoint(e.x+b*c/4+f*g/2,e.y+f*c/4-b*g/2)},function(c,b,f,e,g,n){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));a.style.width=Math.round(2*c)/a.view.scale-d})},La=function(a,c,d,b,f){return da(a,c,function(c){var f=a.absolutePoints,e=
+f.length-1;c=a.view.translate;var g=a.view.scale,n=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-n.x,k=f.y-n.y,p=Math.sqrt(e*e+k*k),n=b.call(this,p,e/p,k/p,n,f);return new mxPoint(n.x/g-c.x,n.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,n=g.length-1;c=a.view.translate;var k=a.view.scale,p=d?g[0]:g[n],g=d?g[1]:g[n-1],n=g.x-p.x,t=g.y-p.y,x=Math.sqrt(n*n+t*t);b.x=(b.x+c.x)*k;b.y=(b.y+c.y)*k;f.call(this,x,n/x,t/x,p,g,b,e)})},Ea=function(a){return function(c){return[da(c,["arrowWidth","arrowSize"],function(c){var b=
+Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ga.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",ga.prototype.arrowSize)));return new mxPoint(c.x+(1-d)*c.width,c.y+(1-b)*c.height/2)},function(c,b){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(c.y+c.height/2-b.y)/c.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(c.x+c.width-b.x)/c.width))})]}},Va=function(a){return function(c){return[da(c,["size"],function(c){var b=
+Math.max(0,Math.min(.5*c.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(c.x,c.y+b)},function(a,c){this.state.style.size=Math.max(0,c.y-a.y)},!0)]}},Sa=function(a,c,b){return function(d){var f=[da(d,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",c)))))*a;return new mxPoint(b.x+d,b.y+d)},function(c,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(c.width,b.x-c.x),Math.min(c.height,
+b.y-c.y)))/a)},!1)];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ca(d));return f}},Ma=function(a,c,b,d,f){b=null!=b?b:.5;return function(e){var g=[da(e,["size"],function(c){var b=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",b?f:a));return new mxPoint(c.x+Math.max(0,Math.min(.5*c.width,d*(b?1:c.width))),c.getCenterY())},function(a,c,d){a=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?
+c.x-a.x:Math.max(0,Math.min(b,(c.x-a.x)/a.width));this.state.style.size=a},!1,d)];c&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(Ca(e));return g}},Wa=function(a,c,b){a=null!=a?a:.5;return function(d){var f=[da(d,["size"],function(d){var f=null!=b?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,e=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,"size",f?b:c)));return new mxPoint(d.x+Math.min(.75*d.width*a,e*(f?.75:.75*d.width)),d.y+d.height/4)},function(c,d){var f=
+null!=b&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-c.x:Math.max(0,Math.min(a,(d.x-c.x)/c.width*.75));this.state.style.size=f},!1,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ca(d));return f}},Ka=function(){return function(a){var c=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ca(a));return c}},Ca=function(a,c){return da(a,[mxConstants.STYLE_ARCSIZE],function(b){var d=null!=c?c:b.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,
+0)){var f=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(b.x+b.width-Math.min(b.width/2,f),b.y+d)}f=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(b.x+b.width-Math.min(Math.max(b.width/2,b.height/2),Math.min(b.width,b.height)*f),b.y+d)},function(c,b,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=
+Math.round(Math.max(0,Math.min(c.width,2*(c.x+c.width-b.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(c.width-b.x+c.x)/Math.min(c.width,c.height))))})},da=function(a,c,b,d,f,e,g){var n=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);n.execute=function(a){for(var b=0;b<c.length;b++)this.copyStyle(c[b]);g&&g(a)};n.getPosition=b;n.setPosition=d;n.ignoreGrid=null!=f?f:!0;if(e){var k=n.positionChanged;n.positionChanged=function(){k.apply(this,
+arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return n},Na={link:function(a){return[Ya(a,!0,10),Ya(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,
+mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,n,k){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,n.x,n.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=
+a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/
+5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,n,k){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,n.x,n.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=
+a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(La(a,
+["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,n,k){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,n.x,n.y);a.style[mxConstants.STYLE_ENDSIZE]=
+Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
+!1,function(c,b,d,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,n,k){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,n.x,n.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/
+3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-
+parseFloat(a.style.startWidth))<c&&(a.style.endWidth=a.style.startWidth))})));return b},swimlane:function(a){var c=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));c.push(Ca(a,b/2))}c.push(da(a,[mxConstants.STYLE_STARTSIZE],function(c){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,
+1)?new mxPoint(c.getCenterX(),c.y+Math.max(0,Math.min(c.height,b))):new mxPoint(c.x+Math.max(0,Math.min(c.width,b)),c.getCenterY())},function(c,b){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(c.height,b.y-c.y))):Math.round(Math.max(0,Math.min(c.width,b.x-c.x)))},!1,null,function(c){if(mxEvent.isControlDown(c.getEvent())&&(c=a.view.graph,c.isTableRow(a.cell)||c.isTableCell(a.cell))){for(var b=c.getSwimlaneDirection(a.style),
+d=c.model.getParent(a.cell),d=c.model.getChildCells(d,!0),f=[],e=0;e<d.length;e++)d[e]!=a.cell&&c.isSwimlane(d[e])&&c.getSwimlaneDirection(c.getCurrentCellStyle(d[e]))==b&&f.push(d[e]);c.setCellStyles(mxConstants.STYLE_STARTSIZE,a.style[mxConstants.STYLE_STARTSIZE],f)}}));return c},label:Ka(),ext:Ka(),rectangle:Ka(),triangle:Ka(),rhombus:Ka(),umlLifeline:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Y.prototype.size))));
+return new mxPoint(a.getCenterX(),a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},umlFrame:function(a){return[da(a,["width","height"],function(a){var c=Math.max(X.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",X.prototype.width))),b=Math.max(1.5*X.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",X.prototype.height)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.width=
+Math.round(Math.max(X.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*X.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[da(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),b=parseFloat(mxUtils.getValue(this.state.style,"size",J.prototype.size));return c?new mxPoint(a.x+b,a.y+a.height/4):new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,c){var b="0"!=mxUtils.getValue(this.state.style,
+"fixedSize","0")?Math.max(0,Math.min(.5*a.width,c.x-a.x)):Math.max(0,Math.min(.5,(c.x-a.x)/a.width));this.state.style.size=b},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ca(a));return c},cross:function(a){return[da(a,["size"],function(a){var c=Math.min(a.width,a.height),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ua.prototype.size)))*c/2;return new mxPoint(a.getCenterX()-c,a.getCenterY()-c)},function(a,c){var b=Math.min(a.width,a.height);this.state.style.size=
+Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-c.y)/b*2,Math.max(0,a.getCenterX()-c.x)/b*2)))})]},note:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},note2:function(a){return[da(a,["size"],function(a){var c=
+Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",q.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",T.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,
+c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ca(a));return c},dataStorage:function(a){return[da(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),b=parseFloat(mxUtils.getValue(this.state.style,"size",c?S.prototype.fixedSize:S.prototype.size));return new mxPoint(a.x+a.width-b*(c?1:a.width),a.getCenterY())},function(a,c){var b="0"!=mxUtils.getValue(this.state.style,
+"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=b},!1)]},callout:function(a){var c=[da(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));mxUtils.getValue(this.state.style,"base",D.prototype.base);return new mxPoint(a.x+b*a.width,a.y+a.height-
+c)},function(a,c){mxUtils.getValue(this.state.style,"base",D.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),da(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",D.prototype.position2)));return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,
+(c.x-a.x)/a.width)))/100},!1),da(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",D.prototype.base)));return new mxPoint(a.x+Math.min(a.width,b*a.width+d),a.y+a.height-c)},function(a,c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));
+this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-b*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ca(a));return c},internalStorage:function(a){var c=[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ca.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ca.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
+Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ca(a));return c},module:function(a){return[da(a,["jettyWidth","jettyHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ia.prototype.jettyWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"jettyHeight",ia.prototype.jettyHeight)));return new mxPoint(a.x+c/2,a.y+
+2*b)},function(a,c){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y))/2)})]},corner:function(a){return[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ja.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ja.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
+Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},tee:function(a){return[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",O.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",O.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,
+Math.min(a.height,c.y-a.y)))},!1)]},singleArrow:Ea(1),doubleArrow:Ea(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+b)},function(a,
+c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},document:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",F.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-c)*a.height)},function(a,
+c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},tape:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",A.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[da(a,["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,
+"isoAngle",c.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(b),.5*a.height))},function(a,c){this.state.style.isoAngle=Math.max(0,50*(c.y-a.y)/a.height)},!0)]},cylinder2:Va(f.prototype.size),cylinder3:Va(g.prototype.size),offPageConnector:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",qa.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=
+Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},"mxgraph.basic.rect":function(a){var c=[Graph.createHandle(a,["size"],function(a){var c=Math.max(0,Math.min(a.width/2,a.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+c,a.y+c)},function(a,c){this.state.style.size=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,c.x-a.x)))/100})];a=Graph.createHandle(a,["indent"],function(a){var c=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,
+"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+c*a.height/200)},function(a,c){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(c.y-a.y)/a.height)))/100});c.push(a);return c},step:Ma(K.prototype.size,!0,null,!0,K.prototype.fixedSize),hexagon:Ma(I.prototype.size,!0,.5,!0,I.prototype.fixedSize),curlyBracket:Ma(L.prototype.size,!1),display:Ma(va.prototype.size,!1),cube:Sa(1,b.prototype.size,!1),card:Sa(.5,v.prototype.size,!0),loopLimit:Sa(.5,aa.prototype.size,!0),trapezoid:Wa(.5,
+z.prototype.size,z.prototype.fixedSize),parallelogram:Wa(1,y.prototype.size,y.prototype.fixedSize)};Graph.createHandle=da;Graph.handleFactory=Na;var cb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=cb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&null==mxStencilRegistry.getStencil(c)?c=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&
+(c=mxConstants.SHAPE_SWIMLANE);c=Na[c];null==c&&null!=this.state.shape&&this.state.shape.isRoundable()&&(c=Na[mxConstants.SHAPE_RECTANGLE]);null!=c&&(c=c(this.state),null!=c&&(a=null==a?c:a.concat(c)))}return a};mxEdgeHandler.prototype.createCustomHandles=function(){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=Na[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory=
+{};var Oa=new mxPoint(1,0),Pa=new mxPoint(1,0),Ea=mxUtils.toRadians(-30),Oa=mxUtils.getRotatedPoint(Oa,Math.cos(Ea),Math.sin(Ea)),Ea=mxUtils.toRadians(-150),Pa=mxUtils.getRotatedPoint(Pa,Math.cos(Ea),Math.sin(Ea));mxEdgeStyle.IsometricConnector=function(a,c,b,d,f){var e=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,n=g[0],g=g[g.length-1];null!=d&&(d=e.transformControlPoint(a,d));null==n&&null!=c&&(n=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),
+b.getCenterY()));var k=Oa.x,p=Oa.y,t=Pa.x,v=Pa.y,m="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=n){a=function(a,c,b){a-=q.x;var d=c-q.y;c=(v*a-t*d)/(k*v-p*t);a=(p*a-k*d)/(p*t-k*v);m?(b&&(q=new mxPoint(q.x+k*c,q.y+p*c),f.push(q)),q=new mxPoint(q.x+t*a,q.y+v*a)):(b&&(q=new mxPoint(q.x+t*a,q.y+v*a),f.push(q)),q=new mxPoint(q.x+k*c,q.y+p*c));f.push(q)};var q=n;null==d&&(d=new mxPoint(n.x+(g.x-n.x)/2,n.y+(g.y-n.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",
+mxEdgeStyle.IsometricConnector);var db=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return db.apply(this,arguments)};d.prototype.constraints=[];l.prototype.getConstraints=function(a,c,b){a=[];var d=Math.tan(mxUtils.toRadians(30)),f=(.5-d)/2,d=Math.min(c,b/(.5+d));c=(c-d)/2;b=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c+.5*d,b+d*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+d,b+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+d,b+.75*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*d,b+(1-f)*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b+.75*d));return a};c.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,d=Math.min(c*
+Math.tan(d),.5*b);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b-d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+0,d));return a};D.prototype.getConstraints=function(a,c,b){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b-d)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,
+b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
+.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
+0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];xa.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=
+mxRectangleShape.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
+null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,
+0),!1));return a};v.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};b.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),b));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)));return a};g.prototype.getConstraints=function(a,c,b){a=[];c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,
+1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c+.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c+.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(1,
+0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-c));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-c));return a};p.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,
+"tabWidth",this.tabWidth)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+.5*(c+d),f))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.25*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,.5*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.75*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};ca.prototype.constraints=mxRectangleShape.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;sa.prototype.constraints=mxEllipse.prototype.constraints;ta.prototype.constraints=mxEllipse.prototype.constraints;Fa.prototype.constraints=mxEllipse.prototype.constraints;Ia.prototype.constraints=
+mxEllipse.prototype.constraints;T.prototype.constraints=mxRectangleShape.prototype.constraints;Aa.prototype.constraints=mxRectangleShape.prototype.constraints;va.prototype.getConstraints=function(a,c,b){a=[];var d=Math.min(c,b/2),f=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+.5*(f+c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));return a};ia.prototype.getConstraints=function(a,c,b){c=parseFloat(mxUtils.getValue(a,"jettyWidth",ia.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,
+"jettyHeight",ia.prototype.jettyHeight));var d=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,
+c),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(b-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(b-.5*a,3.5*a))];b>5*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,c));b>8*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,c));b>
+15*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,c));return d};aa.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,
+.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];B.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,.1),!1),new mxConnectionConstraint(new mxPoint(0,
+1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];fa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,
+.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.75,
+.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];k.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,
+.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];A.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,.65),!1),new mxConnectionConstraint(new mxPoint(.25,
+1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,
+.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];la.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,
+1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)];mxHexagon.prototype.constraints=
+[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,1),!0),
+new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];y.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
-0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;O.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*c+.25*b,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(c+b),.5*(d+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),.5*(d+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*c-.25*b,f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*f));return a};ja.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(d+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;O.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
+"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*c+.25*d,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(c+d),.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*c-.25*d,f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*f));return a};ja.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
1),!1));return a};ra.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];ga.prototype.getConstraints=
-function(a,c,d){a=[];var b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),b=(d-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-b));return a};ea.prototype.getConstraints=function(a,c,d){a=[];var b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize)))),b=(d-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));return a};ua.prototype.getConstraints=
-function(a,c,d){a=[];var b=Math.min(d,c),f=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),b=(d-f)/2,e=b+f,g=(c-f)/2,f=g+f;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),b));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b));return a};Y.prototype.constraints=null;ya.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
+function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));return a};ea.prototype.getConstraints=function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));return a};ua.prototype.getConstraints=
+function(a,c,b){a=[];var d=Math.min(b,c),f=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),d=(b-f)/2,e=d+f,g=(c-f)/2,f=g+f;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),d));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};Y.prototype.constraints=null;za.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
.9),!1)];P.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];Z.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ha.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){d.escape();a=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),a);null!=a&&d.setSelectionCells(a)}var b=this.editorUi,e=b.editor,d=e.graph,l=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(b.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey=
-"import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){try{var d=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(d.documentElement))}catch(g){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+g.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=l;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+
+"import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){try{var b=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(b.documentElement))}catch(g){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+g.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=l;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+
"+S").isEnabled=l;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=l;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,304,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=l;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,
300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var a=null;try{a=b.copyXml(),null!=a&&d.removeCells(a)}catch(c){}null==a&&mxClipboard.cut(d)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",
function(){try{b.copyXml()}catch(q){}try{mxClipboard.copy(d)}catch(q){b.handleError(q)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{b.pasteXml(a,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),a=!0)}catch(c){}a||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+
@@ -2913,7 +2914,7 @@ function(){try{b.copyXml()}catch(q){}try{mxClipboard.copy(d)}catch(q){b.handleEr
try{c(mxClipboard.paste(d))}finally{d.getModel().endUpdate()}}if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){a=!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{c(b.pasteXml(a,!0))}finally{d.getModel().endUpdate()}}else f()}),a=!0)}catch(g){}a||f()}});this.addAction("copySize",function(){var a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&&(a=d.getCellGeometry(a),null!=a&&(b.copiedSize=new mxRectangle(a.x,
a.y,a.width,a.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedSize){d.getModel().beginUpdate();try{for(var a=d.getSelectionCells(),c=0;c<a.length;c++)if(d.getModel().isVertex(a[c])){var f=d.getCellGeometry(a[c]);null!=f&&(f=f.clone(),f.width=b.copiedSize.width,f.height=b.copiedSize.height,d.getModel().setGeometry(a[c],f))}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+V");this.addAction("copyData",function(){var a=
d.getSelectionCell()||d.getModel().getRoot();d.isEnabled()&&null!=a&&(a=a.cloneValue(),null==a||isNaN(a.nodeType)||(b.copiedValue=a))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(a){function c(c,b){var e=f.getValue(c);b=c.cloneValue(b);b.removeAttribute("placeholders");null==e||isNaN(e.nodeType)||b.setAttribute("placeholders",e.getAttribute("placeholders"));null!=a&&(mxEvent.isMetaDown(a)||mxEvent.isControlDown(a))||b.setAttribute("label",d.convertValueToString(c));f.setValue(c,b)}
-var f=d.getModel();if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedValue){f.beginUpdate();try{var e=d.getSelectionCells();if(0==e.length)c(f.getRoot(),b.copiedValue);else for(var k=0;k<e.length;k++)c(e[k],b.copiedValue)}finally{f.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(d){a(null!=d&&mxEvent.isControlDown(d))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
+var f=d.getModel();if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedValue){f.beginUpdate();try{var e=d.getSelectionCells();if(0==e.length)c(f.getRoot(),b.copiedValue);else for(var k=0;k<e.length;k++)c(e[k],b.copiedValue)}finally{f.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(b){a(null!=b&&mxEvent.isControlDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
try{for(var a=d.getSelectionCells(),c=0;c<a.length;c++)d.cellLabelChanged(a[c],"")}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){try{d.setSelectionCells(d.duplicateCells()),d.scrollCellToVisible(d.getSelectionCell())}catch(q){b.handleError(q)}},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(a){d.turnShapes(d.getSelectionCells(),null!=a?mxEvent.isShiftDown(a):
!1)},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices",function(){d.selectVertices(null,!0)},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
try{var a=d.isCellMovable(d.getSelectionCell())?1:0;d.toggleCellStyles(mxConstants.STYLE_MOVABLE,a);d.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);d.toggleCellStyles(mxConstants.STYLE_ROTATABLE,a);d.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);d.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);d.toggleCellStyles("connectable",a)}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){d.home()},null,null,"Shift+Home");this.addAction("exitGroup",function(){d.exitGroup()},
@@ -3097,118 +3098,118 @@ b,c+d-e),this.quadTo(a+b,c+d,a+b-f,c+d),this.lineTo(a+f,c+d),this.quadTo(a,c+d,a
this.passThrough=!1}};a.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};a.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};a.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!0))};a.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;
this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;this.canvas.rect=this.originalRect;this.canvas.ellipse=this.originalEllipse;
this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(c){return new a(c,Editor.createRoughCanvas(c),this)};var c=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0")?c.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(a):this.createRoughCanvas(a)};var b=mxShape.prototype.paint;
-mxShape.prototype.paint=function(c){var d=c.addTolerance,f=null,e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),f=mxUtils.getValue(this.style,"fillStyle","auto"),null!=this.state&&"auto"==f&&(f=this.state.view.graph.defaultPageBackgroundColor,null!=this.fill&&(null!=this.gradient||null!=f&&this.fill.toLowerCase()==f.toLowerCase())&&(f="solid")));if(e&&null!=c.handJiggle&&c.handJiggle.constructor==a&&!this.outline){c.save();e=this.fill;f=this.stroke;
-this.stroke=this.fill=null;var g=c.setStrokeColor;c.setStrokeColor=function(){};var k=c.setFillColor;c.setFillColor=function(){};c.handJiggle.passThrough=!0;b.apply(this,arguments);c.handJiggle.passThrough=!1;c.setFillColor=k;c.setStrokeColor=g;this.stroke=f;this.fill=e;c.restore();c.addTolerance=function(){}}b.apply(this,arguments);c.addTolerance=d};var d=mxShape.prototype.paintGlassEffect;mxShape.prototype.paintGlassEffect=function(c,b,f,e,g,k){null!=c.handJiggle&&c.handJiggle.constructor==a?(c.handJiggle.passThrough=
-!0,d.apply(this,arguments),c.handJiggle.passThrough=!1):d.apply(this,arguments)}})();Editor.fastCompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:Graph.arrayBufferToString(pako.deflateRaw(a))};Editor.fastDecompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.inflateRaw(Graph.stringToArrayBuffer(atob(a)),{to:"string"})};Editor.extractGraphModel=function(a,c,b){if(null!=a&&"undefined"!==typeof pako){var d=a.ownerDocument.getElementsByTagName("div"),
-f=[];if(null!=d&&0<d.length)for(var e=0;e<d.length;e++)if("mxgraph"==d[e].getAttribute("class")){f.push(d[e]);break}0<f.length&&(d=f[0].getAttribute("data-mxgraph"),null!=d?(f=JSON.parse(d),null!=f&&null!=f.xml&&(a=mxUtils.parseXml(f.xml),a=a.documentElement)):(f=f[0].getElementsByTagName("div"),0<f.length&&(d=mxUtils.getTextContent(f[0]),d=Graph.decompress(d,null,b),0<d.length&&(a=mxUtils.parseXml(d),a=a.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(d=a.getAttribute("content"),null!=d&&"<"!=
-d.charAt(0)&&"%"!=d.charAt(0)&&(d=unescape(window.atob?atob(d):Base64.decode(cont,d))),null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d)),null!=d&&0<d.length)a=mxUtils.parseXml(d).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==a||c||(f=null,"diagram"==a.nodeName?f=a:"mxfile"==a.nodeName&&(d=a.getElementsByTagName("diagram"),0<d.length&&(f=d[Math.max(0,Math.min(d.length-1,urlParams.page||0))])),null!=f&&(a=Editor.parseDiagramNode(f,b)));null==a||"mxGraphModel"==a.nodeName||
-c&&"mxfile"==a.nodeName||(a=null);return a};Editor.parseDiagramNode=function(a,c){var b=mxUtils.trim(mxUtils.getTextContent(a)),d=null;0<b.length?(b=Graph.decompress(b,null,c),null!=b&&0<b.length&&(d=mxUtils.parseXml(b).documentElement)):(b=mxUtils.getChildNodes(a),0<b.length&&(d=mxUtils.createXmlDocument(),d.appendChild(d.importNode(b[0],!0)),d=d.documentElement));return d};Editor.getDiagramNodeXml=function(a){var c=mxUtils.getTextContent(a),b=null;0<c.length?b=Graph.decompress(c):null!=a.firstChild&&
-(b=mxUtils.getXml(a.firstChild));return b};Editor.extractGraphModelFromPdf=function(a){a=a.substring(a.indexOf(",")+1);a=window.atob&&!mxClient.IS_SF?atob(a):Base64.decode(a,!0);if("%PDF-1.7"==a.substring(0,8)){var c=a.indexOf("EmbeddedFile");if(-1<c){var b=a.indexOf("stream",c)+9;if(0<a.substring(c,b).indexOf("application#2Fvnd.jgraph.mxfile"))return c=a.indexOf("endstream",b-1),pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(b,c)),{to:"string"})}return null}for(var b=null,c="",d=0,f=0,e=[],
-g=null;f<a.length;){var k=a.charCodeAt(f),f=f+1;10!=k&&(c+=String.fromCharCode(k));k=="/Subject (%3Cmxfile".charCodeAt(d)?d++:d=0;if(19==d){var n=a.indexOf("%3C%2Fmxfile%3E)",f)+15,f=f-9;if(n>f){b=a.substring(f,n);break}}10==k&&("endobj"==c?g=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(g=[],e[c.split(" ")[0]]=g):null!=g&&g.push(c),c="")}null==b&&(b=Editor.extractGraphModelFromXref(e));null!=b&&(b=decodeURIComponent(b.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return b};
-Editor.extractGraphModelFromXref=function(a){var c=a.trailer,b=null;null!=c&&(c=/.* \/Info (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<c.length&&(c=a[c[1]],null!=c&&(c=/.* \/Subject (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<c.length&&(a=a[c[1]],null!=a&&(a=a.join("\n"),b=a.substring(1,a.length-1))))));return b};Editor.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,
-function(a,b,f){a=d.substring(a+8,a+8+f);"zTXt"==b?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(f+2)),{to:"string"}).replace(/\+/g," "),null!=a&&0<a.length&&(c=a))):"tEXt"==b&&(a=a.split(String.fromCharCode(0)),1<a.length&&("mxGraphModel"==a[0]||"mxfile"==a[0])&&(c=a[1]));if(null!=c||"IDAT"==b)return!0}))}catch(E){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));
-return c};Editor.extractParserError=function(a,c){var b=null,d=null!=a?a.getElementsByTagName("parsererror"):null;null!=d&&0<d.length&&(b=c||mxResources.get("invalidChars"),d=d[0].getElementsByTagName("div"),0<d.length&&(b=mxUtils.getTextContent(d[0])));return null!=b?mxUtils.trim(b):b};Editor.addRetryToError=function(a,c){if(null!=a){var b=null!=a.error?a.error:a;null==b.retry&&(b.retry=c)}};Editor.configure=function(a,c){if(null!=a){Editor.config=a;Editor.configVersion=a.version;Menus.prototype.defaultFonts=
-a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=a.autosaveDelay||DrawioFile.prototype.autosaveDelay;
-null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);null!=a.styles&&(Editor.styles=a.styles);null!=a.globalVars&&(Editor.globalVars=a.globalVars);null!=a.compressXml&&(Editor.compressXml=a.compressXml);null!=a.simpleLabels&&(Editor.simpleLabels=a.simpleLabels);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&
-(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));if(null!=a.css){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&
-(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);null!=a.zoomFactor&&(b=parseFloat(a.zoomFactor),!isNaN(b)&&1<b&&(Graph.prototype.zoomFactor=b));null!=a.gridSteps&&
-(b=parseInt(a.gridSteps),!isNaN(b)&&0<b&&(mxGraphView.prototype.gridSteps=b));a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(b=parseInt(a.autosaveDelay),
-!isNaN(b)&&0<b?DrawioFile.prototype.autosaveDelay=b:EditorUi.debug("Invalid autosaveDelay: "+a.autosaveDelay));if(null!=a.plugins&&!c)for(App.initPluginCallback(),b=0;b<a.plugins.length;b++)mxscript(a.plugins[b]);null!=a.maxImageBytes&&(EditorUi.prototype.maxImageBytes=a.maxImageBytes);null!=a.maxImageSize&&(EditorUi.prototype.maxImageSize=a.maxImageSize)}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var c=document.getElementsByTagName("script")[0];if(null!=c&&null!=
-c.parentNode){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a));c.parentNode.insertBefore(b,c);a=a.split("url(");for(b=1;b<a.length;b++){var d=a[b].indexOf(")"),d=Editor.trimCssUrl(a[b].substring(0,d)),f=document.createElement("link");f.setAttribute("rel","preload");f.setAttribute("href",d);f.setAttribute("as","font");f.setAttribute("crossorigin","");c.parentNode.insertBefore(f,c)}}}};Editor.trimCssUrl=function(a){return a.replace(RegExp("^[\\s\"']+",
-"g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var c=[],b=0;b<a;b++)c.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return c.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=
-null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=c.nodeName?this.extractGraphModel(c):null;if(null!=c){var b=c.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==c.nodeName){b=c.getAttribute("style")||
-"default-style2";if("1"==urlParams.embed||null!=b&&""!=b)b!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=
-b;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");b=c.getAttribute("backgroundImage");null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==
-c.getAttribute("shadow"),!1);if(b=c.getAttribute("extFonts"))try{for(b=b.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}}),d=0;d<b.length;d++)this.graph.addExtFont(b[d].name,b[d].url)}catch(E){console.log("ExtFonts format error: "+E.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;
-Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var d=this.graph.extFonts.map(function(a){return a.name+
-"^"+a.url});c.setAttribute("extFonts",d.join("|"))}return c};Editor.prototype.isDataSvg=function(a){try{var c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(ka){}return!1};Editor.prototype.extractGraphModel=
-function(a,c,b){return Editor.extractGraphModel.apply(this,arguments)};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};
-var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";
-Editor.initMath=function(a,c){if("undefined"===typeof window.MathJax){a=(null!=a?a:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":"SVG")+"-full";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};var b=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";c=null!=c?c:{"HTML-CSS":{availableFonts:[b],imageFont:null},
-SVG:{font:b,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(c);MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};
-Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var d=Editor.prototype.init;Editor.prototype.init=function(){d.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,c){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};b=document.getElementsByTagName("script");if(null!=b&&0<b.length){var f=document.createElement("script");f.setAttribute("type","text/javascript");f.setAttribute("src",
-a);b[0].parentNode.appendChild(f)}try{if(mxClient.IS_GC||mxClient.IS_SF){var e=document.createElement("style");e.type="text/css";e.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(e)}}catch(Y){}}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
-var c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));
-return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)};Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var c=a.convert,b=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&!navigator.onLine?d=Editor.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||b.crossOriginImages&&b.isCorsEnabledForUrl(d)?"chrome-extension://"==d.substring(0,
-19)||mxClient.IS_CHROMEAPP||(d=c.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return a};Editor.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};Editor.prototype.convertImageToDataUri=function(a,c){try{var b=!0,d=window.setTimeout(mxUtils.bind(this,function(){b=!1;c(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(d);b&&c(Editor.createSvgDataUri(a.getText()))}),
-function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)});else{var f=new Image;this.crossOriginImages&&(f.crossOrigin="anonymous");f.onload=function(){window.clearTimeout(d);if(b)try{var a=document.createElement("canvas"),e=a.getContext("2d");a.height=f.height;a.width=f.width;e.drawImage(f,0,0);c(a.toDataURL())}catch(X){c(Editor.svgBrokenImage.src)}};f.onerror=function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)};f.src=a}}catch(U){c(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=
-function(a,c,b,d){null==d&&(d=this.createImageUrlConverter());var f=0,e=b||{};b=mxUtils.bind(this,function(b,g){for(var k=a.getElementsByTagName(b),n=0;n<k.length;n++)mxUtils.bind(this,function(b){try{if(null!=b){var k=d.convert(b.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var n=e[k];null==n?(f++,this.convertImageToDataUri(k,function(d){null!=d&&(e[k]=d,b.setAttribute(g,d));f--;0==f&&c(a)})):b.setAttribute(g,n)}else null!=k&&b.setAttribute(g,k)}}catch(fa){}})(k[n])});b("image","xlink:href");
-b("img","src");0==f&&c(a)};Editor.base64Encode=function(a){for(var c="",b=0,d=a.length,f,e,g;b<d;){f=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);c+="==";break}e=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&
-3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2);c+="=";break}g=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2|(g&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return c};
-Editor.prototype.loadUrl=function(a,c,b,d,f,e,g,k){try{var n=!g&&(d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));f=null!=f?f:!0;var p=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=c){var d=a.getText();if(n){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();
-for(var d=Array(a.length),f=0;f<a.length;f++)d[f]=String.fromCharCode(a[f]);d=d.join("")}e=null!=e?e:"data:image/png;base64,";d=e+Editor.base64Encode(d)}c(d)}}else null!=b&&(0==a.getStatus()?b({message:mxResources.get("accessDenied")},a):b({message:mxResources.get("error")+" "+a.getStatus()},a))}),function(a){null!=b&&b({message:mxResources.get("error")+" "+a.getStatus()})},n,this.timeout,function(){f&&null!=b&&b({code:App.ERROR_TIMEOUT,retry:p})},k)});p()}catch(Z){null!=b&&b(Z)}};Editor.prototype.absoluteCssFonts=
-function(a){var c=null;if(null!=a){var b=a.split("url(");if(0<b.length){c=[b[0]];a=window.location.pathname;var d=null!=a?a.lastIndexOf("/"):-1;0<=d&&(a=a.substring(0,d+1));var d=document.getElementsByTagName("base"),f=null;null!=d&&0<d.length&&(f=d[0].getAttribute("href"));for(var e=1;e<b.length;e++)if(d=b[e].indexOf(")"),0<d){var g=Editor.trimCssUrl(b[e].substring(0,d));this.graph.isRelativeUrl(g)&&(g=null!=f?f+g:window.location.protocol+"//"+window.location.hostname+("/"==g.charAt(0)?"":a)+g);
-c.push('url("'+g+'"'+b[e].substring(d))}else c.push(b[e])}else c=[a]}return null!=c?c.join(""):null};Editor.prototype.embedCssFonts=function(a,c){var b=a.split("url("),d=0;null==this.cachedFonts&&(this.cachedFonts={});var f=mxUtils.bind(this,function(){if(0==d){for(var a=[b[0]],f=1;f<b.length;f++){var e=b[f].indexOf(")");a.push('url("');a.push(this.cachedFonts[Editor.trimCssUrl(b[f].substring(0,e))]);a.push('"'+b[f].substring(e))}c(a.join(""))}});if(0<b.length){for(var e=1;e<b.length;e++){var g=b[e].indexOf(")"),
-k=null,n=b[e].indexOf("format(",g);0<n&&(k=Editor.trimCssUrl(b[e].substring(n+7,b[e].indexOf(")",n))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=a;d++;var c="application/x-font-ttf";if("svg"==k||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";
-else if("eot"==k||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){this.cachedFonts[a]=c;d--;f()}),mxUtils.bind(this,function(a){d--;f()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(Editor.trimCssUrl(b[e].substring(0,g)),k)}f()}else c(a)};Editor.prototype.loadFonts=
-function(a){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(c){this.resolvedFontCss=c;a()})):a()};Editor.prototype.embedExtFonts=function(a){var c=this.graph.getCustomFonts();if(0<c.length){var b="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var f=mxUtils.bind(this,function(){0==d&&this.embedCssFonts(b,a)}),e=0;e<c.length;e++)mxUtils.bind(this,function(a,c){Graph.isCssFontUrl(c)?null==this.cachedGoogleFonts[c]?(d++,this.loadUrl(c,
-mxUtils.bind(this,function(a){this.cachedGoogleFonts[c]=a;b+=a;d--;f()}),mxUtils.bind(this,function(a){d--;b+="@import url("+c+");";f()}))):b+=this.cachedGoogleFonts[c]:b+='@font-face {font-family: "'+a+'";src: url("'+c+'")}'})(c[e].name,c[e].url);f()}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var c=document.getElementsByTagName("style"),b=0;b<c.length;b++)0<mxUtils.getTextContent(c[b]).indexOf("MathJax")&&a[0].appendChild(c[b].cloneNode(!0))};
-Editor.prototype.addFontCss=function(a,c){c=null!=c?c:this.absoluteCssFonts(this.fontCss);if(null!=c){var b=a.getElementsByTagName("defs"),d=a.ownerDocument;0==b.length?(b=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)):b=b[0];d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,c);b.appendChild(d)}};
-Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,c,b){var d=mxClient.IS_FF?8192:16384;return Math.min(b,Math.min(d/a,d/c))};Editor.prototype.exportToCanvas=function(a,c,b,d,f,e,g,k,p,t,v,m,l,y,z,A,q,u){try{e=null!=e?e:!0;g=null!=g?g:!0;m=null!=m?m:this.graph;l=null!=l?l:0;var n=p?null:m.background;n==mxConstants.NONE&&(n=null);null==n&&(n=d);null==n&&0==p&&(n=A?this.graph.defaultPageBackgroundColor:"#ffffff");
-this.convertImages(m.getSvg(null,null,l,y,null,g,null,null,null,t,null,A,q,u),mxUtils.bind(this,function(b){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var g=function(){mxClient.IS_SF?window.setTimeout(function(){y.drawImage(d,0,0);a(p,b)},0):(y.drawImage(d,0,0),a(p,b))},p=document.createElement("canvas"),t=parseInt(b.getAttribute("width")),v=parseInt(b.getAttribute("height"));k=null!=k?k:1;null!=c&&(k=e?Math.min(1,Math.min(3*c/(4*v),c/t)):c/t);k=this.getMaxCanvasScale(t,v,k);t=
-Math.ceil(k*t);v=Math.ceil(k*v);p.setAttribute("width",t);p.setAttribute("height",v);var y=p.getContext("2d");null!=n&&(y.beginPath(),y.rect(0,0,t,v),y.fillStyle=n,y.fill());1!=k&&y.scale(k,k);if(z){var A=m.view,q=A.scale;A.scale=1;var B=btoa(unescape(encodeURIComponent(A.createSvgGrid(A.gridColor))));A.scale=q;var B="data:image/svg+xml;base64,"+B,C=m.gridSize*A.gridSteps*k,u=m.getGraphBounds(),I=A.translate.x*q,E=A.translate.y*q,F=I+(u.x-I)/q-l,D=E+(u.y-E)/q-l,G=new Image;G.onload=function(){try{for(var a=
--Math.round(C-mxUtils.mod((I-F)*k,C)),c=-Math.round(C-mxUtils.mod((E-D)*k,C));a<t;a+=C)for(var b=c;b<v;b+=C)y.drawImage(G,a/k,b/k);g()}catch(ua){null!=f&&f(ua)}};G.onerror=function(a){null!=f&&f(a)};G.src=B}else g()}catch(xa){null!=f&&f(xa)}});d.onerror=function(a){null!=f&&f(a)};t&&this.graph.addSvgShadow(b);this.graph.mathEnabled&&this.addMathCss(b);var g=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(ra){null!=
-f&&f(ra)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(g)}catch(O){null!=f&&f(O)}}))}catch(ra){null!=f&&f(ra)}}),b,v)}catch(T){null!=f&&f(T)}};Editor.crcTable=[];for(var l=0;256>l;l++)for(var m=l,u=0;8>u;u++)m=1==(m&1)?3988292384^m>>>1:m>>>1,Editor.crcTable[l]=m;Editor.updateCRC=function(a,c,b,d){for(var f=0;f<d;f++)a=Editor.crcTable[(a^c.charCodeAt(b+f))&255]^a>>>8;return a};Editor.crc32=function(a){for(var c=-1,b=0;b<a.length;b++)c=c>>>8^Editor.crcTable[(c^
-a.charCodeAt(b))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(a,c,b,d,f){function e(a,c){var b=n;n+=c;return a.substring(b,n)}function g(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var n=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(e(a,
-4),"IHDR"!=e(a,4))null!=f&&f();else{e(a,17);f=a.substring(0,n);do{var p=g(a);if("IDAT"==e(a,4)){f=a.substring(0,n-8);"pHYs"==c&&"dpi"==b?(b=Math.round(d/.0254),b=k(b)+k(b)+String.fromCharCode(1)):b=b+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,c,0,4);d=Editor.updateCRC(d,b,0,b.length);f+=k(b.length)+c+b+k(d^4294967295);f+=a.substring(n-8,a.length);break}f+=a.substring(n-8,n-4+p);e(a,p);e(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?
-btoa(f):Base64.encode(f,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var q=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){q.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var c=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&
-(EditDataDialog.getDisplayIdForCell=function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var f=Format.prototype.init;Format.prototype.init=function(){f.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var g=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?
-g.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var k=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=k.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),
-function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var p=DiagramFormatPanel.prototype.addOptions;
-DiagramFormatPanel.prototype.addOptions=function(a){a=p.apply(this,arguments);var c=this.editorUi,b=c.editor.graph;if(b.isEnabled()){var d=c.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return c.editor.autosave},function(a){c.editor.setAutosave(a);c.editor.autosave&&d.isModified()&&d.fileChanged()},{install:function(a){this.listener=function(){a(c.editor.autosave)};c.editor.addListener("autosaveChanged",this.listener)},destroy:function(){c.editor.removeListener(this.listener)}});
-a.appendChild(f)}}if(this.isMathOptionVisible()&&b.isEnabled()&&"undefined"!==typeof MathJax){f=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return b.mathEnabled},function(a){c.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=function(){a(b.mathEnabled)};c.addListener("mathEnabledChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});f.style.paddingTop="5px";a.appendChild(f);var e=c.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");
-e.style.position="relative";e.style.marginLeft="6px";e.style.top="2px";f.appendChild(e)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=
-[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",
-dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
-{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=
-[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line",type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity",
-type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties=[{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20},{name:"fixedSize",dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",
-type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
-{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width",type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",
-min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"startSize",dispName:"Header Size",type:"float"},
-{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",
-type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=
-[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",
-dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",
-type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",
-type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},
-{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=
-[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},
-{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=[{name:"width",dispName:"Title Width",type:"float",defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",
-stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",font:"#ffffff"},{fill:"#008a00",stroke:"#005700",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},
-{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",
-stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",
-gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,c,b){if(null!=c){var d=function(a){if(null!=a)if(b)for(var d=
-0;d<a.length;d++)c[a[d].name]=a[d];else for(var f in c){for(var e=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==c[f].type){e=!0;break}e||delete c[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&null!=f.shape&&(f.shape.commonCustomPropAdded||(f.shape.commonCustomPropAdded=!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),
-d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(U){}}};var t=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"==a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));t.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},b=a.vertices,d=a.edges,f=0;f<b.length;f++)this.findCommonProperties(b[f],c,0==f);for(f=0;f<d.length;f++)this.findCommonProperties(d[f],
-c,0==b.length&&0==f);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,a))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");
-c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=
-function(a,c,b){function d(a,c,b,d){v.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],k=b.parentRow.nextSibling;k&&k.getAttribute("data-pName")==a;)g.push(k.getAttribute("data-pValue")),k=k.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(v.setCellStyles(b.countProperty,g.length,v.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}v.setCellStyles(a,
-c,v.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var p=b.dependentPropsDefVal[a],n=b.dependentPropsVals[a];if(n.length>c)n=n.slice(0,c);else for(var m=n.length;m<c;m++)n.push(p);n=n.join(",");v.setCellStyles(b.dependentProps[a],n,v.getSelectionCells());f.push(b.dependentProps[a]);e.push(n)}if("function"==typeof b.onChange)b.onChange(v,c);t.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",v.getSelectionCells()))}finally{v.getModel().endUpdate()}}
-function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height="4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(t,
-function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,k){null!=c&&(c=c.split(","),m.push({name:a,values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(t,function(c){for(var p=g,t=0;null!=p.nextSibling;)if(p.nextSibling.getAttribute("data-pName")==
-a)p=p.nextSibling,t++;else break;var v={type:b,parentRow:g,index:t,isDeletable:!0,defVal:f,countProperty:e},t=n(a,"",v,0==t%2,k);d(a,f,v);p.parentNode.insertBefore(t,p.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function k(a,c,b,d,f,e,g){if(0<f){var k=Array(f);c=null!=c?c.split(","):[];for(var p=0;p<f;p++)k[p]=null!=c[p]?c[p]:null!=d?d:"";m.push({name:a,values:k,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}
-function p(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function n(c,b,n,v,m){var l=n.dispName,y=n.type,z=document.createElement("tr");z.className="gePropRow"+(m?"Dark":"")+(v?"Alt":"")+" gePropNonHeaderRow";z.setAttribute("data-pName",c);z.setAttribute("data-pValue",b);v=!1;null!=n.index&&(z.setAttribute("data-index",n.index),l=(null!=l?l:"")+"["+n.index+"]",v=!0);var A=document.createElement("td");
-A.className="gePropRowCell";A.innerHTML=mxUtils.htmlEntities(mxResources.get(l,null,l));v&&(A.style.textAlign="right");z.appendChild(A);A=document.createElement("td");A.className="gePropRowCell";if("color"==y)A.appendChild(e(c,b,n));else if("bool"==y||"boolean"==y)A.appendChild(p(c,b,n));else if("enum"==y){var q=n.enumList;for(m=0;m<q.length;m++)if(l=q[m],l.val==b){A.innerHTML=mxUtils.htmlEntities(mxResources.get(l.dispName,null,l.dispName));break}mxEvent.addListener(A,"click",mxUtils.bind(t,function(){var e=
-document.createElement("select");f(A,e);for(var g=0;g<q.length;g++){var k=q[g],p=document.createElement("option");p.value=mxUtils.htmlEntities(k.val);p.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));e.appendChild(p)}e.value=b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,n)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==y?A.appendChild(g(c,b,n.subType,n.subDefVal,n.countProperty,
-z,m)):"staticArr"==y?A.appendChild(k(c,b,n.subType,n.subDefVal,n.size,z,m)):"readOnly"==y?(m=document.createElement("input"),m.setAttribute("readonly",""),m.value=b,m.style.width="96px",m.style.borderWidth="0px",A.appendChild(m)):(A.innerHTML=b,mxEvent.addListener(A,"click",mxUtils.bind(t,function(){function e(){var a=g.value,a=0==a.length&&"string"!=y?0:a;n.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",y="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=n.min&&a<n.min?a=n.min:
-null!=n.max&&a>n.max&&(a=n.max);a=mxUtils.htmlEntities(("int"==y?parseInt(a):a)+"");d(c,a,n)}var g=document.createElement("input");f(A,g,!0);g.value=b;g.className="gePropEditor";"int"!=y&&"float"!=y||n.allowAuto||(g.type="number",g.step="int"==y?"1":"any",null!=n.min&&(g.min=parseFloat(n.min)),null!=n.max&&(g.max=parseFloat(n.max)));a.appendChild(g);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){e()})})));n.isDeletable&&(m=mxUtils.button("-",
-mxUtils.bind(t,function(a){d(c,"",n,n.index);mxEvent.consume(a)})),m.style.height="16px",m.style.width="25px",m.style["float"]="right",m.className="geColorBtn",A.appendChild(m));z.appendChild(A);return z}var t=this,v=this.editorUi.editor.graph,m=[];a.style.position="relative";a.style.padding="0";var l=document.createElement("table");l.className="geProperties";l.style.whiteSpace="nowrap";l.style.width="100%";var y=document.createElement("tr");y.className="gePropHeader";var z=document.createElement("th");
-z.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;z.appendChild(A);mxUtils.write(z,mxResources.get("property"));y.style.cursor="pointer";var q=function(){var c=l.querySelectorAll(".gePropNonHeaderRow"),b;if(t.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(sa){}}else A.src=
-Sidebar.prototype.expandedImage,b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(y,"click",function(){t.editorUi.propertiesCollapsed=!t.editorUi.propertiesCollapsed;q()});y.appendChild(z);z=document.createElement("th");z.className="gePropHeaderCell";z.innerHTML=mxResources.get("value");y.appendChild(z);l.appendChild(y);var u=!1,B=!1,y=null;1==b.vertices.length&&0==b.edges.length?y=b.vertices[0].id:0==b.vertices.length&&1==b.edges.length&&(y=b.edges[0].id);null!=y&&l.appendChild(n("id",
-mxUtils.htmlEntities(y),{dispName:"ID",type:"readOnly"},!0,!1));for(var C in c)if(y=c[C],"function"!=typeof y.isVisible||y.isVisible(b,this)){var I=null!=b.style[C]?mxUtils.htmlEntities(b.style[C]+""):null!=y.getDefaultValue?y.getDefaultValue(b,this):y.defVal;if("separator"==y.type)B=!B;else{if("staticArr"==y.type)y.size=parseInt(b.style[y.sizeProperty]||c[y.sizeProperty].defVal)||0;else if(null!=y.dependentProps){for(var F=y.dependentProps,D=[],G=[],z=0;z<F.length;z++){var N=b.style[F[z]];G.push(c[F[z]].subDefVal);
-D.push(null!=N?N.split(","):[])}y.dependentPropsDefVal=G;y.dependentPropsVals=D}l.appendChild(n(C,I,y,u,B));u=!u}}for(z=0;z<m.length;z++)for(y=m[z],c=y.parentRow,b=0;b<y.values.length;b++)C=n(y.name,y.values[b],{type:y.type,parentRow:y.parentRow,isDeletable:y.isDeletable,index:b,defVal:y.defVal,countProperty:y.countProperty,size:y.size},0==b%2,y.flipBkg),c.parentNode.insertBefore(C,c.nextSibling),c=C;a.appendChild(l);q();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){mxEvent.addListener(a,
-"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var b=this.editorUi,d=b.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),
-g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.position="relative";g.style.textAlign="center";for(var k=[],n=0;n<this.defaultColorSchemes.length;n++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(p,
-"click",mxUtils.bind(this,function(){t(a)}))})(n);k.push(p);g.appendChild(p)}var t=mxUtils.bind(this,function(a){null!=this.format.currentScheme&&(k[this.format.currentScheme].style.background="transparent");this.format.currentScheme=a;v(this.defaultColorSchemes[this.format.currentScheme]);k[this.format.currentScheme].style.background="#84d7ff"}),v=mxUtils.bind(this,function(a){var c=mxUtils.bind(this,function(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),
-g=0;g<f.length;g++){for(var k=d.getModel().getStyle(f[g]),n=0;n<e.length;n++)k=mxUtils.removeStylename(k,e[n]);var p=d.getModel().isVertex(f[g])?b.initialDefaultVertexStyle:b.initialdefaultEdgeStyle;null!=a?(k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isAltDown(c)||(k=""==a.fill?mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,
-null))),mxEvent.isShiftDown(c)||(k=""==a.stroke?mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null))),mxEvent.isControlDown(c)||mxClient.IS_MAC&&mxEvent.isMetaDown(c)||!d.getModel().isVertex(f[g])||(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))):(k=mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,
-"#ffffff")),k=mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,"#000000")),k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(f[g])&&(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(f[g],k)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width="36px";c.style.height=
-10>=this.defaultColorSchemes.length?"24px":"30px";c.style.margin="0px 6px 6px 0px";if(null!=a){var g="1"==urlParams.sketch?"2px solid":"1px solid";null!=a.gradient?mxClient.IS_IE&&10>document.documentMode?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":
-c.style.backgroundColor=""==a.fill?mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff"):a.fill||mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff");c.style.border=a.stroke==mxConstants.NONE?g+" transparent":""==a.stroke?g+" "+mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"):g+" "+(a.stroke||mxUtils.getValue(b.initialDefaultVertexStyle,
-mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"))}else{var g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),k=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=g;c.style.border="1px solid "+k}c.style.borderRadius="0";f.appendChild(c)});f.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(f),c(a[g])});null==this.format.currentScheme?t(Editor.isDarkMode()?1:"1"==urlParams.sketch?
-5:0):t(this.format.currentScheme);var n=10>=this.defaultColorSchemes.length?28:8,m=document.createElement("div");m.style.cssText="position:absolute;left:10px;top:8px;bottom:"+n+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
-mxEvent.addListener(m,"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:"+n+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
+mxShape.prototype.paint=function(c){var d=c.addTolerance,f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(null!=c.handJiggle&&c.handJiggle.constructor==a&&!this.outline){c.save();var e=this.fill,g=this.stroke;this.stroke=this.fill=null;var k=this.configurePointerEvents,n=c.setStrokeColor;c.setStrokeColor=function(){};var p=c.setFillColor;c.setFillColor=function(){};f||null==e||(this.configurePointerEvents=function(){});c.handJiggle.passThrough=!0;
+b.apply(this,arguments);c.handJiggle.passThrough=!1;c.setFillColor=p;c.setStrokeColor=n;this.configurePointerEvents=k;this.stroke=g;this.fill=e;c.restore();f&&null!=e&&(c.addTolerance=function(){})}b.apply(this,arguments);c.addTolerance=d};var d=mxShape.prototype.paintGlassEffect;mxShape.prototype.paintGlassEffect=function(c,b,f,e,g,k){null!=c.handJiggle&&c.handJiggle.constructor==a?(c.handJiggle.passThrough=!0,d.apply(this,arguments),c.handJiggle.passThrough=!1):d.apply(this,arguments)}})();Editor.fastCompress=
+function(a){return null==a||0==a.length||"undefined"===typeof pako?a:Graph.arrayBufferToString(pako.deflateRaw(a))};Editor.fastDecompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.inflateRaw(Graph.stringToArrayBuffer(atob(a)),{to:"string"})};Editor.extractGraphModel=function(a,c,b){if(null!=a&&"undefined"!==typeof pako){var d=a.ownerDocument.getElementsByTagName("div"),f=[];if(null!=d&&0<d.length)for(var e=0;e<d.length;e++)if("mxgraph"==d[e].getAttribute("class")){f.push(d[e]);
+break}0<f.length&&(d=f[0].getAttribute("data-mxgraph"),null!=d?(f=JSON.parse(d),null!=f&&null!=f.xml&&(a=mxUtils.parseXml(f.xml),a=a.documentElement)):(f=f[0].getElementsByTagName("div"),0<f.length&&(d=mxUtils.getTextContent(f[0]),d=Graph.decompress(d,null,b),0<d.length&&(a=mxUtils.parseXml(d),a=a.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(d=a.getAttribute("content"),null!=d&&"<"!=d.charAt(0)&&"%"!=d.charAt(0)&&(d=unescape(window.atob?atob(d):Base64.decode(cont,d))),null!=d&&"%"==d.charAt(0)&&
+(d=decodeURIComponent(d)),null!=d&&0<d.length)a=mxUtils.parseXml(d).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==a||c||(f=null,"diagram"==a.nodeName?f=a:"mxfile"==a.nodeName&&(d=a.getElementsByTagName("diagram"),0<d.length&&(f=d[Math.max(0,Math.min(d.length-1,urlParams.page||0))])),null!=f&&(a=Editor.parseDiagramNode(f,b)));null==a||"mxGraphModel"==a.nodeName||c&&"mxfile"==a.nodeName||(a=null);return a};Editor.parseDiagramNode=function(a,c){var b=mxUtils.trim(mxUtils.getTextContent(a)),
+d=null;0<b.length?(b=Graph.decompress(b,null,c),null!=b&&0<b.length&&(d=mxUtils.parseXml(b).documentElement)):(b=mxUtils.getChildNodes(a),0<b.length&&(d=mxUtils.createXmlDocument(),d.appendChild(d.importNode(b[0],!0)),d=d.documentElement));return d};Editor.getDiagramNodeXml=function(a){var c=mxUtils.getTextContent(a),b=null;0<c.length?b=Graph.decompress(c):null!=a.firstChild&&(b=mxUtils.getXml(a.firstChild));return b};Editor.extractGraphModelFromPdf=function(a){a=a.substring(a.indexOf(",")+1);a=window.atob&&
+!mxClient.IS_SF?atob(a):Base64.decode(a,!0);if("%PDF-1.7"==a.substring(0,8)){var c=a.indexOf("EmbeddedFile");if(-1<c){var b=a.indexOf("stream",c)+9;if(0<a.substring(c,b).indexOf("application#2Fvnd.jgraph.mxfile"))return c=a.indexOf("endstream",b-1),pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(b,c)),{to:"string"})}return null}for(var b=null,c="",d=0,f=0,e=[],g=null;f<a.length;){var k=a.charCodeAt(f),f=f+1;10!=k&&(c+=String.fromCharCode(k));k=="/Subject (%3Cmxfile".charCodeAt(d)?d++:d=0;if(19==
+d){var n=a.indexOf("%3C%2Fmxfile%3E)",f)+15,f=f-9;if(n>f){b=a.substring(f,n);break}}10==k&&("endobj"==c?g=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(g=[],e[c.split(" ")[0]]=g):null!=g&&g.push(c),c="")}null==b&&(b=Editor.extractGraphModelFromXref(e));null!=b&&(b=decodeURIComponent(b.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return b};Editor.extractGraphModelFromXref=function(a){var c=a.trailer,b=null;null!=c&&(c=/.* \/Info (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<
+c.length&&(c=a[c[1]],null!=c&&(c=/.* \/Subject (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<c.length&&(a=a[c[1]],null!=a&&(a=a.join("\n"),b=a.substring(1,a.length-1))))));return b};Editor.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,b,f){a=d.substring(a+8,a+8+f);"zTXt"==b?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(f+
+2)),{to:"string"}).replace(/\+/g," "),null!=a&&0<a.length&&(c=a))):"tEXt"==b&&(a=a.split(String.fromCharCode(0)),1<a.length&&("mxGraphModel"==a[0]||"mxfile"==a[0])&&(c=a[1]));if(null!=c||"IDAT"==b)return!0}))}catch(E){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));return c};Editor.extractParserError=function(a,c){var b=null,d=null!=a?a.getElementsByTagName("parsererror"):null;null!=d&&0<d.length&&(b=c||mxResources.get("invalidChars"),d=d[0].getElementsByTagName("div"),
+0<d.length&&(b=mxUtils.getTextContent(d[0])));return null!=b?mxUtils.trim(b):b};Editor.addRetryToError=function(a,c){if(null!=a){var b=null!=a.error?a.error:a;null==b.retry&&(b.retry=c)}};Editor.configure=function(a,c){if(null!=a){Editor.config=a;Editor.configVersion=a.version;Menus.prototype.defaultFonts=a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;
+StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=a.autosaveDelay||DrawioFile.prototype.autosaveDelay;null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);null!=a.styles&&(Editor.styles=a.styles);null!=a.globalVars&&(Editor.globalVars=a.globalVars);null!=a.compressXml&&(Editor.compressXml=a.compressXml);
+null!=a.simpleLabels&&(Editor.simpleLabels=a.simpleLabels);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));if(null!=a.css){var b=document.createElement("style");b.setAttribute("type",
+"text/css");b.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=
+a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);null!=a.zoomFactor&&(b=parseFloat(a.zoomFactor),!isNaN(b)&&1<b&&(Graph.prototype.zoomFactor=b));null!=a.gridSteps&&(b=parseInt(a.gridSteps),!isNaN(b)&&0<b&&(mxGraphView.prototype.gridSteps=b));a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=
+a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(b=parseInt(a.autosaveDelay),!isNaN(b)&&0<b?DrawioFile.prototype.autosaveDelay=b:EditorUi.debug("Invalid autosaveDelay: "+a.autosaveDelay));if(null!=a.plugins&&!c)for(App.initPluginCallback(),b=0;b<a.plugins.length;b++)mxscript(a.plugins[b]);
+null!=a.maxImageBytes&&(EditorUi.prototype.maxImageBytes=a.maxImageBytes);null!=a.maxImageSize&&(EditorUi.prototype.maxImageSize=a.maxImageSize)}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var c=document.getElementsByTagName("script")[0];if(null!=c&&null!=c.parentNode){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a));c.parentNode.insertBefore(b,c);a=a.split("url(");for(b=1;b<a.length;b++){var d=a[b].indexOf(")"),
+d=Editor.trimCssUrl(a[b].substring(0,d)),f=document.createElement("link");f.setAttribute("rel","preload");f.setAttribute("href",d);f.setAttribute("as","font");f.setAttribute("crossorigin","");c.parentNode.insertBefore(f,c)}}}};Editor.trimCssUrl=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=
+20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var c=[],b=0;b<a;b++)c.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return c.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=
+c.nodeName?this.extractGraphModel(c):null;if(null!=c){var b=c.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==c.nodeName){b=c.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=b&&""!=b)b!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),
+f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");b=c.getAttribute("backgroundImage");null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);
+mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1);if(b=c.getAttribute("extFonts"))try{for(b=b.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}}),d=0;d<b.length;d++)this.graph.addExtFont(b[d].name,b[d].url)}catch(E){console.log("ExtFonts format error: "+
+E.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&
+c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var d=this.graph.extFonts.map(function(a){return a.name+"^"+a.url});c.setAttribute("extFonts",d.join("|"))}return c};Editor.prototype.isDataSvg=function(a){try{var c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=
+c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(ka){}return!1};Editor.prototype.extractGraphModel=function(a,c,b){return Editor.extractGraphModel.apply(this,arguments)};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;
+this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&
+null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";Editor.initMath=function(a,c){if("undefined"===typeof window.MathJax){a=(null!=a?a:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":
+"SVG")+"-full";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};var b=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";c=null!=c?c:{"HTML-CSS":{availableFonts:[b],imageFont:null},SVG:{font:b,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",
+AuthorInit:function(){MathJax.Hub.Config(c);MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var d=Editor.prototype.init;Editor.prototype.init=function(){d.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,
+mxUtils.bind(this,function(a,c){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};b=document.getElementsByTagName("script");if(null!=b&&0<b.length){var f=document.createElement("script");f.setAttribute("type","text/javascript");f.setAttribute("src",a);b[0].parentNode.appendChild(f)}try{if(mxClient.IS_GC||mxClient.IS_SF){var e=document.createElement("style");e.type="text/css";e.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(e)}}catch(Y){}}};
+Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;var c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,
+'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)};Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();
+var c=a.convert,b=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&!navigator.onLine?d=Editor.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||b.crossOriginImages&&b.isCorsEnabledForUrl(d)?"chrome-extension://"==d.substring(0,19)||mxClient.IS_CHROMEAPP||(d=c.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return a};Editor.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};
+Editor.prototype.convertImageToDataUri=function(a,c){try{var b=!0,d=window.setTimeout(mxUtils.bind(this,function(){b=!1;c(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(d);b&&c(Editor.createSvgDataUri(a.getText()))}),function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)});else{var f=new Image;this.crossOriginImages&&(f.crossOrigin="anonymous");f.onload=function(){window.clearTimeout(d);if(b)try{var a=document.createElement("canvas"),
+e=a.getContext("2d");a.height=f.height;a.width=f.width;e.drawImage(f,0,0);c(a.toDataURL())}catch(X){c(Editor.svgBrokenImage.src)}};f.onerror=function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)};f.src=a}}catch(U){c(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(a,c,b,d){null==d&&(d=this.createImageUrlConverter());var f=0,e=b||{};b=mxUtils.bind(this,function(b,g){for(var k=a.getElementsByTagName(b),n=0;n<k.length;n++)mxUtils.bind(this,function(b){try{if(null!=b){var k=
+d.convert(b.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var n=e[k];null==n?(f++,this.convertImageToDataUri(k,function(d){null!=d&&(e[k]=d,b.setAttribute(g,d));f--;0==f&&c(a)})):b.setAttribute(g,n)}else null!=k&&b.setAttribute(g,k)}}catch(fa){}})(k[n])});b("image","xlink:href");b("img","src");0==f&&c(a)};Editor.base64Encode=function(a){for(var c="",b=0,d=a.length,f,e,g;b<d;){f=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>
+2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);c+="==";break}e=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2);c+="=";break}g=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>
+2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2|(g&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return c};Editor.prototype.loadUrl=function(a,c,b,d,f,e,g,k){try{var n=!g&&(d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));f=null!=f?f:!0;var p=mxUtils.bind(this,
+function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=c){var d=a.getText();if(n){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length),f=0;f<a.length;f++)d[f]=String.fromCharCode(a[f]);d=d.join("")}e=null!=e?e:"data:image/png;base64,";d=e+Editor.base64Encode(d)}c(d)}}else null!=b&&(0==a.getStatus()?b({message:mxResources.get("accessDenied")},
+a):b({message:mxResources.get("error")+" "+a.getStatus()},a))}),function(a){null!=b&&b({message:mxResources.get("error")+" "+a.getStatus()})},n,this.timeout,function(){f&&null!=b&&b({code:App.ERROR_TIMEOUT,retry:p})},k)});p()}catch(Z){null!=b&&b(Z)}};Editor.prototype.absoluteCssFonts=function(a){var c=null;if(null!=a){var b=a.split("url(");if(0<b.length){c=[b[0]];a=window.location.pathname;var d=null!=a?a.lastIndexOf("/"):-1;0<=d&&(a=a.substring(0,d+1));var d=document.getElementsByTagName("base"),
+f=null;null!=d&&0<d.length&&(f=d[0].getAttribute("href"));for(var e=1;e<b.length;e++)if(d=b[e].indexOf(")"),0<d){var g=Editor.trimCssUrl(b[e].substring(0,d));this.graph.isRelativeUrl(g)&&(g=null!=f?f+g:window.location.protocol+"//"+window.location.hostname+("/"==g.charAt(0)?"":a)+g);c.push('url("'+g+'"'+b[e].substring(d))}else c.push(b[e])}else c=[a]}return null!=c?c.join(""):null};Editor.prototype.embedCssFonts=function(a,c){var b=a.split("url("),d=0;null==this.cachedFonts&&(this.cachedFonts={});
+var f=mxUtils.bind(this,function(){if(0==d){for(var a=[b[0]],f=1;f<b.length;f++){var e=b[f].indexOf(")");a.push('url("');a.push(this.cachedFonts[Editor.trimCssUrl(b[f].substring(0,e))]);a.push('"'+b[f].substring(e))}c(a.join(""))}});if(0<b.length){for(var e=1;e<b.length;e++){var g=b[e].indexOf(")"),k=null,n=b[e].indexOf("format(",g);0<n&&(k=Editor.trimCssUrl(b[e].substring(n+7,b[e].indexOf(")",n))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=a;d++;var c="application/x-font-ttf";
+if("svg"==k||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==k||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&
+(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){this.cachedFonts[a]=c;d--;f()}),mxUtils.bind(this,function(a){d--;f()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(Editor.trimCssUrl(b[e].substring(0,g)),k)}f()}else c(a)};Editor.prototype.loadFonts=function(a){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(c){this.resolvedFontCss=c;a()})):a()};Editor.prototype.embedExtFonts=function(a){var c=this.graph.getCustomFonts();
+if(0<c.length){var b="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var f=mxUtils.bind(this,function(){0==d&&this.embedCssFonts(b,a)}),e=0;e<c.length;e++)mxUtils.bind(this,function(a,c){Graph.isCssFontUrl(c)?null==this.cachedGoogleFonts[c]?(d++,this.loadUrl(c,mxUtils.bind(this,function(a){this.cachedGoogleFonts[c]=a;b+=a;d--;f()}),mxUtils.bind(this,function(a){d--;b+="@import url("+c+");";f()}))):b+=this.cachedGoogleFonts[c]:b+='@font-face {font-family: "'+a+'";src: url("'+c+
+'")}'})(c[e].name,c[e].url);f()}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var c=document.getElementsByTagName("style"),b=0;b<c.length;b++)0<mxUtils.getTextContent(c[b]).indexOf("MathJax")&&a[0].appendChild(c[b].cloneNode(!0))};Editor.prototype.addFontCss=function(a,c){c=null!=c?c:this.absoluteCssFonts(this.fontCss);if(null!=c){var b=a.getElementsByTagName("defs"),d=a.ownerDocument;0==b.length?(b=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,
+"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)):b=b[0];d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,c);b.appendChild(d)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,c,b){var d=mxClient.IS_FF?8192:16384;return Math.min(b,Math.min(d/a,d/
+c))};Editor.prototype.exportToCanvas=function(a,c,b,d,f,e,g,k,p,t,v,m,l,y,z,A,q,u){try{e=null!=e?e:!0;g=null!=g?g:!0;m=null!=m?m:this.graph;l=null!=l?l:0;var n=p?null:m.background;n==mxConstants.NONE&&(n=null);null==n&&(n=d);null==n&&0==p&&(n=A?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(m.getSvg(null,null,l,y,null,g,null,null,null,t,null,A,q,u),mxUtils.bind(this,function(b){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var g=function(){mxClient.IS_SF?window.setTimeout(function(){y.drawImage(d,
+0,0);a(p,b)},0):(y.drawImage(d,0,0),a(p,b))},p=document.createElement("canvas"),t=parseInt(b.getAttribute("width")),v=parseInt(b.getAttribute("height"));k=null!=k?k:1;null!=c&&(k=e?Math.min(1,Math.min(3*c/(4*v),c/t)):c/t);k=this.getMaxCanvasScale(t,v,k);t=Math.ceil(k*t);v=Math.ceil(k*v);p.setAttribute("width",t);p.setAttribute("height",v);var y=p.getContext("2d");null!=n&&(y.beginPath(),y.rect(0,0,t,v),y.fillStyle=n,y.fill());1!=k&&y.scale(k,k);if(z){var A=m.view,q=A.scale;A.scale=1;var B=btoa(unescape(encodeURIComponent(A.createSvgGrid(A.gridColor))));
+A.scale=q;var B="data:image/svg+xml;base64,"+B,C=m.gridSize*A.gridSteps*k,u=m.getGraphBounds(),I=A.translate.x*q,E=A.translate.y*q,F=I+(u.x-I)/q-l,D=E+(u.y-E)/q-l,G=new Image;G.onload=function(){try{for(var a=-Math.round(C-mxUtils.mod((I-F)*k,C)),c=-Math.round(C-mxUtils.mod((E-D)*k,C));a<t;a+=C)for(var b=c;b<v;b+=C)y.drawImage(G,a/k,b/k);g()}catch(ua){null!=f&&f(ua)}};G.onerror=function(a){null!=f&&f(a)};G.src=B}else g()}catch(xa){null!=f&&f(xa)}});d.onerror=function(a){null!=f&&f(a)};t&&this.graph.addSvgShadow(b);
+this.graph.mathEnabled&&this.addMathCss(b);var g=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(ra){null!=f&&f(ra)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(g)}catch(O){null!=f&&f(O)}}))}catch(ra){null!=f&&f(ra)}}),b,v)}catch(T){null!=f&&f(T)}};Editor.crcTable=[];for(var l=0;256>l;l++)for(var m=l,u=0;8>u;u++)m=1==(m&1)?3988292384^m>>>
+1:m>>>1,Editor.crcTable[l]=m;Editor.updateCRC=function(a,c,b,d){for(var f=0;f<d;f++)a=Editor.crcTable[(a^c.charCodeAt(b+f))&255]^a>>>8;return a};Editor.crc32=function(a){for(var c=-1,b=0;b<a.length;b++)c=c>>>8^Editor.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(a,c,b,d,f){function e(a,c){var b=n;n+=c;return a.substring(b,n)}function g(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>
+24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var n=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(e(a,4),"IHDR"!=e(a,4))null!=f&&f();else{e(a,17);f=a.substring(0,n);do{var p=g(a);if("IDAT"==e(a,4)){f=a.substring(0,n-8);"pHYs"==c&&"dpi"==b?(b=Math.round(d/.0254),b=k(b)+k(b)+String.fromCharCode(1)):b=b+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,
+c,0,4);d=Editor.updateCRC(d,b,0,b.length);f+=k(b.length)+c+b+k(d^4294967295);f+=a.substring(n-8,a.length);break}f+=a.substring(n-8,n-4+p);e(a,p);e(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(f):Base64.encode(f,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var q=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){q.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};
+var c=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var f=Format.prototype.init;Format.prototype.init=function(){f.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",
+this.update)};var g=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?g.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var k=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=
+function(a){a=k.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});
+Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var p=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=p.apply(this,arguments);var c=this.editorUi,b=c.editor.graph;if(b.isEnabled()){var d=c.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return c.editor.autosave},function(a){c.editor.setAutosave(a);
+c.editor.autosave&&d.isModified()&&d.fileChanged()},{install:function(a){this.listener=function(){a(c.editor.autosave)};c.editor.addListener("autosaveChanged",this.listener)},destroy:function(){c.editor.removeListener(this.listener)}});a.appendChild(f)}}if(this.isMathOptionVisible()&&b.isEnabled()&&"undefined"!==typeof MathJax){f=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return b.mathEnabled},function(a){c.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=
+function(){a(b.mathEnabled)};c.addListener("mathEnabledChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});f.style.paddingTop="5px";a.appendChild(f);var e=c.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");e.style.position="relative";e.style.marginLeft="6px";e.style.top="2px";f.appendChild(e)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
+{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=
+[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",
+type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",
+type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line",
+type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties=[{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20},
+{name:"fixedSize",dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",
+type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width",
+type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left",
+dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"startSize",dispName:"Header Size",type:"float"},{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},
+{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=
+[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",
+defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},
+{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",
+dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];
+mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},
+{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,
+defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=
+[{name:"width",dispName:"Title Width",type:"float",defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",
+font:"#ffffff"},{fill:"#008a00",stroke:"#005700",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},
+{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",
+gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",
+stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,c,b){if(null!=c){var d=function(a){if(null!=a)if(b)for(var d=0;d<a.length;d++)c[a[d].name]=a[d];else for(var f in c){for(var e=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==c[f].type){e=!0;break}e||delete c[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&null!=f.shape&&(f.shape.commonCustomPropAdded||
+(f.shape.commonCustomPropAdded=!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(U){}}};var t=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"==
+a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));t.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},b=a.vertices,d=a.edges,f=0;f<b.length;f++)this.findCommonProperties(b[f],c,0==f);for(f=0;f<d.length;f++)this.findCommonProperties(d[f],c,0==b.length&&0==f);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,a))}};var v=StyleFormatPanel.prototype.addStyleOps;
+StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));
+c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,c,b){function d(a,c,b,d){v.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],k=b.parentRow.nextSibling;k&&k.getAttribute("data-pName")==a;)g.push(k.getAttribute("data-pValue")),
+k=k.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(v.setCellStyles(b.countProperty,g.length,v.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}v.setCellStyles(a,c,v.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var p=b.dependentPropsDefVal[a],n=b.dependentPropsVals[a];if(n.length>c)n=n.slice(0,c);else for(var m=
+n.length;m<c;m++)n.push(p);n=n.join(",");v.setCellStyles(b.dependentProps[a],n,v.getSelectionCells());f.push(b.dependentProps[a]);e.push(n)}if("function"==typeof b.onChange)b.onChange(v,c);t.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",v.getSelectionCells()))}finally{v.getModel().endUpdate()}}function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+
+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height="4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(t,function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height=
+"12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,k){null!=c&&(c=c.split(","),m.push({name:a,values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(t,function(c){for(var p=g,t=0;null!=p.nextSibling;)if(p.nextSibling.getAttribute("data-pName")==a)p=p.nextSibling,t++;else break;var v={type:b,parentRow:g,index:t,isDeletable:!0,defVal:f,countProperty:e},t=n(a,"",v,0==t%2,k);d(a,f,
+v);p.parentNode.insertBefore(t,p.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function k(a,c,b,d,f,e,g){if(0<f){var k=Array(f);c=null!=c?c.split(","):[];for(var p=0;p<f;p++)k[p]=null!=c[p]?c[p]:null!=d?d:"";m.push({name:a,values:k,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}function p(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,
+"change",function(){d(a,f.checked?"1":"0",b)});return f}function n(c,b,n,v,m){var l=n.dispName,y=n.type,z=document.createElement("tr");z.className="gePropRow"+(m?"Dark":"")+(v?"Alt":"")+" gePropNonHeaderRow";z.setAttribute("data-pName",c);z.setAttribute("data-pValue",b);v=!1;null!=n.index&&(z.setAttribute("data-index",n.index),l=(null!=l?l:"")+"["+n.index+"]",v=!0);var A=document.createElement("td");A.className="gePropRowCell";A.innerHTML=mxUtils.htmlEntities(mxResources.get(l,null,l));v&&(A.style.textAlign=
+"right");z.appendChild(A);A=document.createElement("td");A.className="gePropRowCell";if("color"==y)A.appendChild(e(c,b,n));else if("bool"==y||"boolean"==y)A.appendChild(p(c,b,n));else if("enum"==y){var q=n.enumList;for(m=0;m<q.length;m++)if(l=q[m],l.val==b){A.innerHTML=mxUtils.htmlEntities(mxResources.get(l.dispName,null,l.dispName));break}mxEvent.addListener(A,"click",mxUtils.bind(t,function(){var e=document.createElement("select");f(A,e);for(var g=0;g<q.length;g++){var k=q[g],p=document.createElement("option");
+p.value=mxUtils.htmlEntities(k.val);p.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));e.appendChild(p)}e.value=b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,n)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==y?A.appendChild(g(c,b,n.subType,n.subDefVal,n.countProperty,z,m)):"staticArr"==y?A.appendChild(k(c,b,n.subType,n.subDefVal,n.size,z,m)):"readOnly"==y?(m=document.createElement("input"),
+m.setAttribute("readonly",""),m.value=b,m.style.width="96px",m.style.borderWidth="0px",A.appendChild(m)):(A.innerHTML=b,mxEvent.addListener(A,"click",mxUtils.bind(t,function(){function e(){var a=g.value,a=0==a.length&&"string"!=y?0:a;n.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",y="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=n.min&&a<n.min?a=n.min:null!=n.max&&a>n.max&&(a=n.max);a=mxUtils.htmlEntities(("int"==y?parseInt(a):a)+"");d(c,a,n)}var g=document.createElement("input");
+f(A,g,!0);g.value=b;g.className="gePropEditor";"int"!=y&&"float"!=y||n.allowAuto||(g.type="number",g.step="int"==y?"1":"any",null!=n.min&&(g.min=parseFloat(n.min)),null!=n.max&&(g.max=parseFloat(n.max)));a.appendChild(g);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){e()})})));n.isDeletable&&(m=mxUtils.button("-",mxUtils.bind(t,function(a){d(c,"",n,n.index);mxEvent.consume(a)})),m.style.height="16px",m.style.width="25px",m.style["float"]=
+"right",m.className="geColorBtn",A.appendChild(m));z.appendChild(A);return z}var t=this,v=this.editorUi.editor.graph,m=[];a.style.position="relative";a.style.padding="0";var l=document.createElement("table");l.className="geProperties";l.style.whiteSpace="nowrap";l.style.width="100%";var y=document.createElement("tr");y.className="gePropHeader";var z=document.createElement("th");z.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;z.appendChild(A);
+mxUtils.write(z,mxResources.get("property"));y.style.cursor="pointer";var q=function(){var c=l.querySelectorAll(".gePropNonHeaderRow"),b;if(t.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(sa){}}else A.src=Sidebar.prototype.expandedImage,b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(y,"click",function(){t.editorUi.propertiesCollapsed=
+!t.editorUi.propertiesCollapsed;q()});y.appendChild(z);z=document.createElement("th");z.className="gePropHeaderCell";z.innerHTML=mxResources.get("value");y.appendChild(z);l.appendChild(y);var u=!1,B=!1,y=null;1==b.vertices.length&&0==b.edges.length?y=b.vertices[0].id:0==b.vertices.length&&1==b.edges.length&&(y=b.edges[0].id);null!=y&&l.appendChild(n("id",mxUtils.htmlEntities(y),{dispName:"ID",type:"readOnly"},!0,!1));for(var C in c)if(y=c[C],"function"!=typeof y.isVisible||y.isVisible(b,this)){var I=
+null!=b.style[C]?mxUtils.htmlEntities(b.style[C]+""):null!=y.getDefaultValue?y.getDefaultValue(b,this):y.defVal;if("separator"==y.type)B=!B;else{if("staticArr"==y.type)y.size=parseInt(b.style[y.sizeProperty]||c[y.sizeProperty].defVal)||0;else if(null!=y.dependentProps){for(var F=y.dependentProps,D=[],G=[],z=0;z<F.length;z++){var N=b.style[F[z]];G.push(c[F[z]].subDefVal);D.push(null!=N?N.split(","):[])}y.dependentPropsDefVal=G;y.dependentPropsVals=D}l.appendChild(n(C,I,y,u,B));u=!u}}for(z=0;z<m.length;z++)for(y=
+m[z],c=y.parentRow,b=0;b<y.values.length;b++)C=n(y.name,y.values[b],{type:y.type,parentRow:y.parentRow,isDeletable:y.isDeletable,index:b,defVal:y.defVal,countProperty:y.countProperty,size:y.size},0==b%2,y.flipBkg),c.parentNode.insertBefore(C,c.nextSibling),c=C;a.appendChild(l);q();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var b=this.editorUi,
+d=b.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.position="relative";
+g.style.textAlign="center";for(var k=[],n=0;n<this.defaultColorSchemes.length;n++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){t(a)}))})(n);k.push(p);g.appendChild(p)}var t=mxUtils.bind(this,
+function(a){null!=this.format.currentScheme&&(k[this.format.currentScheme].style.background="transparent");this.format.currentScheme=a;v(this.defaultColorSchemes[this.format.currentScheme]);k[this.format.currentScheme].style.background="#84d7ff"}),v=mxUtils.bind(this,function(a){var c=mxUtils.bind(this,function(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),g=0;g<f.length;g++){for(var k=d.getModel().getStyle(f[g]),n=0;n<e.length;n++)k=mxUtils.removeStylename(k,
+e[n]);var p=d.getModel().isVertex(f[g])?b.initialDefaultVertexStyle:b.initialdefaultEdgeStyle;null!=a?(k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isAltDown(c)||(k=""==a.fill?mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,null))),mxEvent.isShiftDown(c)||(k=""==a.stroke?mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,
+null):mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null))),mxEvent.isControlDown(c)||mxClient.IS_MAC&&mxEvent.isMetaDown(c)||!d.getModel().isVertex(f[g])||(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))):(k=mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,"#ffffff")),k=mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,
+mxConstants.STYLE_STROKECOLOR,"#000000")),k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(f[g])&&(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(f[g],k)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width="36px";c.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";c.style.margin="0px 6px 6px 0px";
+if(null!=a){var g="1"==urlParams.sketch?"2px solid":"1px solid";null!=a.gradient?mxClient.IS_IE&&10>document.documentMode?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=""==a.fill?mxUtils.getValue(b.initialDefaultVertexStyle,
+mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff"):a.fill||mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff");c.style.border=a.stroke==mxConstants.NONE?g+" transparent":""==a.stroke?g+" "+mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"):g+" "+(a.stroke||mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":
+"#2a2a2a"))}else{var g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),k=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=g;c.style.border="1px solid "+k}c.style.borderRadius="0";f.appendChild(c)});f.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(f),c(a[g])});null==this.format.currentScheme?t(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):t(this.format.currentScheme);var n=10>=this.defaultColorSchemes.length?
+28:8,m=document.createElement("div");m.style.cssText="position:absolute;left:10px;top:8px;bottom:"+n+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(m,
+"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:"+n+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
1<this.defaultColorSchemes.length&&(a.appendChild(m),a.appendChild(l));mxEvent.addListener(l,"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));c(m);c(l);v(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&a.appendChild(g);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&&(b=mxUtils.button(mxResources.get("editStyle"),
mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),b.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),b.style.width="202px",b.style.marginBottom="2px",a.appendChild(b));var d=this.editorUi.editor.graph,f=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=f&&null!=f.shape&&null!=f.shape.stencil?(c=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),
c.setAttribute("title",mxResources.get("editShape")),c.style.marginBottom="2px",null==b?c.style.width="202px":(b.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c)):c.image&&(c=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),c.setAttribute("title",mxResources.get("editImage")),c.style.marginBottom="2px",null==b?c.style.width="202px":(b.style.width="100px",c.style.width="100px",c.style.marginLeft=
@@ -3278,7 +3279,7 @@ g=document.createElement("div");g.style.marginBottom="12px";var K=PageSetupDialo
(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(I.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),
this.shadowVisible=!this.shadowVisible))};Editor.prototype.useCanvasForExport=!1;try{var R=document.createElement("canvas"),N=new Image;N.onload=function(){try{R.getContext("2d").drawImage(N,0,0);var a=R.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(B){}};N.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(n){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.6.10";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.6.12";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=
!mxClient.IS_OP&&!EditorUi.isElectronApp&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,
messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(a,b,d,e,p,t,v){t=null!=t?t:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
@@ -3370,87 +3371,87 @@ k&&J(a)});e=z.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribut
mxEvent.consume(a)})),l.insertBefore(e,l.firstChild))}m.appendChild(l);m.style.paddingRight=18*l.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+"image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(Graph.decompress(d.xml)),
0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultPageBorderColor="#505759",BaseFormatPanel.prototype.buttonBackgroundColor=
-"#2a2a2a",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxConstants.DROP_TARGET_COLOR="#00ff00");Editor.sketchFontFamily="Architects Daughter";Editor.sketchFontSource="https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter";"1"==urlParams.sketch&&(Menus.prototype.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},
-{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(Menus.prototype.defaultFonts),Graph.prototype.defaultVertexStyle={fontFamily:Editor.sketchFontFamily,fontSize:"20",fontSource:Editor.sketchFontSource,pointerEvents:"0",sketch:"0"==urlParams.rough?"0":"1",hachureGap:"4"},Graph.prototype.defaultEdgeStyle={edgeStyle:"none",rounded:"0",curved:"1",jettySize:"auto",orthogonalLoop:"1",endArrow:"open",startSize:"14",endSize:"14",fontFamily:Editor.sketchFontFamily,
-fontSize:"20",fontSource:Editor.sketchFontSource,sourcePerimeterSpacing:"8",targetPerimeterSpacing:"8",sketch:"0"==urlParams.rough?"0":"1"},Editor.configurationKey=".sketch-configuration",Editor.settingsKey=".sketch-config",Graph.prototype.defaultGridEnabled=!1,Graph.prototype.defaultPageVisible=!1,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(a,b,d,e,p){a=new ImageDialog(this,a,b,d,e,p);
-this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a,c){if(!c){var b=new ChangePageSetup(this,null,a);b.ignoreColor=!0;this.editor.graph.model.execute(b)}});var c=new BackgroundImageDialog(this,a,b);this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,p){a=new LibraryDialog(this,a,b,d,e,p);this.showDialog(a.container,
-640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var c=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(a){this.editor.graph.isSelectionEmpty()&&c.refresh()}));return c};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer geSidebarFooter");
-a.style.position="absolute";a.style.overflow="hidden";var b=document.createElement("a");b.className="geTitle";b.style.color="#DF6C0C";b.style.fontWeight="bold";b.style.height="100%";b.style.paddingTop="9px";b.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();
-mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d,e,p,t,m){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&null!=a.message)try{m?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(G){}if(null!=f||null!=b){m=mxUtils.htmlEntities(mxResources.get("unknownError"));
-var g=mxResources.get("ok"),k=null;b=null!=b?b:mxResources.get("error");if(null!=f){null!=f.retry&&(g=mxResources.get("cancel"),k=function(){c();f.retry()});if(404==f.code||404==f.status||403==f.code){m=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=p?p:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var l=
-null!=p?null:null!=t?t:window.location.hash;if(null!=l&&("#G"==l.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==l.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==f.code||404==f.status)){l="#U"==l.substring(0,2)?l.substring(45,l.lastIndexOf("%26ex")):l.substring(2);this.showError(b,m,mxResources.get("openInNewWindow"),
-mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+l);this.handleError(a,b,d,e,p)}),k,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=0;a<c.length;a++){var b=document.createElement("option");mxUtils.write(b,c[a].displayName);b.value=a;f.appendChild(b);b=document.createElement("option");b.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(b,"<"+c[a].email+">");b.setAttribute("disabled","disabled");f.appendChild(b)}b=
-document.createElement("option");mxUtils.write(b,mxResources.get("addAccount"));b.value=c.length;f.appendChild(b)}var c=this.drive.getUsersList(),b=document.createElement("div"),d=document.createElement("span");d.style.marginTop="6px";mxUtils.write(d,mxResources.get("changeUser")+": ");b.appendChild(d);var f=document.createElement("select");f.style.width="200px";a();mxEvent.addListener(f,"change",mxUtils.bind(this,function(){var b=f.value,d=c.length!=b;d&&this.drive.setUser(c[b]);this.drive.authorize(d,
-mxUtils.bind(this,function(){d||(c=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));b.appendChild(f);b=new CustomDialog(this,b,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(b.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=d&&d()}),480,150);return}}null!=f.message?m=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):
-null!=f.response&&null!=f.response.error?m=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?m=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?m=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof f&&0<f.length&&(m=mxUtils.htmlEntities(f)))}var v=t=null;null!=f&&null!=f.helpLink&&(t=mxResources.get("help"),v=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)}));this.showError(b,m,g,d,k,null,
-null,t,v,null,null,null,e?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b,d){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,d||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,d,e,p,t){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,p,null,null,null,null,f);this.showDialog(a.container,
-340,46+f,!0,t);a.init()};EditorUi.prototype.showBanner=function(a,b,d,e){var c=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var f=document.createElement("div");f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");
-mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(f.style,"transition","all 1s ease");f.className="geBtn gePrimaryBtn";c=document.createElement("img");c.setAttribute("src",IMAGE_PATH+"/logo.png");c.setAttribute("border","0");c.setAttribute("align","absmiddle");c.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";f.appendChild(c);c=document.createElement("img");c.setAttribute("src",Dialog.prototype.closeImage);c.setAttribute("title",
-mxResources.get(e?"doNotShowAgain":"close"));c.setAttribute("border","0");c.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";f.appendChild(c);mxUtils.write(f,b);document.body.appendChild(f);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("id","geDoNotShowAgainCheckbox");g.style.marginRight=
-"6px";if(!e){b.appendChild(g);var k=document.createElement("label");k.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(k,mxResources.get("doNotShowAgain"));b.appendChild(k);f.style.paddingBottom="30px";f.appendChild(b)}var m=mxUtils.bind(this,function(){null!=f.parentNode&&(f.parentNode.removeChild(f),this.bannerShowing=!1,g.checked||e)&&(this["hideBanner"+a]=!0,isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings["close"+a]=Date.now(),mxSettings.save()))});mxEvent.addListener(c,
-"click",mxUtils.bind(this,function(a){mxEvent.consume(a);m()}));var l=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){m()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);c!=g&&c!=k?(null!=d&&d(),m(),mxEvent.consume(a)):l()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(l,
-3E4);c=!0}return c};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(a,b,d,e){a=a.toDataURL("image/"+d);if(null!=a&&6<a.length)null!=b&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(b))),0<e&&(a=Editor.writeGraphModelToPng(a,"pHYs",
-"dpi",e));else throw{message:mxResources.get("unknownError")};return a};EditorUi.prototype.saveCanvas=function(a,b,d,e,p){var c="jpeg"==d?"jpg":d;e=this.getBaseFilename(e)+"."+c;a=this.createImageDataUri(a,b,d,p);this.saveData(e,c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||
-this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height="380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,p,t){"text/xml"!=d||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+
-"."+(null!=t?t:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,e);else{var c=document.createElement("a");
-t=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof c.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);t=65==(f?parseInt(f[2],10):!1)?!1:t}if(t||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));t?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},2E4),c.click(),
-c.parentNode.removeChild(c)}catch(F){}}else this.createEchoRequest(a,b,d,e,p).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,p,t){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=p?"&format="+p:"")+(null!=t?"&base64="+t:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),m=0;m<f;++m){for(var l=
-1024*m,q=Math.min(l+1024,d),y=Array(q-l),z=0;l<q;++z,++l)y[z]=c[l].charCodeAt(0);e[m]=new Uint8Array(y)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,p,m,l,q){m=null!=m?m:!1;l=null!=l?l:"vsdx"!=p&&(!mxClient.IS_IOS||!navigator.standalone);p=this.getServiceCount(m);isLocalStorage&&p++;var c=4>=p?2:6<p?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,e);else if(null!=d&&"text/html"==
-d.substring(0,9)){var f=new EmbedDialog(this,a);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(a,!1)+"</pre>"),g.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e,null,q):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(J){this.handleError(J)}}))}catch(G){this.handleError(G)}}),mxUtils.bind(this,
-function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,m,l,null,1<p,c,a,d,e);m=this.isServices(p)?p>c?390:270:160;this.showDialog(b.container,400,m,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){var c=window.open("about:blank");null==c||null==c.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):(a=d?a:btoa(unescape(encodeURIComponent(a))),c.document.write('<html><img style="max-width:100%;" src="data:'+
-b+";base64,"+a+'"/></html>')):c.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),c.document.close())};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),
-this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding=
-"4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);
-this.editor.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);
-mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,
-arguments)};EditorUi.prototype.saveData=function(a,b,d,e,p){this.isLocalFileSave()?this.saveLocalFile(d,a,e,p,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,p,b,c)}),d,p,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,p,m,l){l=null!=l?l:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var f=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==
-c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){m=null!=m?m:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,m,!0,c,d)}catch(G){this.handleError(G)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),
-a,m,!0,c,d)}catch(G){this.handleError(G)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,l,null,1<c,f,e,m,p);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
-EditorUi.prototype.exportFile=function(a,b,d,e,p,m){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,e,p,m,l,q,u,y,z,L){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f=z?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(f,a,l,q,null,d,null,null,"blank"==
-y?"_blank":"self"==y?"_top":null,null,!0,z,L);e&&this.editor.graph.addSvgShadow(g);var k=this.getBaseFilename()+".svg",t=mxUtils.bind(this,function(a){this.spinner.stop();p&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,u,null,null,null,!1));var c='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",c,"image/svg+xml"):
-this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);m?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,t,this.thumbImageCache)):t(g)}catch(K){this.handleError(K)}};EditorUi.prototype.addRadiobox=function(a,b,d,e,p,m,l){return this.addCheckbox(a,d,e,p,m,l,!0,b)};EditorUi.prototype.addCheckbox=function(a,
-b,d,e,p,m,l,q){m=null!=m?m:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",l?"radio":"checkbox");l="geCheckbox-"+Editor.guid();c.id=l;null!=q&&c.setAttribute("name",q);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");m&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",l),a.appendChild(d),p||mxUtils.br(a));return c};EditorUi.prototype.addEditButton=
-function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");
-d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||
-b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){m.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
-Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");
-f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",m=null,m=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();m.style.padding=
-mxClient.IS_FF?"4px 2px 4px 2px":"4px";m.style.marginLeft="4px";m.style.height="22px";m.style.width="22px";m.style.position="relative";m.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";m.className="geColorBtn";a.appendChild(m);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,d,e,p,m,l){l=null!=l?l:[];e&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
-"1"!=urlParams.dev||l.push("lightbox=1"),"auto"!=a&&l.push("target="+a),null!=b&&b!=mxConstants.NONE&&l.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=p&&0<p.length&&l.push("edit="+encodeURIComponent(p)),m&&l.push("layers=1"),this.editor.graph.foldingEnabled&&l.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&l.push("page-id="+this.currentPage.getId());return l};EditorUi.prototype.createLink=function(a,b,d,e,p,m,l,q,u,y){u=this.createUrlParameters(a,
-b,d,e,p,m,u);a=this.getCurrentFile();b=!0;null!=l?d="#U"+encodeURIComponent(l):(a=this.getCurrentFile(),q||null==a||a.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&u.push("title="+encodeURIComponent(a.getTitle()));y&&1<d.length&&(u.push("open="+d.substring(1)),d="");return(e&&
-"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<u.length?"?"+u.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,p,m,l,q,u,y,z){this.getBasenames();var c={};""!=p&&p!=mxConstants.NONE&&(c.highlight=p);"auto"!==e&&(c.target=e);u||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];l&&(d.push("pages"),
-c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);q&&d.push("layers");0<d.length&&(u&&d.push("lightbox"),c.toolbar=d.join(" "));null!=y&&0<y.length&&(c.edit=y);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!l);b='<div class="mxgraph" style="'+(m?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+
-encodeURIComponent(a):"";z(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,
-mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value",
-"copy");g.appendChild(f);var m=document.createElement("span");mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(m);mxUtils.br(g);g.appendChild(k);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));g.appendChild(m);var l=this.getCurrentFile();null==d&&null!=l&&l.constructor==window.DriveFile&&(m=document.createElement("a"),m.style.paddingLeft="12px",m.style.color="gray",m.style.cursor="pointer",mxUtils.write(m,mxResources.get("share")),g.appendChild(m),
-mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(l.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var z=this.addLinkSection(c),q=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.style.marginRight="12px";u.value=
-"100%";c.appendChild(u);var G=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,J=J=this.addCheckbox(c,mxResources.get("allPages"),g,!g),H=this.addCheckbox(c,mxResources.get("layers"),!0),D=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,D),I=K.getEditInput();I.style.marginBottom="16px";mxEvent.addListener(D,"change",function(){D.checked?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled");I.checked&&D.checked?K.getEditSelect().removeAttribute("disabled"):
-K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,q.checked,u.value,z.getTarget(),z.getColor(),G.checked,J.checked,H.checked,D.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,p,m){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText=
-"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var l=document.createElement("div");
-l.style.whiteSpace="normal";mxUtils.write(l,mxResources.get("linkAccountRequired"));k.appendChild(l);l=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));l.style.marginTop="12px";l.className="geBtn";k.appendChild(l);c.appendChild(k);l=document.createElement("a");l.style.paddingLeft="12px";l.style.color="gray";l.style.fontSize="11px";l.style.cursor="pointer";mxUtils.write(l,mxResources.get("check"));k.appendChild(l);mxEvent.addListener(l,"click",
-mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var t=null,q=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),t=document.createElement("input"),t.setAttribute("type","text"),
-t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",c.appendChild(t),mxUtils.write(c,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",c.appendChild(q),mxUtils.br(c);var u=this.addLinkSection(c,m);d=null!=this.pages&&1<this.pages.length;var J=null;if(null==g||g.constructor!=window.DriveFile||
-b)J=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var H=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!m),D=this.addEditButton(c,H),K=D.getEditInput();m&&(K.style.marginLeft=H.style.marginLeft,H.style.display="none",a-=30);var I=this.addCheckbox(c,mxResources.get("layers"),!0);I.style.marginLeft=K.style.marginLeft;I.style.marginBottom="16px";I.style.marginTop="8px";mxEvent.addListener(H,"change",function(){H.checked?(I.removeAttribute("disabled"),K.removeAttribute("disabled")):
-(I.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&H.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){p(u.getTarget(),u.getColor(),null==J?!0:J.checked,H.checked,D.getLink(),I.checked,null!=t?t.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||
-5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)):u.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e,p){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(p?"10":"4")+"px";c.appendChild(f);if(p){mxUtils.write(c,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type",
-"text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";c.appendChild(g);mxUtils.write(c,mxResources.get("borderWidth")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.value=this.lastExportBorder||"0";c.appendChild(k);mxUtils.br(c)}var m=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
-l=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,q=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=q&&(q.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(k.value)||0;d(!m.checked,null!=l?l.checked:!1,null!=q?q.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(p?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
-function(a,b,d,e,p,m,l,q,u){l=null!=l?l:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==q?196:300,k=document.createElement("h3");mxUtils.write(k,a);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(k);mxUtils.write(c,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight=
-"12px";t.value=this.lastExportZoom||"100%";c.appendChild(t);mxUtils.write(c,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||"0";c.appendChild(v);mxUtils.br(c);var A=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),D=document.createElement("input");D.style.marginTop="16px";D.style.marginRight="8px";D.style.marginLeft=
-"24px";D.setAttribute("disabled","disabled");D.setAttribute("type","checkbox");var F=document.createElement("select");F.style.marginTop="16px";F.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(k=0;k<a.length;k++)if(!f.isSelectionEmpty()||"selectionOnly"!=a[k]){var I=document.createElement("option");mxUtils.write(I,mxResources.get(a[k]));I.setAttribute("value",a[k]);F.appendChild(I)}u?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(F),mxUtils.br(c),g+=26,mxEvent.addListener(F,
-"change",function(){"selectionOnly"==F.value&&(A.checked=!0)})):m&&(c.appendChild(D),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(A,"change",function(){A.checked?D.removeAttribute("disabled"):D.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?u&&(A.style.display="none",A.nextSibling.style.display="none",A.nextSibling.nextSibling.style.display="none",g-=26):(F.value="diagram",D.setAttribute("checked","checked"),D.defaultChecked=!0,mxEvent.addListener(A,
-"change",function(){F.value=A.checked?"selectionOnly":"diagram"}));var R=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=q),N=null;Editor.isDarkMode()&&(N=this.addCheckbox(c,mxResources.get("dark"),!0),g+=26);var n=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),B=document.createElement("input");B.style.marginTop="16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");
-b&&(c.appendChild(B),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=null;if("png"==q||"jpeg"==q)C=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),g+=26;var ka=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),l,null,null,"jpeg"!=q);ka.style.marginBottom="16px";var E=document.createElement("select");E.style.maxWidth="260px";E.style.marginLeft="8px";E.style.marginRight="10px";E.className="geBtn";b=document.createElement("option");
-b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));E.appendChild(b);"svg"==q&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(E),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,
-mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=t.value;p(t.value,R.checked,!A.checked,n.checked,ka.checked,B.checked,v.value,D.checked,!1,E.value,null!=C?C.checked:null,null!=N?N.checked:null,F.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,p){var c=document.createElement("div");
-c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(g)}var k=this.addCheckbox(c,mxResources.get("fit"),!0),m=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(c,d),q=this.addCheckbox(c,mxResources.get("lightbox"),!0),u=this.addEditButton(c,q),G=u.getEditInput(),J=1<f.model.getChildCount(f.model.getRoot()),
-H=this.addCheckbox(c,mxResources.get("layers"),J,!J);H.style.marginLeft=G.style.marginLeft;H.style.marginBottom="12px";H.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(J&&H.removeAttribute("disabled"),G.removeAttribute("disabled")):(H.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&q.checked?u.getEditSelect().removeAttribute("disabled"):u.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,
-function(){a(k.checked,m.checked,l.checked,q.checked,u.getLink(),H.checked)}),null,mxResources.get("embed"),p);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,e,p,m,l,q){function c(c){var b=" ",k="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=g?"&page="+g:"")+(p?"&edit=_blank":"")+(m?"&layers=1":"")+"');}})(this);\"",k+="cursor:pointer;");a&&(k+="max-width:100%;");var t="";d&&(t=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');l('<img src="'+c+'"'+t+(""!=k?' style="'+k+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds(),g=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=
-this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){q({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var k="";d&&(k="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+k+"&xml="+encodeURIComponent(b));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&
-299>=t.getStatus()?c("data:image/png;base64,"+t.getText()):q({message:mxResources.get("unknownError")})}))}else q({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,b,d,e,p,m,l){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var k=f[g].getAttribute("href");null!=k&&"#"==k.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&
-c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var t=" ",v="";e&&(t="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(p?"&edit=_blank":"")+(m?"&layers=1":
-"")+"');}})(this);\"",v+="cursor:pointer;");a&&(v+="max-width:100%;");this.editor.convertImages(c,mxUtils.bind(this,function(a){l('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=v?' style="'+v+'"':"")+t+"/>")}))}else v="",e&&(b=this.getSelectedPageIndex(),c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
+"#2a2a2a",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxConstants.DROP_TARGET_COLOR="#00ff00");Editor.sketchFontFamily="Architects Daughter";Editor.sketchFontSource="https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter";"1"==urlParams.sketch&&(Graph.prototype.defaultVertexStyle={pointerEvents:"0",hachureGap:"4"},Graph.prototype.defaultEdgeStyle={edgeStyle:"none",rounded:"0",curved:"1",jettySize:"auto",orthogonalLoop:"1",
+endArrow:"open",startSize:"14",endSize:"14",sourcePerimeterSpacing:"8",targetPerimeterSpacing:"8"},"0"!=urlParams.rough&&(Graph.prototype.defaultVertexStyle.fontFamily=Editor.sketchFontFamily,Graph.prototype.defaultVertexStyle.fontSource=Editor.sketchFontSource,Graph.prototype.defaultVertexStyle.fontSize="20",Graph.prototype.defaultVertexStyle.sketch="1",Graph.prototype.defaultEdgeStyle.fontFamily=Editor.sketchFontFamily,Graph.prototype.defaultEdgeStyle.fontSource=Editor.sketchFontSource,Graph.prototype.defaultEdgeStyle.fontSize=
+"20",Graph.prototype.defaultEdgeStyle.sketch="1",Menus.prototype.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(Menus.prototype.defaultFonts)),Editor.configurationKey=".sketch-configuration",Editor.settingsKey=".sketch-config",Graph.prototype.defaultGridEnabled=
+!1,Graph.prototype.defaultPageVisible=!1,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(a,b,d,e,p){a=new ImageDialog(this,a,b,d,e,p);this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a,c){if(!c){var b=new ChangePageSetup(this,null,a);b.ignoreColor=
+!0;this.editor.graph.model.execute(b)}});var c=new BackgroundImageDialog(this,a,b);this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,p){a=new LibraryDialog(this,a,b,d,e,p);this.showDialog(a.container,640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var c=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",
+mxUtils.bind(this,function(a){this.editor.graph.isSelectionEmpty()&&c.refresh()}));return c};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer geSidebarFooter");a.style.position="absolute";a.style.overflow="hidden";var b=document.createElement("a");b.className="geTitle";b.style.color="#DF6C0C";b.style.fontWeight="bold";b.style.height="100%";b.style.paddingTop="9px";b.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,
+mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d,e,p,t,m){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&
+null!=a.message)try{m?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(G){}if(null!=f||null!=b){m=mxUtils.htmlEntities(mxResources.get("unknownError"));var g=mxResources.get("ok"),k=null;b=null!=b?b:mxResources.get("error");if(null!=f){null!=f.retry&&(g=mxResources.get("cancel"),k=function(){c();f.retry()});if(404==f.code||404==f.status||403==f.code){m=403==
+f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=p?p:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var l=null!=p?null:null!=t?t:window.location.hash;if(null!=l&&("#G"==l.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==l.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&
+"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==f.code||404==f.status)){l="#U"==l.substring(0,2)?l.substring(45,l.lastIndexOf("%26ex")):l.substring(2);this.showError(b,m,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+l);this.handleError(a,b,d,e,p)}),k,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=
+0;a<c.length;a++){var b=document.createElement("option");mxUtils.write(b,c[a].displayName);b.value=a;f.appendChild(b);b=document.createElement("option");b.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(b,"<"+c[a].email+">");b.setAttribute("disabled","disabled");f.appendChild(b)}b=document.createElement("option");mxUtils.write(b,mxResources.get("addAccount"));b.value=c.length;f.appendChild(b)}var c=this.drive.getUsersList(),b=document.createElement("div"),d=document.createElement("span");d.style.marginTop=
+"6px";mxUtils.write(d,mxResources.get("changeUser")+": ");b.appendChild(d);var f=document.createElement("select");f.style.width="200px";a();mxEvent.addListener(f,"change",mxUtils.bind(this,function(){var b=f.value,d=c.length!=b;d&&this.drive.setUser(c[b]);this.drive.authorize(d,mxUtils.bind(this,function(){d||(c=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));b.appendChild(f);b=new CustomDialog(this,b,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),
+!0)}));this.showDialog(b.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=d&&d()}),480,150);return}}null!=f.message?m=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error?m=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?m=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?m=mxUtils.htmlEntities(mxResources.get("busy")):
+"string"===typeof f&&0<f.length&&(m=mxUtils.htmlEntities(f)))}var v=t=null;null!=f&&null!=f.helpLink&&(t=mxResources.get("help"),v=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)}));this.showError(b,m,g,d,k,null,null,t,v,null,null,null,e?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b,d){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,d||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,d,e,p,t){var c=null!=
+this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,p,null,null,null,null,f);this.showDialog(a.container,340,46+f,!0,t);a.init()};EditorUi.prototype.showBanner=function(a,b,d,e){var c=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var f=document.createElement("div");
+f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(f.style,"transition","all 1s ease");f.className="geBtn gePrimaryBtn";c=document.createElement("img");c.setAttribute("src",IMAGE_PATH+
+"/logo.png");c.setAttribute("border","0");c.setAttribute("align","absmiddle");c.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";f.appendChild(c);c=document.createElement("img");c.setAttribute("src",Dialog.prototype.closeImage);c.setAttribute("title",mxResources.get(e?"doNotShowAgain":"close"));c.setAttribute("border","0");c.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";f.appendChild(c);mxUtils.write(f,
+b);document.body.appendChild(f);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("id","geDoNotShowAgainCheckbox");g.style.marginRight="6px";if(!e){b.appendChild(g);var k=document.createElement("label");k.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(k,mxResources.get("doNotShowAgain"));b.appendChild(k);f.style.paddingBottom=
+"30px";f.appendChild(b)}var m=mxUtils.bind(this,function(){null!=f.parentNode&&(f.parentNode.removeChild(f),this.bannerShowing=!1,g.checked||e)&&(this["hideBanner"+a]=!0,isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings["close"+a]=Date.now(),mxSettings.save()))});mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){mxEvent.consume(a);m()}));var l=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,
+function(){m()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);c!=g&&c!=k?(null!=d&&d(),m(),mxEvent.consume(a)):l()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(l,3E4);c=!0}return c};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=
+function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(a,b,d,e){a=a.toDataURL("image/"+d);if(null!=a&&6<a.length)null!=b&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(b))),0<e&&(a=Editor.writeGraphModelToPng(a,"pHYs","dpi",e));else throw{message:mxResources.get("unknownError")};return a};EditorUi.prototype.saveCanvas=function(a,b,d,e,p){var c="jpeg"==d?"jpg":d;e=this.getBaseFilename(e)+"."+c;a=this.createImageDataUri(a,b,d,p);this.saveData(e,
+c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height=
+"380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,p,t){"text/xml"!=d||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+"."+(null!=t?t:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),
+null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,e);else{var c=document.createElement("a");t=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof c.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
+t=65==(f?parseInt(f[2],10):!1)?!1:t}if(t||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));t?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},2E4),c.click(),c.parentNode.removeChild(c)}catch(F){}}else this.createEchoRequest(a,b,d,e,p).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,p,t){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,
+a+(null!=d?"&mime="+d:"")+(null!=p?"&format="+p:"")+(null!=t?"&base64="+t:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),m=0;m<f;++m){for(var l=1024*m,q=Math.min(l+1024,d),y=Array(q-l),z=0;l<q;++z,++l)y[z]=c[l].charCodeAt(0);e[m]=new Uint8Array(y)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,p,m,l,q){m=null!=m?m:!1;l=null!=l?
+l:"vsdx"!=p&&(!mxClient.IS_IOS||!navigator.standalone);p=this.getServiceCount(m);isLocalStorage&&p++;var c=4>=p?2:6<p?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,e);else if(null!=d&&"text/html"==d.substring(0,9)){var f=new EmbedDialog(this,a);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(a,
+!1)+"</pre>"),g.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e,null,q):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(J){this.handleError(J)}}))}catch(G){this.handleError(G)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,m,l,null,1<p,c,a,d,e);m=this.isServices(p)?p>c?390:270:160;this.showDialog(b.container,400,m,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=
+function(a,b,d){var c=window.open("about:blank");null==c||null==c.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):(a=d?a:btoa(unescape(encodeURIComponent(a))),c.document.write('<html><img style="max-width:100%;" src="data:'+b+";base64,"+a+'"/></html>')):c.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),c.document.close())};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=
+function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");
+this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);this.editor.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,
+null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,
+function(a){this.spinner.stop();this.handleError(a)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,d,e,p){this.isLocalFileSave()?this.saveLocalFile(d,a,e,p,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,
+p,b,c)}),d,p,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,p,m,l){l=null!=l?l:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var f=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,
+function(d){m=null!=m?m:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,m,!0,c,d)}catch(G){this.handleError(G)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,m,!0,c,d)}catch(G){this.handleError(G)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),
+mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,l,null,1<c,f,e,m,p);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,d,e,p,m){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,e,
+p,m,l,q,u,y,z,L){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f=z?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(f,a,l,q,null,d,null,null,"blank"==y?"_blank":"self"==y?"_top":null,null,!0,z,L);e&&this.editor.graph.addSvgShadow(g);var k=this.getBaseFilename()+".svg",t=mxUtils.bind(this,function(a){this.spinner.stop();
+p&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,u,null,null,null,!1));var c='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",c,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);
+this.editor.graph.mathEnabled&&this.editor.addMathCss(g);m?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,t,this.thumbImageCache)):t(g)}catch(K){this.handleError(K)}};EditorUi.prototype.addRadiobox=function(a,b,d,e,p,m,l){return this.addCheckbox(a,d,e,p,m,l,!0,b)};EditorUi.prototype.addCheckbox=function(a,b,d,e,p,m,l,q){m=null!=m?m:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",l?"radio":"checkbox");
+l="geCheckbox-"+Editor.guid();c.id=l;null!=q&&c.setAttribute("name",q);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");m&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",l),a.appendChild(d),p||mxUtils.br(a));return c};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=
+App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,
+"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?
+"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){m.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");
+d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&
+(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",m=null,m=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();m.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";m.style.marginLeft="4px";m.style.height="22px";m.style.width=
+"22px";m.style.position="relative";m.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";m.className="geColorBtn";a.appendChild(m);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,d,e,p,m,l){l=null!=l?l:[];e&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&"1"!=urlParams.dev||l.push("lightbox=1"),"auto"!=a&&l.push("target="+a),null!=b&&b!=mxConstants.NONE&&
+l.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=p&&0<p.length&&l.push("edit="+encodeURIComponent(p)),m&&l.push("layers=1"),this.editor.graph.foldingEnabled&&l.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&l.push("page-id="+this.currentPage.getId());return l};EditorUi.prototype.createLink=function(a,b,d,e,p,m,l,q,u,y){u=this.createUrlParameters(a,b,d,e,p,m,u);a=this.getCurrentFile();b=!0;null!=l?d="#U"+encodeURIComponent(l):(a=this.getCurrentFile(),
+q||null==a||a.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&u.push("title="+encodeURIComponent(a.getTitle()));y&&1<d.length&&(u.push("open="+d.substring(1)),d="");return(e&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
+EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<u.length?"?"+u.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,p,m,l,q,u,y,z){this.getBasenames();var c={};""!=p&&p!=mxConstants.NONE&&(c.highlight=p);"auto"!==e&&(c.target=e);u||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];l&&(d.push("pages"),c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),
+c.resize=!0);q&&d.push("layers");0<d.length&&(u&&d.push("lightbox"),c.toolbar=d.join(" "));null!=y&&0<y.length&&(c.edit=y);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!l);b='<div class="mxgraph" style="'+(m?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";z(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":
+EditorUi.lightboxHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=
+document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var m=document.createElement("span");mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(m);
+mxUtils.br(g);g.appendChild(k);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));g.appendChild(m);var l=this.getCurrentFile();null==d&&null!=l&&l.constructor==window.DriveFile&&(m=document.createElement("a"),m.style.paddingLeft="12px",m.style.color="gray",m.style.cursor="pointer",mxUtils.write(m,mxResources.get("share")),g.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(l.getId())})));f.setAttribute("checked",
+"checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var z=this.addLinkSection(c),q=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.style.marginRight="12px";u.value="100%";c.appendChild(u);var G=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,J=J=this.addCheckbox(c,mxResources.get("allPages"),
+g,!g),H=this.addCheckbox(c,mxResources.get("layers"),!0),D=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,D),I=K.getEditInput();I.style.marginBottom="16px";mxEvent.addListener(D,"change",function(){D.checked?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled");I.checked&&D.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,q.checked,
+u.value,z.getTarget(),z.getColor(),G.checked,J.checked,H.checked,D.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,p,m){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";
+a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var l=document.createElement("div");l.style.whiteSpace="normal";mxUtils.write(l,mxResources.get("linkAccountRequired"));k.appendChild(l);l=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));
+l.style.marginTop="12px";l.className="geBtn";k.appendChild(l);c.appendChild(k);l=document.createElement("a");l.style.paddingLeft="12px";l.style.color="gray";l.style.fontSize="11px";l.style.cursor="pointer";mxUtils.write(l,mxResources.get("check"));k.appendChild(l);mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,
+mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var t=null,q=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",c.appendChild(t),mxUtils.write(c,mxResources.get("height")+":"),
+q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",c.appendChild(q),mxUtils.br(c);var u=this.addLinkSection(c,m);d=null!=this.pages&&1<this.pages.length;var J=null;if(null==g||g.constructor!=window.DriveFile||b)J=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var H=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!m),D=this.addEditButton(c,H),K=D.getEditInput();m&&(K.style.marginLeft=
+H.style.marginLeft,H.style.display="none",a-=30);var I=this.addCheckbox(c,mxResources.get("layers"),!0);I.style.marginLeft=K.style.marginLeft;I.style.marginBottom="16px";I.style.marginTop="8px";mxEvent.addListener(H,"change",function(){H.checked?(I.removeAttribute("disabled"),K.removeAttribute("disabled")):(I.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&H.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled","disabled")});
+b=new CustomDialog(this,c,mxUtils.bind(this,function(){p(u.getTarget(),u.getColor(),null==J?!0:J.checked,H.checked,D.getLink(),I.checked,null!=t?t.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)):u.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e,p){var c=document.createElement("div");c.style.whiteSpace=
+"nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(p?"10":"4")+"px";c.appendChild(f);if(p){mxUtils.write(c,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type","text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";c.appendChild(g);mxUtils.write(c,mxResources.get("borderWidth")+
+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.value=this.lastExportBorder||"0";c.appendChild(k);mxUtils.br(c)}var m=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),l=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,q=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||
+null==f.background);null!=q&&(q.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(k.value)||0;d(!m.checked,null!=l?l.checked:!1,null!=q?q.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(p?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,d,e,p,m,l,q,u){l=null!=l?l:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==q?196:300,k=document.createElement("h3");
+mxUtils.write(k,a);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(k);mxUtils.write(c,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value=this.lastExportZoom||"100%";c.appendChild(t);mxUtils.write(c,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");
+v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||"0";c.appendChild(v);mxUtils.br(c);var A=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),D=document.createElement("input");D.style.marginTop="16px";D.style.marginRight="8px";D.style.marginLeft="24px";D.setAttribute("disabled","disabled");D.setAttribute("type","checkbox");var F=document.createElement("select");F.style.marginTop="16px";F.style.marginLeft="8px";a=["selectionOnly",
+"diagram","page"];for(k=0;k<a.length;k++)if(!f.isSelectionEmpty()||"selectionOnly"!=a[k]){var I=document.createElement("option");mxUtils.write(I,mxResources.get(a[k]));I.setAttribute("value",a[k]);F.appendChild(I)}u?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(F),mxUtils.br(c),g+=26,mxEvent.addListener(F,"change",function(){"selectionOnly"==F.value&&(A.checked=!0)})):m&&(c.appendChild(D),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(A,"change",function(){A.checked?
+D.removeAttribute("disabled"):D.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?u&&(A.style.display="none",A.nextSibling.style.display="none",A.nextSibling.nextSibling.style.display="none",g-=26):(F.value="diagram",D.setAttribute("checked","checked"),D.defaultChecked=!0,mxEvent.addListener(A,"change",function(){F.value=A.checked?"selectionOnly":"diagram"}));var R=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=q),N=null;Editor.isDarkMode()&&(N=this.addCheckbox(c,
+mxResources.get("dark"),!0),g+=26);var n=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),B=document.createElement("input");B.style.marginTop="16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");b&&(c.appendChild(B),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=null;if("png"==q||"jpeg"==q)C=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,
+!1,!0),g+=26;var ka=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),l,null,null,"jpeg"!=q);ka.style.marginBottom="16px";var E=document.createElement("select");E.style.maxWidth="260px";E.style.marginLeft="8px";E.style.marginRight="10px";E.className="geBtn";b=document.createElement("option");b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));
+E.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));E.appendChild(b);"svg"==q&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(E),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=t.value;p(t.value,R.checked,!A.checked,n.checked,ka.checked,B.checked,v.value,D.checked,!1,E.value,null!=C?C.checked:null,null!=N?N.checked:
+null,F.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,p){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
+c.appendChild(g)}var k=this.addCheckbox(c,mxResources.get("fit"),!0),m=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(c,d),q=this.addCheckbox(c,mxResources.get("lightbox"),!0),u=this.addEditButton(c,q),G=u.getEditInput(),J=1<f.model.getChildCount(f.model.getRoot()),H=this.addCheckbox(c,mxResources.get("layers"),J,!J);H.style.marginLeft=G.style.marginLeft;H.style.marginBottom="12px";H.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?
+(J&&H.removeAttribute("disabled"),G.removeAttribute("disabled")):(H.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&q.checked?u.getEditSelect().removeAttribute("disabled"):u.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(k.checked,m.checked,l.checked,q.checked,u.getLink(),H.checked)}),null,mxResources.get("embed"),p);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
+function(a,b,d,e,p,m,l,q){function c(c){var b=" ",k="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(null!=g?"&page="+g:"")+(p?"&edit=_blank":"")+(m?"&layers=1":"")+"');}})(this);\"",k+=
+"cursor:pointer;");a&&(k+="max-width:100%;");var t="";d&&(t=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');l('<img src="'+c+'"'+t+(""!=k?' style="'+k+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds(),g=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){q({message:mxResources.get("unknownError")})}),
+null,!0,d?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var k="";d&&(k="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+k+"&xml="+encodeURIComponent(b));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&299>=t.getStatus()?c("data:image/png;base64,"+t.getText()):q({message:mxResources.get("unknownError")})}))}else q({message:mxResources.get("drawingTooLarge")})};
+EditorUi.prototype.createEmbedSvg=function(a,b,d,e,p,m,l){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var k=f[g].getAttribute("href");null!=k&&"#"==k.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var t=" ",v="";e&&(t="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(p?"&edit=_blank":"")+(m?"&layers=1":"")+"');}})(this);\"",v+="cursor:pointer;");a&&(v+="max-width:100%;");this.editor.convertImages(c,mxUtils.bind(this,function(a){l('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=v?' style="'+v+'"':"")+t+"/>")}))}else v="",e&&(b=this.getSelectedPageIndex(),c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
EditorUi.lightboxHost+"/?client=1"+(null!=b?"&page="+b:"")+(p?"&edit=_blank":"")+(m?"&layers=1":"")+"');}}})(this);"),v+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),p=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","-0.5 -0.5 "+a+" "+p),v+="max-width:100%;max-height:"+p+"px;",c.removeAttribute("height")),""!=v&&c.setAttribute("style",v),this.editor.addFontCss(c),this.editor.graph.mathEnabled&&this.editor.addMathCss(c),l(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=
Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+" "+mxResources.get("months");c=Math.floor(a/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(a/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(a/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=
a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(t){}finally{this.editor.graph=d}return a};EditorUi.prototype.getPngFileProperties=function(a){var c=1,b=0;if(null!=
@@ -3509,9 +3510,9 @@ OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c);try{EditorUi.logEvent(
g),t=document.createElement("canvas");t.width=k;t.height=p;t.getContext("2d").drawImage(a,0,0,k,p);var u=t.toDataURL();if(u.length<b.length){var v=document.createElement("canvas");v.width=k;v.height=p;var H=v.toDataURL();u!==H&&(b=u,c=k,f=p)}}}catch(D){}d(b,c,f)};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,d){try{var c=new Image;c.onload=function(){c.width=0<c.width?c.width:120;c.height=0<c.height?c.height:
120;b(c)};null!=d&&(c.onerror=d);c.src=a}catch(p){if(null!=d)d(p);else throw p;}};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;Editor.isDarkMode()&&(b.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);b.cellEditor.editPlantUmlData=function(c,d,e){var f=JSON.parse(e);d=
new TextareaDialog(a,mxResources.get("plantUml")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(d,f.format,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==f.format)b.labelChanged(c,"<pre>"+e+"</pre>"),b.updateCellSize(c,!0);else{b.setCellStyles("image",a.convertDataUri(e),[c]);var n=b.model.getGeometry(c);null!=n&&(n=n.clone(),n.width=g,n.height=k,b.cellsResized([c],[n],!1))}b.setAttributeForCell(c,"plantUmlData",
-JSON.stringify({data:d,format:f.format}))}finally{b.getModel().endUpdate()}},function(c){a.handleError(c)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};b.cellEditor.editMermaidData=function(c,d,e){var f=JSON.parse(e);d=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(d,f.config,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
-e,[c]);var n=b.model.getGeometry(c);null!=n&&(n=n.clone(),n.width=Math.max(n.width,g),n.height=Math.max(n.height,k),b.cellsResized([c],[n],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:d,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(c){a.handleError(c)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};var d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){try{var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=
-f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(K){a.handleError(K)}};b.getLinkTitle=function(c){return a.getLinkTitle(c)};b.customLinkClicked=function(c){var b=!1;try{a.handleCustomLink(c),b=!0}catch(H){a.handleError(H)}return b};var e=this.clearDefaultStyle;this.clearDefaultStyle=function(){e.apply(this,
+JSON.stringify({data:d,format:f.format}))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};b.cellEditor.editMermaidData=function(c,d,e){var f=JSON.parse(e);d=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(d,f.config,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
+e,[c]);var n=b.model.getGeometry(c);null!=n&&(n=n.clone(),n.width=Math.max(n.width,g),n.height=Math.max(n.height,k),b.cellsResized([c],[n],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:d,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};var d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){try{var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=
+f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(K){a.handleError(K)}};b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(H){a.handleError(H)}return c};var e=this.clearDefaultStyle;this.clearDefaultStyle=function(){e.apply(this,
arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var m=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1");return m.apply(this,arguments)};
var t=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};t.call(this,a,c,d)};l.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var q=Menus.prototype.addPopupMenuEditItems;
this.menus.addPopupMenuEditItems=function(c,b,d){a.editor.graph.isSelectionEmpty()?q.apply(this,arguments):a.menus.addMenuItems(c,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var u=b.getExportVariables;b.getExportVariables=function(){var c=u.apply(this,arguments),b=a.getCurrentFile();null!=
@@ -3555,9 +3556,9 @@ f?c.innerHTML:mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerTe
this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[b],"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var b=this.extractGraphModelFromEvent(a);
if(null==b){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?b=d.getData("Text"):(b=null,b=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=b&&0<b.length?(d=document.createElement("div"),d.innerHTML=this.editor.graph.sanitizeHtml(b),d=d.getElementsByTagName("img"),0<d.length&&(b=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,
"text/plain")&&(b=d.getData("text/plain"))),null!=b&&("data:image/png;base64,"==b.substring(0,22)?(b=this.extractGraphModelFromPng(b),null!=b&&0<b.length&&this.openLocalFile(b,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(b)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(b))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(b)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):
-window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var c=0,b=0,d,e;if(null==a){e=document.body;var m=document.documentElement;d=(e.clientWidth||m.clientWidth)-3;e=Math.max(e.clientHeight||0,m.clientHeight)-3}else c=a.offsetTop,b=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;m=document.createElement("div");
-m.style.zIndex=mxPopupMenu.prototype.zIndex+2;m.style.border="3px dotted rgb(254, 137, 12)";m.style.pointerEvents="none";m.style.position="absolute";m.style.top=c+"px";m.style.left=b+"px";m.style.width=Math.max(0,d-3)+"px";m.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(m):document.body.appendChild(m);return m};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var c=this.editor.extractGraphModel(a.documentElement);
-a=[];if(null!=c){var b=new mxCodec(c.ownerDocument),d=new mxGraphModel;b.decode(c,d);c=d.getChildAt(d.getRoot(),0);for(b=0;b<d.getChildCount(c);b++)a.push(d.getChildAt(c,b))}return a};EditorUi.prototype.openFileHandle=function(a,b,d,e,m){if(null!=b&&0<b.length){!this.useCanvasForExport&&/(\.png)$/i.test(b)?b=b.substring(0,b.length-4)+".drawio":/(\.pdf)$/i.test(b)&&(b=b.substring(0,b.length-4)+".drawio");var c=mxUtils.bind(this,function(a){b=0<=b.lastIndexOf(".")?b.substring(0,b.lastIndexOf("."))+
+window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var m=document.documentElement;d=(e.clientWidth||m.clientWidth)-3;e=Math.max(e.clientHeight||0,m.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;m=document.createElement("div");
+m.style.zIndex=mxPopupMenu.prototype.zIndex+2;m.style.border="3px dotted rgb(254, 137, 12)";m.style.pointerEvents="none";m.style.position="absolute";m.style.top=b+"px";m.style.left=c+"px";m.style.width=Math.max(0,d-3)+"px";m.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(m):document.body.appendChild(m);return m};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);
+a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFileHandle=function(a,b,d,e,m){if(null!=b&&0<b.length){!this.useCanvasForExport&&/(\.png)$/i.test(b)?b=b.substring(0,b.length-4)+".drawio":/(\.pdf)$/i.test(b)&&(b=b.substring(0,b.length-4)+".drawio");var c=mxUtils.bind(this,function(a){b=0<=b.lastIndexOf(".")?b.substring(0,b.lastIndexOf("."))+
".drawio":b+".drawio";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,a,b))}catch(F){this.handleError(F,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,b,e)});if(/(\.v(dx|sdx?))($|\?)/i.test(b)||/(\.vs(x|sx?))($|\?)/i.test(b))this.importVisio(d,mxUtils.bind(this,function(a){this.spinner.stop();c(a)}));else if(/(\.*<graphml )/.test(a))this.importGraphML(a,
mxUtils.bind(this,function(a){this.spinner.stop();c(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,b))this.parseFile(d,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?c(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(a))/(\.json)$/i.test(b)&&(b=b.substring(0,
b.length-5)+".drawio"),this.convertLucidChart(a,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,b,e)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));else if("<mxlibrary"==a.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,a,d.name))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}else if(0==
@@ -3572,7 +3573,7 @@ this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.me
this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,a,{}));this.mode=App.MODE_EMBED;this.setFileData(a);this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=d?d:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&
(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=
function(a){var b=null,c=!1,d=!1,e=null,m=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,m);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var g=f.data,k=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&
-"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(na){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(ba){g=null}try{if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):
+"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(ma){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(ba){g=null}try{if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):
g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("layout"==g.action){this.executeLayoutList(g.layouts);return}if("prompt"==g.action){this.spinner.stop();var m=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):g.ok,function(a){null!=a?l.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*"):l.postMessage(JSON.stringify({event:"prompt-cancel",
message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(m.container,300,80,!0,!1);m.init();return}if("draft"==g.action){var p=k(g.xml);this.spinner.stop();m=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),p,mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"discard",
message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(m.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{m.init()}catch(ba){l.postMessage(JSON.stringify({event:"draft",error:ba.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();
@@ -3584,9 +3585,9 @@ b.message=g;b.data=a;b.xml=I;l.postMessage(JSON.stringify(b),"*")}),n=mxUtils.bi
this.currentPage.getId()!=B){for(var C=R.getGlobalVariable,R=this.createTemporaryGraph(R.getStylesheet()),F,E=0;E<this.pages.length;E++)if(this.pages[E].getId()==B){F=this.updatePageRoot(this.pages[E]);break}null==F&&(F=this.currentPage);R.getGlobalVariable=function(a){return"page"==a?F.getName():"pagenumber"==a?1:C.apply(this,arguments)};document.body.appendChild(R.container);R.model.setRoot(F.root)}if(null!=g.layerIds){for(var U=R.model,Y=U.getChildCells(U.getRoot()),m={},E=0;E<g.layerIds.length;E++)m[g.layerIds[E]]=
!0;for(E=0;E<Y.length;E++)U.setVisible(Y[E],m[Y[E].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){n(a.toDataURL("image/png"))}),g.width,null,g.background,mxUtils.bind(this,function(){n(null)}),null,null,g.scale,g.transparent,g.shadow,null,R,g.border,null,g.grid,g.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=B?"&pageId="+B:"")+(null!=g.layerIds&&0<g.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):
"")+(null!=g.scale?"&scale="+g.scale:"")+"&base64=1&xml="+encodeURIComponent(I))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?N("data:image/png;base64,"+a.getText()):n(null)}),mxUtils.bind(this,function(){n(null)}))}}else{null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(g.xml),c=!1);A=this.createLoadMessage("export");A.message=g;if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var X=this.getXmlFileData();A.xml=
-mxUtils.getXml(X);A.data=this.getFileData(null,null,!0,null,null,null,X);A.format=g.format}else if("html"==g.format)I=this.editor.getGraphXml(),A.data=this.getHtml(I,this.editor.graph),A.xml=mxUtils.getXml(I),A.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ma=null!=g.background?g.background:this.editor.graph.background;ma==mxConstants.NONE&&(ma=null);A.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);A.format="svg";var pa=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();A.data=Editor.createSvgDataUri(a);l.postMessage(JSON.stringify(A),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(A.xml,this.editor.graph,null,!0,pa,null,null,g.embedImages,ma,g.scale,g.border,g.shadow,g.keepTheme);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);
-var Z=this.editor.graph.getSvg(ma,g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(Z);this.embedFonts(Z,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){pa(mxUtils.getXml(a))})):pa(mxUtils.getXml(a))}))}return}l.postMessage(JSON.stringify(A),"*")}return}if("load"==g.action){d=1==g.autosave;this.hideDialog();
+mxUtils.getXml(X);A.data=this.getFileData(null,null,!0,null,null,null,X);A.format=g.format}else if("html"==g.format)I=this.editor.getGraphXml(),A.data=this.getHtml(I,this.editor.graph),A.xml=mxUtils.getXml(I),A.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var la=null!=g.background?g.background:this.editor.graph.background;la==mxConstants.NONE&&(la=null);A.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);A.format="svg";var pa=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+this.spinner.stop();A.data=Editor.createSvgDataUri(a);l.postMessage(JSON.stringify(A),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(A.xml,this.editor.graph,null,!0,pa,null,null,g.embedImages,la,g.scale,g.border,g.shadow,g.keepTheme);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);
+var Z=this.editor.graph.getSvg(la,g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(Z);this.embedFonts(Z,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){pa(mxUtils.getXml(a))})):pa(mxUtils.getXml(a))}))}return}l.postMessage(JSON.stringify(A),"*")}return}if("load"==g.action){d=1==g.autosave;this.hideDialog();
null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified);null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit);null!=g.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=g.noSaveBtn);null!=g.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=g.noExitBtn);null!=g.title&&null!=this.buttonContainer&&(p=document.createElement("span"),mxUtils.write(p,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop=
"6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(p),this.embedFilenameSpan=p);try{g.libs&&this.sidebar.showEntries(g.libs)}catch(ba){}g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):null!=g.descriptor?g.descriptor:g.xml}else{if("merge"==
g.action){var ha=this.getCurrentFile();null!=ha&&(p=k(g.xml),null!=p&&""!=p&&ha.mergeFile(new LocalFile(this,p),function(){l.postMessage(JSON.stringify({event:"merge",message:g}),"*")},function(a){l.postMessage(JSON.stringify({event:"merge",message:g,error:a}),"*")}))}else"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(l):"remoteInvoke"==g.action?this.handleRemoteInvoke(g,f.origin):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):l.postMessage(JSON.stringify({error:"unknownMessage",
@@ -3601,20 +3602,20 @@ arguments);l.postMessage(JSON.stringify({event:"openLink",href:a,target:b,allowO
d),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b),d=b);d.style.marginRight="20px";this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,
mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),e=0;e<a.length;e++){var f=new window[a[e].layout](c);if(null!=a[e].config)for(var m in a[e].config)f[m]=
a[e].config[m];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var m={},l=null,q=null,u=null,z=null,L=null,M=null,G=null,J=null,H=null,D="",K="auto",I="auto",R=null,N=null,n=40,B=40,C=100,ka=0,E=this.editor.graph;E.getGraphBounds();for(var U=function(){null!=b?b(sa):(E.setSelectionCells(sa),E.scrollCellToVisible(E.getSelectionCell()))},Y=E.getFreeInsertPoint(),
-X=Y.x,ma=Y.y,Y=ma,pa=null,Z="auto",H=null,ha=[],ia=null,fa=null,ba=0;ba<c.length&&"#"==c[ba].charAt(0);){a=c[ba];for(ba++;ba<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ba].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ba].substring(1)),ba++;if("#"!=a.charAt(1)){var na=a.indexOf(":");if(0<na){var V=mxUtils.trim(a.substring(1,na)),Q=mxUtils.trim(a.substring(na+1));"label"==V?pa=E.sanitizeHtml(Q):"labelname"==V&&0<Q.length&&"-"!=Q?L=Q:"labels"==V&&0<Q.length&&"-"!=Q?M=JSON.parse(Q):"style"==
+X=Y.x,la=Y.y,Y=la,pa=null,Z="auto",H=null,ha=[],ia=null,fa=null,ba=0;ba<c.length&&"#"==c[ba].charAt(0);){a=c[ba];for(ba++;ba<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ba].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ba].substring(1)),ba++;if("#"!=a.charAt(1)){var ma=a.indexOf(":");if(0<ma){var V=mxUtils.trim(a.substring(1,ma)),Q=mxUtils.trim(a.substring(ma+1));"label"==V?pa=E.sanitizeHtml(Q):"labelname"==V&&0<Q.length&&"-"!=Q?L=Q:"labels"==V&&0<Q.length&&"-"!=Q?M=JSON.parse(Q):"style"==
V?q=Q:"parentstyle"==V?G=Q:"stylename"==V&&0<Q.length&&"-"!=Q?z=Q:"styles"==V&&0<Q.length&&"-"!=Q?u=JSON.parse(Q):"vars"==V&&0<Q.length&&"-"!=Q?l=JSON.parse(Q):"identity"==V&&0<Q.length&&"-"!=Q?J=Q:"parent"==V&&0<Q.length&&"-"!=Q?H=Q:"namespace"==V&&0<Q.length&&"-"!=Q?D=Q:"width"==V?K=Q:"height"==V?I=Q:"left"==V&&0<Q.length?R=Q:"top"==V&&0<Q.length?N=Q:"ignore"==V?fa=Q.split(","):"connect"==V?ha.push(JSON.parse(Q)):"link"==V?ia=Q:"padding"==V?ka=parseFloat(Q):"edgespacing"==V?n=parseFloat(Q):"nodespacing"==
-V?B=parseFloat(Q):"levelspacing"==V?C=parseFloat(Q):"layout"==V&&(Z=Q)}}}if(null==c[ba])throw Error(mxResources.get("invalidOrMissingFile"));for(var oa=this.editor.csvToArray(c[ba]),V=na=null,Q=[],T=0;T<oa.length;T++)J==oa[T]&&(na=T),H==oa[T]&&(V=T),Q.push(mxUtils.trim(oa[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==pa&&(pa="%"+Q[0]+"%");if(null!=ha)for(var ca=0;ca<ha.length;ca++)null==m[ha[ca].to]&&(m[ha[ca].to]={});J=[];for(T=ba+1;T<c.length;T++){var ja=this.editor.csvToArray(c[T]);
-if(null==ja){var ra=40<c[T].length?c[T].substring(0,40)+"...":c[T];throw Error(ra+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<ja.length&&J.push(ja)}E.model.beginUpdate();try{for(T=0;T<J.length;T++){var ja=J[T],O=null,ga=null!=na?D+ja[na]:null;null!=ga&&(O=E.model.getCell(ga));var c=null!=O,ea=new mxCell(pa,new mxGeometry(X,Y,0,0),q||"whiteSpace=wrap;html=1;");ea.vertex=!0;ea.id=ga;for(var S=0;S<ja.length;S++)E.setAttributeForCell(ea,Q[S],ja[S]);if(null!=L&&null!=M){var ya=M[ea.getAttribute(L)];
-null!=ya&&E.labelChanged(ea,ya)}if(null!=z&&null!=u){var P=u[ea.getAttribute(z)];null!=P&&(ea.style=P)}E.setAttributeForCell(ea,"placeholders","1");ea.style=E.replacePlaceholders(ea,ea.style,l);c&&(E.model.setGeometry(O,ea.geometry),E.model.setStyle(O,ea.style),0>mxUtils.indexOf(e,O)&&e.push(O));O=ea;if(!c)for(ca=0;ca<ha.length;ca++)m[ha[ca].to][O.getAttribute(ha[ca].to)]=O;null!=ia&&"link"!=ia&&(E.setLinkForCell(O,O.getAttribute(ia)),E.setAttributeForCell(O,ia,null));E.fireEvent(new mxEventObject("cellsInserted",
-"cells",[O]));var aa=this.editor.graph.getPreferredSizeForCell(O);O.vertex&&(null!=R&&null!=O.getAttribute(R)&&(O.geometry.x=X+parseFloat(O.getAttribute(R))),null!=N&&null!=O.getAttribute(N)&&(O.geometry.y=ma+parseFloat(O.getAttribute(N))),"@"==K.charAt(0)&&null!=O.getAttribute(K.substring(1))?O.geometry.width=parseFloat(O.getAttribute(K.substring(1))):O.geometry.width="auto"==K?aa.width+ka:parseFloat(K),"@"==I.charAt(0)&&null!=O.getAttribute(I.substring(1))?O.geometry.height=parseFloat(O.getAttribute(I.substring(1))):
+V?B=parseFloat(Q):"levelspacing"==V?C=parseFloat(Q):"layout"==V&&(Z=Q)}}}if(null==c[ba])throw Error(mxResources.get("invalidOrMissingFile"));for(var na=this.editor.csvToArray(c[ba]),V=ma=null,Q=[],T=0;T<na.length;T++)J==na[T]&&(ma=T),H==na[T]&&(V=T),Q.push(mxUtils.trim(na[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==pa&&(pa="%"+Q[0]+"%");if(null!=ha)for(var ca=0;ca<ha.length;ca++)null==m[ha[ca].to]&&(m[ha[ca].to]={});J=[];for(T=ba+1;T<c.length;T++){var ja=this.editor.csvToArray(c[T]);
+if(null==ja){var ra=40<c[T].length?c[T].substring(0,40)+"...":c[T];throw Error(ra+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<ja.length&&J.push(ja)}E.model.beginUpdate();try{for(T=0;T<J.length;T++){var ja=J[T],O=null,ga=null!=ma?D+ja[ma]:null;null!=ga&&(O=E.model.getCell(ga));var c=null!=O,ea=new mxCell(pa,new mxGeometry(X,Y,0,0),q||"whiteSpace=wrap;html=1;");ea.vertex=!0;ea.id=ga;for(var S=0;S<ja.length;S++)E.setAttributeForCell(ea,Q[S],ja[S]);if(null!=L&&null!=M){var za=M[ea.getAttribute(L)];
+null!=za&&E.labelChanged(ea,za)}if(null!=z&&null!=u){var P=u[ea.getAttribute(z)];null!=P&&(ea.style=P)}E.setAttributeForCell(ea,"placeholders","1");ea.style=E.replacePlaceholders(ea,ea.style,l);c&&(E.model.setGeometry(O,ea.geometry),E.model.setStyle(O,ea.style),0>mxUtils.indexOf(e,O)&&e.push(O));O=ea;if(!c)for(ca=0;ca<ha.length;ca++)m[ha[ca].to][O.getAttribute(ha[ca].to)]=O;null!=ia&&"link"!=ia&&(E.setLinkForCell(O,O.getAttribute(ia)),E.setAttributeForCell(O,ia,null));E.fireEvent(new mxEventObject("cellsInserted",
+"cells",[O]));var aa=this.editor.graph.getPreferredSizeForCell(O);O.vertex&&(null!=R&&null!=O.getAttribute(R)&&(O.geometry.x=X+parseFloat(O.getAttribute(R))),null!=N&&null!=O.getAttribute(N)&&(O.geometry.y=la+parseFloat(O.getAttribute(N))),"@"==K.charAt(0)&&null!=O.getAttribute(K.substring(1))?O.geometry.width=parseFloat(O.getAttribute(K.substring(1))):O.geometry.width="auto"==K?aa.width+ka:parseFloat(K),"@"==I.charAt(0)&&null!=O.getAttribute(I.substring(1))?O.geometry.height=parseFloat(O.getAttribute(I.substring(1))):
O.geometry.height="auto"==I?aa.height+ka:parseFloat(I),Y+=O.geometry.height+B);c?(null==f[ga]&&(f[ga]=[]),f[ga].push(O)):(H=null!=V?E.model.getCell(D+ja[V]):null,d.push(O),null!=H?(H.style=E.replacePlaceholders(H,G,l),E.addCell(O,H)):e.push(E.addCell(O)))}for(var qa=e.slice(),sa=e.slice(),ca=0;ca<ha.length;ca++)for(var ta=ha[ca],T=0;T<d.length;T++){var O=d[T],Fa=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d&&(E.setAttributeForCell(b,c.from,null),""!=d))for(var d=d.split(","),
e=0;e<d.length;e++){var f=m[c.to][d[e]];if(null!=f){var g=c.label;null!=c.fromlabel&&(g=(b.getAttribute(c.fromlabel)||"")+(g||""));null!=c.sourcelabel&&(g=E.replacePlaceholders(b,c.sourcelabel,l)+(g||""));null!=c.tolabel&&(g=(g||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(g=(g||"")+E.replacePlaceholders(f,c.targetlabel,l));var k="target"==c.placeholders==!c.invert?f:a,k=null!=c.style?E.replacePlaceholders(k,c.style,l):E.createCurrentEdgeStyle(),g=E.insertEdge(null,null,g||"",c.invert?
f:a,c.invert?a:f,k);if(null!=c.labels)for(k=0;k<c.labels.length;k++){var n=c.labels[k],p=new mxCell(n.label||k,new mxGeometry(null!=n.x?n.x:0,null!=n.y?n.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=n.placeholders&&(p.value=E.replacePlaceholders("target"==n.placeholders==!c.invert?f:a,p.value,l));if(null!=n.dx||null!=n.dy)p.geometry.offset=new mxPoint(null!=n.dx?n.dx:0,null!=n.dy?n.dy:0);g.insert(p)}sa.push(g);mxUtils.remove(c.invert?a:f,qa)}}});Fa(O,O,
ta);if(null!=f[O.id])for(S=0;S<f[O.id].length;S++)Fa(O,f[O.id][S],ta)}if(null!=fa)for(T=0;T<d.length;T++)for(O=d[T],S=0;S<fa.length;S++)E.setAttributeForCell(O,mxUtils.trim(fa[S]),null);if(0<e.length){var Da=new mxParallelEdgeLayout(E);Da.spacing=n;Da.checkOverlap=!0;var Ga=function(){0<Da.spacing&&Da.execute(E.getDefaultParent());for(var a=0;a<e.length;a++){var b=E.getCellGeometry(e[a]);b.x=Math.round(E.snap(b.x));b.y=Math.round(E.snap(b.y));"auto"==K&&(b.width=Math.round(E.snap(b.width)));"auto"==
I&&(b.height=Math.round(E.snap(b.height)))}};if("["==Z.charAt(0)){var Ja=U;E.view.validate();this.executeLayoutList(JSON.parse(Z),function(){Ga();Ja()});U=null}else if("circle"==Z){var xa=new mxCircleLayout(E);xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Ia=xa.isVertexIgnored;xa.isVertexIgnored=function(a){return Ia.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){xa.execute(E.getDefaultParent());Ga()},!0,U);U=null}else if("horizontaltree"==Z||"verticaltree"==Z||"auto"==
-Z&&sa.length==2*e.length-1&&1==qa.length){E.view.validate();var za=new mxCompactTreeLayout(E,"horizontaltree"==Z);za.levelDistance=B;za.edgeRouting=!1;za.resetEdges=!1;this.executeLayout(function(){za.execute(E.getDefaultParent(),0<qa.length?qa[0]:null)},!0,U);U=null}else if("horizontalflow"==Z||"verticalflow"==Z||"auto"==Z&&1==qa.length){E.view.validate();var ua=new mxHierarchicalLayout(E,"horizontalflow"==Z?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ua.intraCellSpacing=B;ua.parallelEdgeSpacing=
-n;ua.interRankCellSpacing=C;ua.disableEdgeStyle=!1;this.executeLayout(function(){ua.execute(E.getDefaultParent(),sa);E.moveCells(sa,X,ma)},!0,U);U=null}else if("organic"==Z||"auto"==Z&&sa.length>e.length){E.view.validate();var wa=new mxFastOrganicLayout(E);wa.forceConstant=3*B;wa.disableEdgeStyle=!1;wa.resetEdges=!1;var W=wa.isVertexIgnored;wa.isVertexIgnored=function(a){return W.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){wa.execute(E.getDefaultParent());Ga()},!0,
-U);U=null}}this.hideDialog()}finally{E.model.endUpdate()}null!=U&&U()}}catch(Aa){this.handleError(Aa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==
+Z&&sa.length==2*e.length-1&&1==qa.length){E.view.validate();var Aa=new mxCompactTreeLayout(E,"horizontaltree"==Z);Aa.levelDistance=B;Aa.edgeRouting=!1;Aa.resetEdges=!1;this.executeLayout(function(){Aa.execute(E.getDefaultParent(),0<qa.length?qa[0]:null)},!0,U);U=null}else if("horizontalflow"==Z||"verticalflow"==Z||"auto"==Z&&1==qa.length){E.view.validate();var ua=new mxHierarchicalLayout(E,"horizontalflow"==Z?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ua.intraCellSpacing=B;ua.parallelEdgeSpacing=
+n;ua.interRankCellSpacing=C;ua.disableEdgeStyle=!1;this.executeLayout(function(){ua.execute(E.getDefaultParent(),sa);E.moveCells(sa,X,la)},!0,U);U=null}else if("organic"==Z||"auto"==Z&&sa.length>e.length){E.view.validate();var va=new mxFastOrganicLayout(E);va.forceConstant=3*B;va.disableEdgeStyle=!1;va.resetEdges=!1;var W=va.isVertexIgnored;va.isVertexIgnored=function(a){return W.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){va.execute(E.getDefaultParent());Ga()},!0,
+U);U=null}}this.hideDialog()}finally{E.model.endUpdate()}null!=U&&U()}}catch(Ba){this.handleError(Ba)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==
urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,d,e,m){a=new LinkDialog(this,a,b,d,!0,e,m);this.showDialog(a.container,560,130,!0,!0);a.init()};var m=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=
m.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&
null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-
@@ -3853,19 +3854,19 @@ q.insertBefore(g,l.statusContainer):q.appendChild(g);null!=f?(g.style.background
"relative";c.style.top="0px";"1"==urlParams.sketch&&(c.style.boxShadow="none");for(var d=0;d<a.length;d++)null!=a[d]&&("1"==urlParams.sketch&&(a[d].style.padding="10px 8px",a[d].style.width="30px"),a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=l.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(c,l.statusContainer):q.appendChild(c);return c}function g(){for(var a=q.firstChild;null!=a;){var b=a.nextSibling;"geMenuItem"!=a.className&&
"geItem"!=a.className||a.parentNode.removeChild(a);a=b}t=q.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(a=1E3>e||"1"==urlParams.sketch)||c("diagram");if("1"!=urlParams.sketch&&(f([a?c("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,d(mxResources.get("shapes"),l.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
null),d(mxResources.get("format"),l.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+l.actions.get("formatPanel").shortcut+")",l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
-null)],a?60:null),b=c("insert",!0,a?E:null),f([b,d(mxResources.get("delete"),l.actions.get("delete").funct,null,mxResources.get("delete"),l.actions.get("delete"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":null)],a?60:null),411<=e&&(f([ea,S],60),520<=e&&(f([ya,640<=e?d("",ba.funct,
-!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ba,na):null,640<=e?d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,Q):null],60),720<=e)))){var g=d("",ca.funct,null,mxResources.get("dark"),ca,Editor.isDarkMode()?ra:ja);g.style.opacity="0.4";l.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ra:ja)+")"}));null!=l.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(g,l.statusContainer):q.appendChild(g)}a=l.menus.get("language");
+null)],a?60:null),b=c("insert",!0,a?E:null),f([b,d(mxResources.get("delete"),l.actions.get("delete").funct,null,mxResources.get("delete"),l.actions.get("delete"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":null)],a?60:null),411<=e&&(f([ea,S],60),520<=e&&(f([za,640<=e?d("",ba.funct,
+!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ba,ma):null,640<=e?d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,Q):null],60),720<=e)))){var g=d("",ca.funct,null,mxResources.get("dark"),ca,Editor.isDarkMode()?ra:ja);g.style.opacity="0.4";l.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ra:ja)+")"}));null!=l.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(g,l.statusContainer):q.appendChild(g)}a=l.menus.get("language");
null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==ta&&(b=u.addMenu("",a.funct),b.setAttribute("title",mxResources.get("language")),b.className="geToolbarButton",b.style.backgroundImage="url("+Editor.globeImage+")",b.style.backgroundPosition="center center",b.style.backgroundRepeat="no-repeat",b.style.backgroundSize="24px 24px",b.style.position="absolute",b.style.height="24px",b.style.width="24px",b.style.zIndex="1",b.style.right="8px",b.style.cursor="pointer",
b.style.top="1"==urlParams.embed?"12px":"11px",q.appendChild(b),ta=b),l.buttonContainer.style.paddingRight="34px"):(l.buttonContainer.style.paddingRight="4px",null!=ta&&(ta.parentNode.removeChild(ta),ta=null))}y.apply(this,arguments);this.doSetDarkMode(mxSettings.settings.darkMode);var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";k.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=
-this.createSidebar(k);"1"==urlParams.sketch&&(this.toggleScratchpad(),this.editor.graph.isZoomWheelEvent=function(a){return!mxEvent.isAltDown(a)&&(!mxEvent.isControlDown(a)||mxClient.IS_MAC)});if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])b(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));this.keyHandler.bindAction(75,
-!0,"toggleShapes",!0);if("1"==urlParams.sketch||1E3<=e)if(a(this,!0),"1"==urlParams.sketch){this.formatWindow.window.setClosable(!1);var m=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){m.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width="240px",this.div.style.left=parseInt(this.div.style.left)-
-150+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(){this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var l=this,p=l.editor.graph;l.toolbar=this.createToolbar(l.createDiv("geToolbar"));l.defaultLibraryName=mxResources.get("untitledLibrary");var q=document.createElement("div");q.className="geMenubarContainer";var t=null,u=new Menubar(l,q);l.statusContainer=l.createStatusContainer();l.statusContainer.style.position=
-"relative";l.statusContainer.style.maxWidth="";l.statusContainer.style.marginTop="7px";l.statusContainer.style.marginLeft="6px";l.statusContainer.style.color="gray";l.statusContainer.style.cursor="default";var n=l.hideCurrentMenu;l.hideCurrentMenu=function(){n.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=l.descriptorChanged;l.descriptorChanged=function(){v.apply(this,arguments);var a=l.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=a.getMode();"google"==b?b="googleDrive":
-"github"==b?b="gitHub":"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);q.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else q.removeAttribute("title")};l.setStatusText(l.editor.getStatus());q.appendChild(l.statusContainer);l.buttonContainer=document.createElement("div");l.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";q.appendChild(l.buttonContainer);l.menubarContainer=
-l.buttonContainer;l.tabContainer=document.createElement("div");l.tabContainer.className="geTabContainer";l.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var k=l.diagramContainer.parentNode,A=document.createElement("div");A.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";l.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var F=l.menus.get("viewZoom"),
-E="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
+this.createSidebar(k);"1"==urlParams.sketch&&(this.toggleScratchpad(),this.editor.graph.isZoomWheelEvent=function(a){return!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)&&(!mxEvent.isControlDown(a)||mxClient.IS_MAC)});if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])b(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),
+this.sidebar.showEntries("search"));this.keyHandler.bindAction(75,!0,"toggleShapes",!0);if("1"==urlParams.sketch||1E3<=e)if(a(this,!0),"1"==urlParams.sketch){this.formatWindow.window.setClosable(!1);var m=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){m.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width=
+"240px",this.div.style.left=parseInt(this.div.style.left)-150+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(){this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var l=this,p=l.editor.graph;l.toolbar=this.createToolbar(l.createDiv("geToolbar"));l.defaultLibraryName=mxResources.get("untitledLibrary");var q=document.createElement("div");q.className="geMenubarContainer";var t=null,u=new Menubar(l,q);l.statusContainer=
+l.createStatusContainer();l.statusContainer.style.position="relative";l.statusContainer.style.maxWidth="";l.statusContainer.style.marginTop="7px";l.statusContainer.style.marginLeft="6px";l.statusContainer.style.color="gray";l.statusContainer.style.cursor="default";var n=l.hideCurrentMenu;l.hideCurrentMenu=function(){n.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=l.descriptorChanged;l.descriptorChanged=function(){v.apply(this,arguments);var a=l.getCurrentFile();if(null!=
+a&&null!=a.getTitle()){var b=a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);q.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else q.removeAttribute("title")};l.setStatusText(l.editor.getStatus());q.appendChild(l.statusContainer);l.buttonContainer=document.createElement("div");l.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";
+q.appendChild(l.buttonContainer);l.menubarContainer=l.buttonContainer;l.tabContainer=document.createElement("div");l.tabContainer.className="geTabContainer";l.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var k=l.diagramContainer.parentNode,A=document.createElement("div");A.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";l.diagramContainer.style.top="1"==urlParams.sketch?
+"0px":"47px";var F=l.menus.get("viewZoom"),E="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
U="1"==urlParams.sketch?document.createElement("div"):null,Y="1"==urlParams.sketch?document.createElement("div"):null,X="1"==urlParams.sketch?document.createElement("div"):null;l.addListener("darkModeChanged",mxUtils.bind(this,function(){if(null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(p.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch)){this.scratchpad=null;this.toggleScratchpad();var a=l.actions.outlineWindow;
-null!=a&&(a.outline.outline.stylesheet.styles=mxUtils.clone(p.stylesheet.styles),l.actions.outlineWindow.update())}p.refresh();p.view.validateBackground()}));if("1"==urlParams.sketch){if(null!=p.freehand){p.freehand.setAutoInsert(!0);p.freehand.setAutoScroll(!0);p.freehand.setOpenFill(!0);var ma=p.freehand.createStyle;p.freehand.createStyle=function(a){return ma.apply(this,arguments)+"sketch=0;"};Graph.touchStyle&&(p.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&
+null!=a&&(a.outline.outline.stylesheet.styles=mxUtils.clone(p.stylesheet.styles),l.actions.outlineWindow.update())}p.refresh();p.view.validateBackground()}));if("1"==urlParams.sketch){if(null!=p.freehand){p.freehand.setAutoInsert(!0);p.freehand.setAutoScroll(!0);p.freehand.setOpenFill(!0);var la=p.freehand.createStyle;p.freehand.createStyle=function(a){return la.apply(this,arguments)+"sketch=0;"};Graph.touchStyle&&(p.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&
!mxEvent.isMouseEvent(b)&&!p.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=l.hoverIcons){var pa=l.hoverIcons.update;l.hoverIcons.update=function(){p.freehand.isDrawing()||pa.apply(this,arguments)}}}Y.className="geToolbarContainer";U.className="geToolbarContainer";X.className="geToolbarContainer";q.className="geToolbarContainer";l.picker=Y;var Z=!1;mxEvent.addListener(q,"mouseenter",function(){l.statusContainer.style.display=
"inline-block"});mxEvent.addListener(q,"mouseleave",function(){Z||(l.statusContainer.style.display="none")});var ha=mxUtils.bind(this,function(a){null!=l.notificationBtn&&(null!=a?l.notificationBtn.setAttribute("title",a):l.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed&&l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus());if(0==l.statusContainer.children.length||1==l.statusContainer.children.length&&null==l.statusContainer.firstChild.getAttribute("class")){null!=
l.statusContainer.firstChild?ha(l.statusContainer.firstChild.getAttribute("title")):ha(l.editor.getStatus());var a=l.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=l.notificationBtn&&l.notificationBtn.getAttribute("title")==mxResources.get(a)+"..."?(l.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',l.statusContainer.style.display="inline-block",Z=!0):(l.statusContainer.style.display="none",
@@ -3877,15 +3878,15 @@ Z=!1)}else l.statusContainer.style.display="inline-block",ha(null),Z=!0}));P=c("
b.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));b.style.borderBottom="1px solid lightgray";b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(l.actions.get("insertFreehand"),mxResources.get("freehand"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTQuNSw4YzEuMDQsMCwyLjM0LTEuNSw0LjI1LTEuNWMxLjUyLDAsMi43NSwxLjIzLDIuNzUsMi43NWMwLDIuMDQtMS45OSwzLjE1LTMuOTEsNC4yMkM1LjQyLDE0LjY3LDQsMTUuNTcsNCwxNyBjMCwxLjEsMC45LDIsMiwydjJjLTIuMjEsMC00LTEuNzktNC00YzAtMi43MSwyLjU2LTQuMTQsNC42Mi01LjI4YzEuNDItMC43OSwyLjg4LTEuNiwyLjg4LTIuNDdjMC0wLjQxLTAuMzQtMC43NS0wLjc1LTAuNzUgQzcuNSw4LjUsNi4yNSwxMCw0LjUsMTBDMy4xMiwxMCwyLDguODgsMiw3LjVDMiw1LjQ1LDQuMTcsMi44Myw1LDJsMS40MSwxLjQxQzUuNDEsNC40Miw0LDYuNDMsNCw3LjVDNCw3Ljc4LDQuMjIsOCw0LjUsOHogTTgsMjEgbDMuNzUsMGw4LjA2LTguMDZsLTMuNzUtMy43NUw4LDE3LjI1TDgsMjF6IE0xMCwxOC4wOGw2LjA2LTYuMDZsMC45MiwwLjkyTDEwLjkyLDE5TDEwLDE5TDEwLDE4LjA4eiBNMjAuMzcsNi4yOSBjLTAuMzktMC4zOS0xLjAyLTAuMzktMS40MSwwbC0xLjgzLDEuODNsMy43NSwzLjc1bDEuODMtMS44M2MwLjM5LTAuMzksMC4zOS0xLjAyLDAtMS40MUwyMC4zNyw2LjI5eiIvPjwvc3ZnPg==");
var c=l.actions.get("toggleShapes");b(c,mxResources.get("shapes")+" ("+c.shortcut+")",E);b(l.actions.get("insertTemplate"),mxResources.get("template"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==")});
ia();l.addListener("darkModeChanged",mxUtils.bind(this,function(){ia()}))}else l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus())}));if(null!=F){var fa=function(){p.popupMenuHandler.hideMenu();var a=p.view.scale,b=p.view.translate.x,c=p.view.translate.y;l.actions.get("resetView").funct();1E-5>Math.abs(a-p.view.scale)&&b==p.view.translate.x&&c==p.view.translate.y&&l.actions.get(p.pageVisible?"fitPage":"fitWindow").funct()},ba=l.actions.get("zoomIn"),
-na="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
+ma="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
V=l.actions.get("zoomOut"),Q="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg==",
-oa=l.actions.get("resetView"),T=l.actions.get("fullscreen"),ca=l.actions.get("toggleDarkMode"),ja="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
+na=l.actions.get("resetView"),T=l.actions.get("fullscreen"),ca=l.actions.get("toggleDarkMode"),ja="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
ra="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiw5YzEuNjUsMCwzLDEuMzUsMywzcy0xLjM1LDMtMywzcy0zLTEuMzUtMy0zUzEwLjM1LDksMTIsOSBNMTIsN2MtMi43NiwwLTUsMi4yNC01LDVzMi4yNCw1LDUsNXM1LTIuMjQsNS01IFMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDBjLTAuNTUsMC0xLDAuNDUtMSwxUzEuNDUsMTMsMiwxM3ogTTIwLDEzbDIsMGMwLjU1LDAsMS0wLjQ1LDEtMSBzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMVYyYzAtMC41NS0wLjQ1LTEtMS0xUzExLDEuNDUsMTEsMnogTTExLDIwdjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMUMxMS40NSwxOSwxMSwxOS40NSwxMSwyMHogTTUuOTksNC41OGMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDAgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBzMC4zOS0xLjAzLDAtMS40MUw1Ljk5LDQuNTh6IE0xOC4zNiwxNi45NSBjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgTDE4LjM2LDE2Ljk1eiBNMTkuNDIsNS45OWMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgczEuMDMsMC4zOSwxLjQxLDBMMTkuNDIsNS45OXogTTcuMDUsMTguMzZjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDFjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwbC0xLjA2LDEuMDYgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDcuMDUsMTguMzZ6Ii8+PC9zdmc+",
O=l.actions.get("undo"),ga=l.actions.get("redo"),ea=d("",O.funct,null,mxResources.get("undo")+" ("+O.shortcut+")",O,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),S=d("",ga.funct,null,mxResources.get("redo")+
-" ("+ga.shortcut+")",ga,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),ya=d("",fa,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",oa,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
-oa=d("",T.funct,null,mxResources.get("fullscreen"),T,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg==");if(null!=U){X.appendChild(ea);X.appendChild(S);F=function(){ea.style.display=0<l.editor.undoManager.history.length||
-p.isEditing()?"inline-block":"none";S.style.display=ea.style.display;ea.style.opacity=O.enabled?"0.4":"0.1";S.style.opacity=ga.enabled?"0.4":"0.1"};O.addListener("stateChanged",F);ga.addListener("stateChanged",F);F();T.visible&&(oa.style.opacity="0.4",U.appendChild(oa));T=d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",V,Q);T.style.opacity="0.4";U.appendChild(T);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+
-"/"+mxResources.get("resetView"));P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";U.appendChild(P);mxEvent.addListener(P,"click",fa);fa=d("",ba.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ba,na);fa.style.opacity="0.4";U.appendChild(fa);
+" ("+ga.shortcut+")",ga,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),za=d("",fa,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",na,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
+na=d("",T.funct,null,mxResources.get("fullscreen"),T,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg==");if(null!=U){X.appendChild(ea);X.appendChild(S);F=function(){ea.style.display=0<l.editor.undoManager.history.length||
+p.isEditing()?"inline-block":"none";S.style.display=ea.style.display;ea.style.opacity=O.enabled?"0.4":"0.1";S.style.opacity=ga.enabled?"0.4":"0.1"};O.addListener("stateChanged",F);ga.addListener("stateChanged",F);F();T.visible&&(na.style.opacity="0.4",U.appendChild(na));T=d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",V,Q);T.style.opacity="0.4";U.appendChild(T);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+
+"/"+mxResources.get("resetView"));P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";U.appendChild(P);mxEvent.addListener(P,"click",fa);fa=d("",ba.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ba,ma);fa.style.opacity="0.4";U.appendChild(fa);
var aa=this.createPageMenuTab(!1);aa.style.display="none";aa.style.position="";aa.style.marginLeft="";aa.style.top="";aa.style.left="";aa.style.height="100%";aa.style.lineHeight="";aa.style.borderStyle="none";aa.style.padding="3px 0";aa.style.margin="0px";aa.style.background="";aa.style.border="";aa.style.boxShadow="none";aa.style.verticalAlign="top";aa.firstChild.style.height="100%";aa.firstChild.style.opacity="0.6";aa.firstChild.style.margin="0px";U.appendChild(aa);var qa=d("",ca.funct,null,mxResources.get("dark"),
ca,Editor.isDarkMode()?ra:ja);qa.style.opacity="0.4";U.appendChild(qa);l.addListener("darkModeChanged",mxUtils.bind(this,function(){qa.style.backgroundImage="url("+(Editor.isDarkMode()?ra:ja)+")"}));l.addListener("fileDescriptorChanged",function(){aa.style.display="1"==urlParams.pages||null!=l.pages&&1<l.pages.length?"inline-block":"none"});l.tabContainer.style.visibility="hidden";q.style.cssText="position:absolute;right:20px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";
X.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";U.style.cssText="position:absolute;right:20px;bottom:20px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;background-color:#fff;";A.appendChild(X);A.appendChild(U);Y.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 10px 6px;white-space:nowrap;background-color:#fff;transform:translate(0, -50%);top:50%;";
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 8bfeae0a..2be631b3 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -205,7 +205,7 @@ function setCurrentXml(a,b){null!=window.parent&&null!=window.parent.openFile&&w
(function(){if("undefined"!==typeof JSON&&isLocalStorage)try{var a=localStorage.getItem(".drawio-config"),b=!0;null!=a&&(b=JSON.parse(a).showStartScreen);0==b&&(urlParams.splash="0")}catch(d){}a=urlParams["export"];null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),EXPORT_URL=a);a=urlParams.gitlab;null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];
null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=window.location.host;if("test.draw.io"!=a){var c="diagrams.net",b=a.length-c.length,c=a.lastIndexOf(c,b);-1!==c&&c===b?window.DRAWIO_LOG_URL="https://log.diagrams.net":(c="draw.io",b=a.length-c.length,c=a.lastIndexOf(c,b),-1!==c&&c===b&&(window.DRAWIO_LOG_URL="https://log.draw.io"))}})();
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";"trello"==urlParams.mode&&(urlParams.tr="1");"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"14.6.9",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"14.6.11",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||
0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -591,9 +591,10 @@ mxShape.prototype.paint=function(a){var b=!1;if(null!=a&&this.outline){var c=a.s
null!=this.stencil&&this.stencilPointerEvents){var n=this.createBoundingBox();this.dialect==mxConstants.DIALECT_SVG?(m=this.createTransparentSvgRectangle(n.x,n.y,n.width,n.height),this.node.appendChild(m)):(e=a.createRect("rect",n.x/e,n.y/e,n.width/e,n.height/e),e.appendChild(a.createTransparentFill()),e.stroked="false",a.root.appendChild(e))}null!=this.stencil?this.stencil.drawShape(a,this,f,g,k,l):(a.setStrokeWidth(this.strokewidth),e=this.getWaypoints(),null!=e?1<e.length&&this.paintEdgeShape(a,
e):this.paintVertexShape(a,f,g,k,l));null!=m&&null!=a.state&&null!=a.state.transform&&m.setAttribute("transform",a.state.transform);null!=a&&this.outline&&!b&&(a.rect(f,g,k,l),a.stroke())};mxShape.prototype.getWaypoints=function(){var a=this.points,b=null;if(null!=a&&(b=[],0<a.length)){var c=this.scale,d=Math.max(c,1),e=a[0];b.push(new mxPoint(e.x/c,e.y/c));for(var f=1;f<a.length;f++){var g=a[f];(Math.abs(e.x-g.x)>=d||Math.abs(e.y-g.y)>=d)&&b.push(new mxPoint(g.x/c,g.y/c));e=g}}return b};
mxShape.prototype.configureCanvas=function(a,b,c,d,e){var f=null;null!=this.style&&(f=this.style.dashPattern);a.setAlpha(this.opacity/100);a.setFillAlpha(this.fillOpacity/100);a.setStrokeAlpha(this.strokeOpacity/100);null!=this.isShadow&&a.setShadow(this.isShadow);null!=this.isDashed&&a.setDashed(this.isDashed,null!=this.style?1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1):!1);null!=f&&a.setDashPattern(f);null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?
-(b=this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b.x,b.y,b.width,b.height,this.gradientDirection)):a.setFillColor(this.fill);a.setStrokeColor(this.stroke);null==this.style||null!=this.fill&&this.fill!=mxConstants.NONE||"0"!=mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||(a.pointerEvents=!1)};mxShape.prototype.getGradientBounds=function(a,b,c,d,e){return new mxRectangle(b,c,d,e)};
-mxShape.prototype.updateTransform=function(a,b,c,d,e){a.scale(this.scale);a.rotate(this.getShapeRotation(),this.flipH,this.flipV,b+d/2,c+e/2)};mxShape.prototype.paintVertexShape=function(a,b,c,d,e){this.paintBackground(a,b,c,d,e);this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(a.setShadow(!1),this.paintForeground(a,b,c,d,e))};mxShape.prototype.paintBackground=function(a,b,c,d,e){};mxShape.prototype.paintForeground=function(a,b,c,d,e){};
-mxShape.prototype.paintEdgeShape=function(a,b){};mxShape.prototype.getArcSize=function(a,b){var c;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?c=Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,c=Math.min(a*c,b*c));return c};
+(b=this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b.x,b.y,b.width,b.height,this.gradientDirection)):a.setFillColor(this.fill);a.setStrokeColor(this.stroke);this.configurePointerEvents(a)};mxShape.prototype.configurePointerEvents=function(a){null==this.style||null!=this.fill&&this.fill!=mxConstants.NONE||"0"!=mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||(a.pointerEvents=!1)};
+mxShape.prototype.getGradientBounds=function(a,b,c,d,e){return new mxRectangle(b,c,d,e)};mxShape.prototype.updateTransform=function(a,b,c,d,e){a.scale(this.scale);a.rotate(this.getShapeRotation(),this.flipH,this.flipV,b+d/2,c+e/2)};mxShape.prototype.paintVertexShape=function(a,b,c,d,e){this.paintBackground(a,b,c,d,e);this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(a.setShadow(!1),this.paintForeground(a,b,c,d,e))};
+mxShape.prototype.paintBackground=function(a,b,c,d,e){};mxShape.prototype.paintForeground=function(a,b,c,d,e){};mxShape.prototype.paintEdgeShape=function(a,b){};
+mxShape.prototype.getArcSize=function(a,b){var c;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?c=Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,c=Math.min(a*c,b*c));return c};
mxShape.prototype.paintGlassEffect=function(a,b,c,d,e,f){var g=Math.ceil(this.strokewidth/2);a.setGradient("#ffffff","#ffffff",b,c,d,.6*e,"south",.9,.1);a.begin();f+=2*g;this.isRounded?(a.moveTo(b-g+f,c-g),a.quadTo(b-g,c-g,b-g,c-g+f),a.lineTo(b-g,c+.4*e),a.quadTo(b+.5*d,c+.7*e,b+d+g,c+.4*e),a.lineTo(b+d+g,c-g+f),a.quadTo(b+d+g,c-g,b+d+g-f,c-g)):(a.moveTo(b-g,c-g),a.lineTo(b-g,c+.4*e),a.quadTo(b+.5*d,c+.7*e,b+d+g,c+.4*e),a.lineTo(b+d+g,c-g));a.close();a.fill()};
mxShape.prototype.addPoints=function(a,b,c,d,e,f,g){if(null!=b&&0<b.length){g=null!=g?g:!0;var k=b[b.length-1];if(e&&c){b=b.slice();var l=b[0],l=new mxPoint(k.x+(l.x-k.x)/2,k.y+(l.y-k.y)/2);b.splice(0,0,l)}var m=b[0],l=1;for(g?a.moveTo(m.x,m.y):a.lineTo(m.x,m.y);l<(e?b.length:b.length-1);){g=b[mxUtils.mod(l,b.length)];var n=m.x-g.x,m=m.y-g.y;if(c&&(0!=n||0!=m)&&(null==f||0>mxUtils.indexOf(f,l-1))){var p=Math.sqrt(n*n+m*m);a.lineTo(g.x+n*Math.min(d,p/2)/p,g.y+m*Math.min(d,p/2)/p);for(m=b[mxUtils.mod(l+
1,b.length)];l<b.length-2&&0==Math.round(m.x-g.x)&&0==Math.round(m.y-g.y);)m=b[mxUtils.mod(l+2,b.length)],l++;n=m.x-g.x;m=m.y-g.y;p=Math.max(1,Math.sqrt(n*n+m*m));n=g.x+n*Math.min(d,p/2)/p;m=g.y+m*Math.min(d,p/2)/p;a.quadTo(g.x,g.y,n,m);g=new mxPoint(n,m)}else a.lineTo(g.x,g.y);m=g;l++}e?a.close():a.lineTo(k.x,k.y)}};
@@ -656,7 +657,7 @@ mxArrowConnector.prototype.isMarkerStart=function(){return mxUtils.getValue(this
function mxText(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,x,y,B,A,z){mxShape.call(this);this.value=a;this.bounds=b;this.color=null!=e?e:"black";this.align=null!=c?c:mxConstants.ALIGN_CENTER;this.valign=null!=d?d:mxConstants.ALIGN_MIDDLE;this.family=null!=f?f:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(m||0);this.spacingRight=this.spacing+parseInt(n||0);
this.spacingBottom=this.spacing+parseInt(p||0);this.spacingLeft=this.spacing+parseInt(q||0);this.horizontal=null!=r?r:!0;this.background=t;this.border=u;this.wrap=null!=x?x:!1;this.clipped=null!=y?y:!1;this.overflow=null!=B?B:"visible";this.labelPadding=null!=A?A:0;this.textDirection=z;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;
mxText.prototype.replaceLinefeeds=!0;mxText.prototype.verticalTextRotation=-90;mxText.prototype.ignoreClippedStringSize=!0;mxText.prototype.ignoreStringSize=!1;mxText.prototype.textWidthPadding=8!=document.documentMode||mxClient.IS_EM?3:4;mxText.prototype.lastValue=null;mxText.prototype.cacheEnabled=!0;mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode||mxClient.IS_EM};mxText.prototype.getSvgScreenOffset=function(){return 0};
-mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};
+mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};mxText.prototype.configurePointerEvents=function(a){};
mxText.prototype.paint=function(a,b){var c=this.scale,d=this.bounds.x/c,e=this.bounds.y/c,f=this.bounds.width/c,c=this.bounds.height/c;this.updateTransform(a,d,e,f,c);this.configureCanvas(a,d,e,f,c);if(b)a.updateText(d,e,f,c,this.align,this.valign,this.wrap,this.overflow,this.clipped,this.getTextRotation(),this.node);else{var g=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,k=g?"html":"",l=this.value;g||"html"!=k||(l=mxUtils.htmlEntities(l,!1));"html"!=k||mxUtils.isNode(this.value)||
(l=mxUtils.replaceTrailingNewlines(l,"<div><br></div>"));var l=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==k?l.replace(/\n/g,"<br/>"):l,m=this.textDirection;m!=mxConstants.TEXT_DIRECTION_AUTO||g||(m=this.getAutoDirection());m!=mxConstants.TEXT_DIRECTION_LTR&&m!=mxConstants.TEXT_DIRECTION_RTL&&(m=null);a.text(d,e,f,c,l,this.align,this.valign,this.wrap,k,this.overflow,this.clipped,this.getTextRotation(),m)}};
mxText.prototype.redraw=function(){if(this.visible&&this.checkBounds()&&this.cacheEnabled&&this.lastValue==this.value&&(mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML))if("DIV"==this.node.nodeName)mxClient.IS_SVG?this.redrawHtmlShapeWithCss3():(this.updateSize(this.node,null==this.state||null==this.state.view.textDiv),mxClient.IS_IE&&(null==document.documentMode||8>=document.documentMode)?this.updateHtmlFilter():this.updateHtmlTransform()),this.updateBoundingBox();else{var a=
@@ -1430,9 +1431,9 @@ mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST][mxUtils.mod(a,4)]};mxGra
mxGraph.prototype.getImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_IMAGE]:null};mxGraph.prototype.isTransparentState=function(a){var b=!1;if(null!=a)var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE),b=b==mxConstants.NONE&&c==mxConstants.NONE&&null==this.getImage(a);return b};
mxGraph.prototype.getVerticalAlign=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null};mxGraph.prototype.getIndicatorColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_COLOR]:null};mxGraph.prototype.getIndicatorGradientColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null};
mxGraph.prototype.getIndicatorShape=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_SHAPE]:null};mxGraph.prototype.getIndicatorImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_IMAGE]:null};mxGraph.prototype.getBorder=function(){return this.border};mxGraph.prototype.setBorder=function(a){this.border=a};
-mxGraph.prototype.isSwimlane=function(a,b){return null==a||this.model.getParent(a)==this.model.getRoot()||this.model.isEdge(a)?!1:this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};mxGraph.prototype.setEnabled=function(a){this.enabled=a};
-mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};
-mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};
+mxGraph.prototype.isSwimlane=function(a,b){return null==a||this.model.getParent(a)==this.model.getRoot()||this.model.isEdge(a)?!1:this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};
+mxGraph.prototype.setEnabled=function(a){this.enabled=a;this.fireEvent(new mxEventObject("enabledChanged","enabled",a))};mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};
+mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};
mxGraph.prototype.isCellCloneable=function(a){a=this.getCurrentCellStyle(a);return this.isCellsCloneable()&&0!=a[mxConstants.STYLE_CLONEABLE]};mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable};mxGraph.prototype.setCellsCloneable=function(a){this.cellsCloneable=a};mxGraph.prototype.getExportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canExportCell(a)}))};mxGraph.prototype.canExportCell=function(a){return this.exportEnabled};
mxGraph.prototype.getImportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canImportCell(a)}))};mxGraph.prototype.canImportCell=function(a){return this.importEnabled};mxGraph.prototype.isCellSelectable=function(a){return this.isCellsSelectable()};mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable};mxGraph.prototype.setCellsSelectable=function(a){this.cellsSelectable=a};
mxGraph.prototype.getDeletableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellDeletable(a)}))};mxGraph.prototype.isCellDeletable=function(a){a=this.getCurrentCellStyle(a);return this.isCellsDeletable()&&0!=a[mxConstants.STYLE_DELETABLE]};mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable};mxGraph.prototype.setCellsDeletable=function(a){this.cellsDeletable=a};
@@ -2225,7 +2226,7 @@ function ChangePageSetup(a,b,e,d,l){this.ui=a;this.previousColor=this.color=b;th
ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var b=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=b}this.ignoreImage||(this.image=this.previousImage,b=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=b);null!=this.previousFormat&&(this.format=this.previousFormat,b=a.pageFormat,this.previousFormat.width!=b.width||this.previousFormat.height!=b.height)&&(this.ui.setPageFormat(this.previousFormat),
this.previousFormat=b);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled);null!=this.previousPageScale&&(a=this.ui.editor.graph.pageScale,this.previousPageScale!=a&&(this.ui.setPageScale(this.previousPageScale),this.previousPageScale=a))};
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat","previousPageScale"]);a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;d.previousPageScale=d.pageScale;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);return d};mxCodecRegistry.register(a)})();EditorUi.prototype.setBackgroundColor=function(a){this.editor.graph.background=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("backgroundColorChanged"))};
-EditorUi.prototype.setFoldingEnabled=function(a){this.editor.graph.foldingEnabled=a;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))};EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageFormatChanged"))};
+EditorUi.prototype.setFoldingEnabled=function(a){this.editor.graph.foldingEnabled=a;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))};EditorUi.prototype.setPageFormat=function(a,b){b=null!=b?b:"1"==urlParams.sketch;this.editor.graph.pageFormat=a;b||(this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct());this.fireEvent(new mxEventObject("pageFormatChanged"))};
EditorUi.prototype.setPageScale=function(a){this.editor.graph.pageScale=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageScaleChanged"))};EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,d);e.addListener(mxEvent.UNDO,d);e.addListener(mxEvent.REDO,d);e.addListener(mxEvent.CLEAR,d);var l=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){l.apply(this,arguments);d()};var m=this.editor.graph.cellEditor.stopEditing;
this.editor.graph.cellEditor.stopEditing=function(a,b){m.apply(this,arguments);d()};d()};
@@ -2537,7 +2538,7 @@ t=this.getCellGeometry(b[e].cell),d=d+p;null!=t&&null!=n&&(t=t.clone(),a?t.x=Mat
return a};Graph.prototype.getSvg=function(a,c,b,d,f,e,g,k,p,n,t,v,l,m){var q=null;if(null!=m)for(q=new mxDictionary,t=0;t<m.length;t++)q.put(m[t],!0);if(m=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{c=null!=c?c:1;b=null!=b?b:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var B="page"==l?this.view.getBackgroundPageBounds():e&&null==q||d||"diagram"==l?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==B)throw Error(mxResources.get("drawingEmpty"));
var C=this.view.scale,y=mxUtils.createXmlDocument(),z=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=z.style?z.style.backgroundColor=a:z.setAttribute("style","background-color:"+a));null==y.createElementNS?(z.setAttribute("xmlns",mxConstants.NS_SVG),z.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):z.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=c/C;var E=Math.max(1,Math.ceil(B.width*a)+2*b)+(n?5:
0),A=Math.max(1,Math.ceil(B.height*a)+2*b)+(n?5:0);z.setAttribute("version","1.1");z.setAttribute("width",E+"px");z.setAttribute("height",A+"px");z.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+E+" "+A);y.appendChild(z);var S=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"g"):y.createElement("g");z.appendChild(S);var u=this.createSvgCanvas(S);u.foOffset=f?-.5:0;u.textOffset=f?-.5:0;u.imageOffset=f?-.5:0;u.translate(Math.floor((b/c-B.x)/C),Math.floor((b/c-B.y)/C));var ka=document.createElement("div"),
-I=u.getAlternateText;u.getAlternateText=function(a,c,b,d,f,e,g,k,p,n,t,v,l){if(null!=e&&0<this.state.fontSize)try{mxUtils.isNode(e)?e=e.innerText:(ka.innerHTML=e,e=mxUtils.extractTextWithWhitespace(ka.childNodes));for(var x=Math.ceil(2*d/this.state.fontSize),la=[],Ca=0,va=0;(0==x||Ca<x)&&va<e.length;){var Sa=e.charCodeAt(va);if(10==Sa||13==Sa){if(0<Ca)break}else la.push(e.charAt(va)),255>Sa&&Ca++;va++}la.length<e.length&&1<e.length-la.length&&(e=mxUtils.trim(la.join(""))+"...");return e}catch(fb){return I.apply(this,
+I=u.getAlternateText;u.getAlternateText=function(a,c,b,d,f,e,g,k,p,n,t,v,x){if(null!=e&&0<this.state.fontSize)try{mxUtils.isNode(e)?e=e.innerText:(ka.innerHTML=e,e=mxUtils.extractTextWithWhitespace(ka.childNodes));for(var oa=Math.ceil(2*d/this.state.fontSize),ya=[],wa=0,Qa=0;(0==oa||wa<oa)&&Qa<e.length;){var Ta=e.charCodeAt(Qa);if(10==Ta||13==Ta){if(0<wa)break}else ya.push(e.charAt(Qa)),255>Ta&&wa++;Qa++}ya.length<e.length&&1<e.length-ya.length&&(e=mxUtils.trim(ya.join(""))+"...");return e}catch(fb){return I.apply(this,
arguments)}else return I.apply(this,arguments)};var F=this.backgroundImage;if(null!=F){c=C/c;var P=this.view.translate,D=new mxRectangle(P.x*c,P.y*c,F.width*c,F.height*c);mxUtils.intersects(B,D)&&u.image(P.x,P.y,F.width,F.height,F.src,!0)}u.scale(a);u.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var U=k.drawCellState,G=k.getLinkForCellState;k.getLinkForCellState=function(a,c){var b=G.apply(this,arguments);return null==b||a.view.graph.isCustomLink(b)?null:b};k.getLinkTargetForCellState=function(a,
c){return a.view.graph.getLinkTargetForCell(a.cell)};k.drawCellState=function(a,c){for(var b=a.view.graph,d=null!=q?q.get(a.cell):b.isCellSelected(a.cell),f=b.model.getParent(a.cell);!(e&&null==q||d)&&null!=f;)d=null!=q?q.get(f):b.isCellSelected(f),f=b.model.getParent(f);(e&&null==q||d)&&U.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),u);this.updateSvgLinks(z,p,!0);this.addForeignObjectWarning(u,z);return z}finally{m&&(this.useCssTransforms=!0,this.view.revalidate(),
this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,c){if("0"!=urlParams["svg-warning"]&&0<c.getElementsByTagName("foreignObject").length){var b=a.createElement("switch"),d=a.createElement("g");d.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var f=a.createElement("a");f.setAttribute("transform","translate(0,-5)");null==f.setAttributeNS||c.ownerDocument!=document&&null==document.documentMode?(f.setAttribute("xlink:href",Graph.foreignObjectWarningLink),
@@ -2619,16 +2620,16 @@ this.graph.view.getState(k[b]),p=this.graph.getCellGeometry(k[b]);null!=n&&null!
var d=c.getX()+b.x,b=c.getY()+b.y,f=this.first.x-d,e=this.first.y-b,g=this.graph.tolerance;if(null!=this.div||Math.abs(f)>g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,b),this.isSpaceEvent(c)?(d=this.x+this.width,b=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(this.width=this.graph.snap(this.width/f)*f,this.height=this.graph.snap(this.height/f)*f,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=
0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=d-this.width),this.y<this.first.y&&(this.y=b-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=
this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),
-this.secondDiv=null)),c.consume()}};var Y=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Y.apply(this,arguments)};var X=(new Date).getTime(),ma=0,pa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){pa.apply(this,arguments);b!=this.currentTerminalState?(X=(new Date).getTime(),ma=0):ma=(new Date).getTime()-X;this.currentTerminalState=
-b};var Z=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<ma||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&Z.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-
+this.secondDiv=null)),c.consume()}};var Y=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Y.apply(this,arguments)};var X=(new Date).getTime(),la=0,pa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){pa.apply(this,arguments);b!=this.currentTerminalState?(X=(new Date).getTime(),la=0):la=(new Date).getTime()-X;this.currentTerminalState=
+b};var Z=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<la||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&Z.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-
1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),f):null)?this.fixedHandleImage:null!=f&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,
mxConstants.HANDLE_STROKECOLOR)};var ha=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ha.apply(this,arguments)};var ia=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]),null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return ia.apply(this,arguments)};var fa=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=fa.apply(this,arguments),c=[],b=0;b<a.length;b++)"1"!=mxUtils.getValue(a[b].style,"part","0")&&c.push(a[b]);return c};var ba=mxVertexHandler.prototype.getSelectionBounds;
-mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):ba.apply(this,arguments)};var na=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
-c){var b=this.graph.getModel(),d=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(d)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&na.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var a=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);
+mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):ba.apply(this,arguments)};var ma=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
+c){var b=this.graph.getModel(),d=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(d)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&ma.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var a=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);
this.state.view.graph.model.isVertex(this.state.cell)&&a==mxConstants.NONE&&c==mxConstants.NONE?(a=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,a,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var V=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){V.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&
null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var Q=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){Q.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display=
-"");this.blockDelayedSelection=null};var oa=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){oa.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=[];for(var c=0;4>c;c++){var b=new mxRectangleShape(new mxRectangle(0,
+"");this.blockDelayedSelection=null};var na=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){na.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=[];for(var c=0;4>c;c++){var b=new mxRectangleShape(new mxRectangle(0,
0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);b.dialect=mxConstants.DIALECT_SVG;b.init(this.graph.view.getOverlayPane());this.cornerHandles.push(b)}}var d=mxUtils.bind(this,function(){null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.changeHandler=mxUtils.bind(this,function(a,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));
d()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);c=this.graph.getLinkForCell(this.state.cell);b=this.graph.getLinksForState(this.state);this.updateLinkHint(c,b);if(null!=c||null!=b&&0<b.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=
function(c,b){try{if(null==c&&(null==b||0==b.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=c||null!=b&&0<b.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint));this.linkHint.innerHTML="";if(null!=c&&(this.linkHint.appendChild(this.graph.createLinkForHint(c)),
@@ -2647,18 +2648,18 @@ null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add
function(){ea.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function l(){mxCylinder.call(this)}function m(){mxCylinder.call(this)}function u(){mxCylinder.call(this)}function q(){mxCylinder.call(this)}function c(){mxShape.call(this)}function f(){mxShape.call(this)}function g(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1}function k(){mxActor.call(this)}function p(){mxCylinder.call(this)}
function t(){mxCylinder.call(this)}function v(){mxActor.call(this)}function A(){mxActor.call(this)}function F(){mxActor.call(this)}function y(){mxActor.call(this)}function z(){mxActor.call(this)}function L(){mxActor.call(this)}function M(){mxActor.call(this)}function G(a,c){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,G.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
this.canvas.moveTo=mxUtils.bind(this,G.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,G.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,G.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,G.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,G.prototype.arcTo)}function J(){mxRectangleShape.call(this)}function H(){mxRectangleShape.call(this)}
-function D(){mxActor.call(this)}function K(){mxActor.call(this)}function I(){mxActor.call(this)}function R(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function n(){mxCylinder.call(this)}function B(){mxShape.call(this)}function C(){mxShape.call(this)}function ka(){mxEllipse.call(this)}function E(){mxShape.call(this)}function U(){mxShape.call(this)}function Y(){mxRectangleShape.call(this)}function X(){mxShape.call(this)}function ma(){mxShape.call(this)}function pa(){mxShape.call(this)}
-function Z(){mxShape.call(this)}function ha(){mxShape.call(this)}function ia(){mxCylinder.call(this)}function fa(){mxCylinder.call(this)}function ba(){mxRectangleShape.call(this)}function na(){mxDoubleEllipse.call(this)}function V(){mxDoubleEllipse.call(this)}function Q(){mxArrowConnector.call(this);this.spacing=0}function oa(){mxArrowConnector.call(this);this.spacing=0}function T(){mxActor.call(this)}function ca(){mxRectangleShape.call(this)}function ja(){mxActor.call(this)}function ra(){mxActor.call(this)}
-function O(){mxActor.call(this)}function ga(){mxActor.call(this)}function ea(){mxActor.call(this)}function S(){mxActor.call(this)}function ya(){mxActor.call(this)}function P(){mxActor.call(this)}function aa(){mxActor.call(this)}function qa(){mxActor.call(this)}function sa(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}function Da(){mxRhombus.call(this)}function Ga(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
-function Ia(){mxEllipse.call(this)}function za(){mxActor.call(this)}function ua(){mxActor.call(this)}function wa(){mxActor.call(this)}function W(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Aa(){mxConnector.call(this)}function Ta(a,c,b,d,f,e,g,k,n,p){g+=n;var x=d.clone();d.x-=f*(2*g+n);d.y-=e*(2*g+n);f*=g+n;e*=g+n;return function(){a.ellipse(x.x-
+function D(){mxActor.call(this)}function K(){mxActor.call(this)}function I(){mxActor.call(this)}function R(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function n(){mxCylinder.call(this)}function B(){mxShape.call(this)}function C(){mxShape.call(this)}function ka(){mxEllipse.call(this)}function E(){mxShape.call(this)}function U(){mxShape.call(this)}function Y(){mxRectangleShape.call(this)}function X(){mxShape.call(this)}function la(){mxShape.call(this)}function pa(){mxShape.call(this)}
+function Z(){mxShape.call(this)}function ha(){mxShape.call(this)}function ia(){mxCylinder.call(this)}function fa(){mxCylinder.call(this)}function ba(){mxRectangleShape.call(this)}function ma(){mxDoubleEllipse.call(this)}function V(){mxDoubleEllipse.call(this)}function Q(){mxArrowConnector.call(this);this.spacing=0}function na(){mxArrowConnector.call(this);this.spacing=0}function T(){mxActor.call(this)}function ca(){mxRectangleShape.call(this)}function ja(){mxActor.call(this)}function ra(){mxActor.call(this)}
+function O(){mxActor.call(this)}function ga(){mxActor.call(this)}function ea(){mxActor.call(this)}function S(){mxActor.call(this)}function za(){mxActor.call(this)}function P(){mxActor.call(this)}function aa(){mxActor.call(this)}function qa(){mxActor.call(this)}function sa(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}function Da(){mxRhombus.call(this)}function Ga(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
+function Ia(){mxEllipse.call(this)}function Aa(){mxActor.call(this)}function ua(){mxActor.call(this)}function va(){mxActor.call(this)}function W(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Ba(){mxConnector.call(this)}function Ua(a,c,b,d,f,e,g,k,n,p){g+=n;var x=d.clone();d.x-=f*(2*g+n);d.y-=e*(2*g+n);f*=g+n;e*=g+n;return function(){a.ellipse(x.x-
f-g,x.y-e-g,2*g,2*g);p?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,c,b,d,f){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-c,-b));this.paintForeground(a,
c,b,d,f)};a.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.state){var x=this.flipH,e=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=x,x=e,e=g;a.rotate(-this.getShapeRotation(),x,e,c+d/2,b+f/2);s=this.scale;c=this.bounds.x/s;b=this.bounds.y/s;d=this.bounds.width/s;f=this.bounds.height/s;this.paintTableForeground(a,c,b,d,f)}};a.prototype.paintTableForeground=function(a,c,b,d,f){var x=this.state.view.graph,e=x.getActualStartSize(this.state.cell),
-g=x.model.getChildCells(this.state.cell,!0);if(0<g.length){var la="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),va="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(la)for(la=1;la<g.length;la++){var k=x.getCellGeometry(g[la]);null!=k&&(a.begin(),a.moveTo(c+e.x,b+k.y),a.lineTo(c+d-e.width,b+k.y),a.end(),a.stroke())}if(va)for(d=x.model.getChildCells(g[0],!0),la=1;la<d.length;la++)k=x.getCellGeometry(d[la]),null!=k&&(a.begin(),a.moveTo(c+k.x+e.x,b+e.y),a.lineTo(c+k.x+e.x,b+f-e.height),
+g=x.model.getChildCells(this.state.cell,!0);if(0<g.length){var oa="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),wa="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(oa)for(oa=1;oa<g.length;oa++){var k=x.getCellGeometry(g[oa]);null!=k&&(a.begin(),a.moveTo(c+e.x,b+k.y),a.lineTo(c+d-e.width,b+k.y),a.end(),a.stroke())}if(wa)for(d=x.model.getChildCells(g[0],!0),oa=1;oa<d.length;oa++)k=x.getCellGeometry(d[oa]),null!=k&&(a.begin(),a.moveTo(c+k.x+e.x,b+e.y),a.lineTo(c+k.x+e.x,b+f-e.height),
a.end(),a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(b,mxCylinder);b.prototype.size=20;b.prototype.darkOpacity=0;b.prototype.darkOpacity2=0;b.prototype.paintVertexShape=function(a,c,b,d,f){var x=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));
a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-x,0);a.lineTo(d,x);a.lineTo(d,f);a.lineTo(x,f);a.lineTo(0,f-x);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-x,0),a.lineTo(d,x),a.lineTo(x,x),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(x,x),a.lineTo(x,f),a.lineTo(0,f-x),
-a.close(),a.fill()),a.begin(),a.moveTo(x,f),a.lineTo(x,x),a.lineTo(0,0),a.moveTo(x,x),a.lineTo(d,x),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Qa=Math.tan(mxUtils.toRadians(30)),Ha=(.5-Qa)/2;mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size=
-6;e.prototype.paintVertexShape=function(a,c,b,d,f){a.setFillColor(this.stroke);var x=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(c+.5*(d-x),b+.5*(f-x),x,x);a.fill();a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Qa);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*Ha);
-a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-Ha)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(l,mxCylinder);l.prototype.size=20;l.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Qa));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-Ha)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-Ha)*c),a.lineTo(.5*c,(1-Ha)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*Ha),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-Ha)*c),a.lineTo(0,.75*
+a.close(),a.fill()),a.begin(),a.moveTo(x,f),a.lineTo(x,x),a.lineTo(0,0),a.moveTo(x,x),a.lineTo(d,x),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Ra=Math.tan(mxUtils.toRadians(30)),Ha=(.5-Ra)/2;mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size=
+6;e.prototype.paintVertexShape=function(a,c,b,d,f){a.setFillColor(this.stroke);var x=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(c+.5*(d-x),b+.5*(f-x),x,x);a.fill();a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Ra);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*Ha);
+a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-Ha)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(l,mxCylinder);l.prototype.size=20;l.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Ra));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-Ha)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-Ha)*c),a.lineTo(.5*c,(1-Ha)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*Ha),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-Ha)*c),a.lineTo(0,.75*
c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",l);mxUtils.extend(m,mxCylinder);m.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,
c),a.curveTo(0,-c/3,d,-c/3,d,c),a.lineTo(d,f-c),a.curveTo(d,f+c/3,0,f+c/3,0,f-c),a.close())};m.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",m);mxUtils.extend(u,mxCylinder);u.prototype.size=30;u.prototype.darkOpacity=0;u.prototype.paintVertexShape=function(a,c,b,d,f){var x=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=
Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-x,0);a.lineTo(d,x);a.lineTo(d,f);a.lineTo(0,f);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-x,0),a.lineTo(d-x,x),a.lineTo(d,x),a.close(),a.fill()),a.begin(),a.moveTo(d-x,0),a.lineTo(d-x,x),a.lineTo(d,x),a.end(),a.stroke())};
@@ -2677,7 +2678,7 @@ c);a.lineTo(d,f-c);a.arcTo(c,c,0,0,1,d-c,f);a.lineTo(x+c,f);a.arcTo(c,c,0,0,1,x,
"size",this.size)))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("card",v);mxUtils.extend(A,mxActor);A.prototype.size=.4;A.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,c/2);a.quadTo(d/4,1.4*c,d/2,c/2);a.quadTo(3*
d/4,c*(1-1.4),d,c/2);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};A.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),b=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*=d,new mxRectangle(a.x,a.y+c,b,d-2*c);c*=b;return new mxRectangle(a.x+c,a.y,b-
2*c,d)}return a};mxCellRenderer.registerShape("tape",A);mxUtils.extend(F,mxActor);F.prototype.size=.3;F.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};F.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/
-4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",F);var Ya=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,b,d){var f=mxUtils.getValue(this.style,"size");return null!=f?d*Math.max(0,Math.min(1,f)):Ya.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*
+4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",F);var Za=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,b,d){var f=mxUtils.getValue(this.style,"size");return null!=f?d*Math.max(0,Math.min(1,f)):Za.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*
this.scale,a.height*c),0,0)}return null};g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(c/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*c*this.scale),0,Math.max(0,.3*c*this.scale))}return null};p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),x=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(x*=Math.min(a.width,a.height));x=Math.min(x,.5*a.width,.5*(a.height-c));d||(x=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(x,0,Math.min(a.width,a.width-
b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,x,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};t.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};q.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",
@@ -2688,224 +2689,224 @@ this.fixedSize)))):d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.sty
a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",M);G.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};G.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};G.prototype.quadTo=function(a,c,b,d){this.originalQuadTo.apply(this.canvas,
arguments);this.lastX=b;this.lastY=d};G.prototype.curveTo=function(a,c,b,d,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};G.prototype.arcTo=function(a,c,b,d,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};G.prototype.lineTo=function(a,c){if(null!=this.lastX&&null!=this.lastY){var b=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),x=Math.sqrt(d*d+f*f);if(2>x){this.originalLineTo.apply(this.canvas,
arguments);this.lastX=a;this.lastY=c;return}var e=Math.round(x/10),g=this.defaultVariation;5>e&&(e=5,g/=3);for(var k=b(a-this.lastX)*d/e,b=b(c-this.lastY)*f/e,d=d/x,f=f/x,x=0;x<e;x++){var n=(Math.random()-.5)*g;this.originalLineTo.call(this.canvas,k*x+this.lastX-n*f,b*x+this.lastY-n*d)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};G.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;
-this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};mxShape.prototype.defaultJiggle=1.5;var Za=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(a){Za.apply(this,arguments);null==a.handJiggle&&(a.handJiggle=this.createHandJiggle(a))};var $a=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(a){$a.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),
-delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new G(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(a)};mxRhombus.prototype.defaultJiggle=2;var ab=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,
-"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&ab.apply(this,arguments)};var db=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,c,b,d,f){if(null==a.handJiggle||a.handJiggle.constructor!=G)db.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||
+this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};mxShape.prototype.defaultJiggle=1.5;var $a=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(a){$a.apply(this,arguments);null==a.handJiggle&&(a.handJiggle=this.createHandJiggle(a))};var ab=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(a){ab.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),
+delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new G(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(a)};mxRhombus.prototype.defaultJiggle=2;var bb=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,
+"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&bb.apply(this,arguments)};var eb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,c,b,d,f){if(null==a.handJiggle||a.handJiggle.constructor!=G)eb.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||
null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?e=Math.min(d/2,Math.min(f/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.min(d*e,f*e)),a.moveTo(c+e,b),a.lineTo(c+d-e,b),a.quadTo(c+d,b,c+d,b+e),a.lineTo(c+d,b+f-e),a.quadTo(c+d,b+f,c+d-e,
-b+f),a.lineTo(c+e,b+f),a.quadTo(c,b+f,c,b+f-e),a.lineTo(c,b+e),a.quadTo(c,b,c+e,b)):(a.moveTo(c,b),a.lineTo(c+d,b),a.lineTo(c+d,b+f),a.lineTo(c,b+f),a.lineTo(c,b)),a.close(),a.end(),a.fillAndStroke()}};var eb=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,b,d,f){null==a.handJiggle&&eb.apply(this,arguments)};mxUtils.extend(J,mxRectangleShape);J.prototype.size=.1;J.prototype.fixedSize=!1;J.prototype.isHtmlAllowed=function(){return!1};J.prototype.getLabelBounds=
-function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var c=a.width,b=a.height;a=new mxRectangle(a.x,a.y,c,b);var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(c*f,b*f));a.x+=
-Math.round(d);a.width-=Math.round(2*d)}return a};J.prototype.paintForeground=function(a,c,b,d,f){var e=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),x=parseFloat(mxUtils.getValue(this.style,"size",this.size)),x=e?Math.max(0,Math.min(d,x)):d*Math.max(0,Math.min(1,x));this.isRounded&&(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,x=Math.max(x,Math.min(d*e,f*e)));x=Math.round(x);a.begin();a.moveTo(c+x,b);a.lineTo(c+x,b+f);a.moveTo(c+
-d-x,b);a.lineTo(c+d-x,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",J);mxCellRenderer.registerShape("process2",J);mxUtils.extend(H,mxRectangleShape);H.prototype.paintBackground=function(a,c,b,d,f){a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};H.prototype.paintForeground=function(a,c,b,d,f){};mxCellRenderer.registerShape("transparent",H);mxUtils.extend(D,mxHexagon);D.prototype.size=30;D.prototype.position=
-.5;D.prototype.position2=.5;D.prototype.base=20;D.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};D.prototype.isRoundable=function(){return!0};D.prototype.redrawPath=function(a,c,b,d,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position",this.position)))),x=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-b),new mxPoint(Math.min(d,e+g),f-b),new mxPoint(x,f),new mxPoint(Math.max(0,e),f-b),new mxPoint(0,f-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",D);mxUtils.extend(K,mxActor);K.prototype.size=.2;K.prototype.fixedSize=
-20;K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(0,
-f),new mxPoint(c,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",K);mxUtils.extend(I,mxHexagon);I.prototype.size=.25;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.5*f),new mxPoint(d-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",I);mxUtils.extend(R,mxRectangleShape);R.prototype.isHtmlAllowed=function(){return!1};R.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();
-a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",R);var Wa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Wa.apply(this,arguments);if(!this.outline&&
-1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Wa.apply(this,[a,c,b,d,f]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-
-2*c)}return a};N.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,x;do{x=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=x){var g=this.style["symbol"+e+"Align"],k=this.style["symbol"+e+"VerticalAlign"],n=this.style["symbol"+
-e+"Width"],p=this.style["symbol"+e+"Height"],la=this.style["symbol"+e+"Spacing"]||0,va=this.style["symbol"+e+"VSpacing"]||la,t=this.style["symbol"+e+"ArcSpacing"];null!=t&&(t*=this.getArcSize(d+this.strokewidth,f+this.strokewidth),la+=t,va+=t);var t=c,Ca=b,t=g==mxConstants.ALIGN_CENTER?t+(d-n)/2:g==mxConstants.ALIGN_RIGHT?t+(d-n-la):t+la,Ca=k==mxConstants.ALIGN_MIDDLE?Ca+(f-p)/2:k==mxConstants.ALIGN_BOTTOM?Ca+(f-p-va):Ca+va;a.save();g=new x;g.style=this.style;x.prototype.paintVertexShape.call(g,a,
-t,Ca,n,p);a.restore()}e++}while(null!=x)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(n,mxCylinder);n.prototype.redrawPath=function(a,c,b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",n);mxUtils.extend(B,mxShape);B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/
-4);a.fillAndStroke();a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0,f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(C,mxShape);C.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};C.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();
-a.begin();a.moveTo(0,f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",C);mxUtils.extend(ka,mxEllipse);ka.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",ka);mxUtils.extend(E,mxShape);E.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();
-a.moveTo(d,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",E);mxUtils.extend(U,mxShape);U.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};U.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,f/8,d,7*f/8);a.fillAndStroke()};U.prototype.paintForeground=function(a,c,b,d,f){a.begin();a.moveTo(3*d/
-8,f/8*1.1);a.lineTo(5*d/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",U);mxUtils.extend(Y,mxRectangleShape);Y.prototype.size=40;Y.prototype.isHtmlAllowed=function(){return!1};Y.prototype.getLabelBounds=function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};Y.prototype.paintBackground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
-"size",this.size)))),x=mxUtils.getValue(this.style,"participant");null==x||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,c,b,d,e):(x=this.state.view.graph.cellRenderer.getShape(x),null!=x&&x!=Y&&(x=new x,x.apply(this.state),a.save(),x.paintVertexShape(a,c,b,d,e),a.restore()));e<f&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(c+d/2,b+e),a.lineTo(c+d/2,b+f),a.end(),a.stroke())};Y.prototype.paintForeground=function(a,c,b,d,f){var e=
-Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,b,d,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline",Y);mxUtils.extend(X,mxShape);X.prototype.width=60;X.prototype.height=30;X.prototype.corner=10;X.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*
-this.scale))};X.prototype.paintBackground=function(a,c,b,d,f){var e=this.corner,x=Math.min(d,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(f,Math.max(1.5*e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(a.setFillColor(k),a.rect(c,b,d,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?
-(this.getGradientBounds(a,c,b,d,f),a.setGradient(this.fill,this.gradient,c,b,d,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,b);a.lineTo(c+x,b);a.lineTo(c+x,b+Math.max(0,g-1.5*e));a.lineTo(c+Math.max(0,x-e),b+g);a.lineTo(c,b+g);a.close();a.fillAndStroke();a.begin();a.moveTo(c+x,b);a.lineTo(c+d,b);a.lineTo(c+d,b+f);a.lineTo(c,b+f);a.lineTo(c,b+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",X);mxPerimeter.CenterPerimeter=function(a,c,b,d){return new mxPoint(a.getCenterX(),
-a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,c,b,d){d=Y.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;b.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y+d,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=
-function(a,c,b,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,b,d){d=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(d+=parseFloat(c.style.backboneSize)*c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return b.x<a.getCenterX()&&(d=-1*(d+1)),
-new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,b,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",D.prototype.size))*c.view.scale))),c.style),
-c,b,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?y.prototype.fixedSize:y.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?
-(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g)]):(f=f?Math.max(0,Math.min(.5*k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k,g),new mxPoint(x+k-f,g+n),new mxPoint(x,g+n),new mxPoint(x+f,g)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<x||b.x>x+k?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",
-mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?z.prototype.fixedSize:z.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(.5*k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+
-f,g),new mxPoint(x+k-f,g),new mxPoint(x+k,g+n),new mxPoint(x,g+n),new mxPoint(x+f,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g),new mxPoint(x+k-f,g+n),new mxPoint(x+f,g+n),new mxPoint(x,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g+f),new mxPoint(x+k,g),new mxPoint(x+k,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g+f)]):(f=f?Math.max(0,Math.min(n,e)):
-n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n-f),new mxPoint(x,g+n),new mxPoint(x,g)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<x||b.x>x+k?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?K.prototype.fixedSize:K.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,
-"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height,p=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k-f,g),new mxPoint(x+k,a),new mxPoint(x+k-f,g+n),new mxPoint(x,g+n),new mxPoint(x+f,a),new mxPoint(x,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(k,
-e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k,g),new mxPoint(x+k-f,a),new mxPoint(x+k,g+n),new mxPoint(x+f,g+n),new mxPoint(x,a),new mxPoint(x+f,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g+f),new mxPoint(p,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n),new mxPoint(p,g+n-f),new mxPoint(x,g+n),new mxPoint(x,g+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(p,g+
-f),new mxPoint(x+k,g),new mxPoint(x+k,g+n-f),new mxPoint(p,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g)]);p=new mxPoint(p,a);d&&(b.x<x||b.x>x+k?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?I.prototype.fixedSize:I.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,
-n=a.height,p=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(p,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n-f),new mxPoint(p,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g+f),new mxPoint(p,g)]):(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+
-f,g),new mxPoint(x+k-f,g),new mxPoint(x+k,a),new mxPoint(x+k-f,g+n),new mxPoint(x+f,g+n),new mxPoint(x,a),new mxPoint(x+f,g)]);p=new mxPoint(p,a);d&&(b.x<x||b.x>x+k?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ma,mxShape);ma.prototype.size=10;ma.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);
-a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",ma);mxUtils.extend(pa,mxShape);pa.prototype.size=10;pa.prototype.inset=2;pa.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),x=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.begin();a.moveTo(d/2,e+x);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-x,e/2);a.quadTo((d-
-e)/2-x,e+x,d/2,e+x);a.quadTo((d+e)/2+x,e+x,(d+e)/2+x,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",pa);mxUtils.extend(Z,mxShape);Z.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",Z);mxUtils.extend(ha,mxShape);ha.prototype.inset=2;ha.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+
-this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ha);mxUtils.extend(ia,mxCylinder);ia.prototype.jettyWidth=20;ia.prototype.jettyHeight=10;ia.prototype.redrawPath=function(a,c,b,d,f,e){var x=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));
-b=x/2;var x=b+x/2,g=Math.min(c,f-c),k=Math.min(g+2*c,f-c);e?(a.moveTo(b,g),a.lineTo(x,g),a.lineTo(x,g+c),a.lineTo(b,g+c),a.moveTo(b,k),a.lineTo(x,k),a.lineTo(x,k+c),a.lineTo(b,k+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(b,k),a.lineTo(b,g+c),a.lineTo(0,g+c),a.lineTo(0,g),a.lineTo(b,g),a.close());a.end()};mxCellRenderer.registerShape("module",ia);mxUtils.extend(fa,mxCylinder);fa.prototype.jettyWidth=32;fa.prototype.jettyHeight=
-12;fa.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,x=.3*f-c/2,k=.7*f-c/2;e?(a.moveTo(b,x),a.lineTo(g,x),a.lineTo(g,x+c),a.lineTo(b,x+c),a.moveTo(b,k),a.lineTo(g,k),a.lineTo(g,k+c),a.lineTo(b,k+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(b,k),a.lineTo(b,x+c),a.lineTo(0,
-x+c),a.lineTo(0,x),a.lineTo(b,x),a.close());a.end()};mxCellRenderer.registerShape("component",fa);mxUtils.extend(ba,mxRectangleShape);ba.prototype.paintForeground=function(a,c,b,d,f){var e=d/2,g=f/2,x=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(c+e,b),new mxPoint(c+d,b+g),new mxPoint(c+e,b+f),new mxPoint(c,b+g)],this.isRounded,x,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",
-ba);mxUtils.extend(na,mxDoubleEllipse);na.prototype.outerStroke=!0;na.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",na);mxUtils.extend(V,na);V.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",V);mxUtils.extend(Q,mxArrowConnector);Q.prototype.defaultWidth=4;Q.prototype.isOpenEnded=
-function(){return!0};Q.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Q.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",Q);mxUtils.extend(oa,mxArrowConnector);oa.prototype.defaultWidth=10;oa.prototype.defaultArrowWidth=20;oa.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};oa.prototype.getEndArrowWidth=
-function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};oa.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",oa);mxUtils.extend(T,mxActor);T.prototype.size=30;T.prototype.isRoundable=function(){return!0};T.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",T);mxUtils.extend(ca,mxRectangleShape);ca.prototype.dx=20;ca.prototype.dy=20;ca.prototype.isHtmlAllowed=function(){return!1};ca.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ca);mxUtils.extend(ja,mxActor);ja.prototype.dx=20;ja.prototype.dy=
-20;ja.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};
-mxCellRenderer.registerShape("corner",ja);mxUtils.extend(ra,mxActor);ra.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",ra);mxUtils.extend(O,mxActor);O.prototype.dx=20;O.prototype.dy=20;O.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",O);mxUtils.extend(ga,mxActor);ga.prototype.arrowWidth=.3;ga.prototype.arrowSize=.2;ga.prototype.redrawPath=
-function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",
-ga);mxUtils.extend(ea,mxActor);ea.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),
-new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ea);mxUtils.extend(S,mxActor);S.prototype.size=.1;S.prototype.fixedSize=20;S.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
-a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",S);mxUtils.extend(ya,mxActor);ya.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",ya);mxUtils.extend(P,mxActor);P.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",
-P);mxUtils.extend(aa,mxActor);aa.prototype.size=20;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
-aa);mxUtils.extend(qa,mxActor);qa.prototype.size=.375;qa.prototype.isRoundable=function(){return!0};qa.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",
-qa);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/2,b+f);a.lineTo(c+d,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",sa);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke();a.begin();a.moveTo(c+d/2,b);
-a.lineTo(c+d/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",ta);mxUtils.extend(Fa,mxEllipse);Fa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*d,b+.145*f);a.lineTo(c+.855*d,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*d,b+.145*f);a.lineTo(c+.145*d,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",Fa);mxUtils.extend(Da,mxRhombus);Da.prototype.paintVertexShape=
-function(a,c,b,d,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",Da);mxUtils.extend(Ga,mxEllipse);Ga.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",
-Ga);mxUtils.extend(Ja,mxEllipse);Ja.prototype.paintVertexShape=function(a,c,b,d,f){var e=b+f-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+f);a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,e+5);a.moveTo(c,e);a.lineTo(c+d,e);a.moveTo(c+d,b);a.lineTo(c+d,b+f);a.moveTo(c+d,e);a.lineTo(c+d-10,e-5);a.moveTo(c+d,e);a.lineTo(c+d-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",Ja);mxUtils.extend(xa,mxEllipse);xa.prototype.paintVertexShape=function(a,c,b,d,f){this.outline||a.setStrokeColor(null);
-if(null!=this.style){var e=a.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1);a.rect(c,b,d,f);a.fill();a.pointerEvents=e;a.setStrokeColor(this.stroke);a.begin();a.moveTo(c,b);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+d,b):a.moveTo(c+d,b);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+d,b+f):a.moveTo(c+d,b+f);this.outline||"1"==mxUtils.getValue(this.style,
-"bottom","1")?a.lineTo(c,b+f):a.moveTo(c,b+f);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(c,b);a.end();a.stroke()}};mxCellRenderer.registerShape("partialRectangle",xa);mxUtils.extend(Ia,mxEllipse);Ia.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+d/2,b),a.lineTo(c+d/2,b+f)):(a.moveTo(c,b+f/2),a.lineTo(c+d,b+f/2));a.end();a.stroke()};
-mxCellRenderer.registerShape("lineEllipse",Ia);mxUtils.extend(za,mxActor);za.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);a.moveTo(0,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay",za);mxUtils.extend(ua,mxActor);ua.prototype.size=.2;ua.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,d);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;b=c+e;var g=(d-
-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(d,c);a.lineTo(d,b);a.lineTo(e,b);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",ua);mxUtils.extend(wa,mxActor);wa.prototype.size=.25;wa.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);b=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/
-2);a.quadTo(d,f,d-c,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",wa);mxUtils.extend(W,mxActor);W.prototype.cst={RECT2:"mxgraph.basic.rect"};W.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",
-dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",
-type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},
-{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
-type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
-dispName:"Fold"}]}];W.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);this.strictDrawShape(a,0,0,d,f)};W.prototype.strictDrawShape=function(a,c,b,d,f,e){var g=e&&e.rectStyle?e.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=e&&e.absoluteCornerSize?e.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),n=e&&e.size?e.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=e&&e.rectOutline?e.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),x=e&&e.indent?e.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),t=e&&e.dashed?e.dashed:mxUtils.getValue(this.style,"dashed",!1),v=e&&e.dashPattern?e.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),l=e&&e.relIndent?e.relIndent:Math.max(0,Math.min(50,x)),m=e&&e.top?e.top:mxUtils.getValue(this.style,"top",!0),q=e&&e.right?e.right:mxUtils.getValue(this.style,"right",!0),B=e&&e.bottom?e.bottom:
-mxUtils.getValue(this.style,"bottom",!0),C=e&&e.left?e.left:mxUtils.getValue(this.style,"left",!0),y=e&&e.topLeftStyle?e.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),z=e&&e.topRightStyle?e.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),E=e&&e.bottomRightStyle?e.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),A=e&&e.bottomLeftStyle?e.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),u=e&&e.fillColor?e.fillColor:
-mxUtils.getValue(this.style,"fillColor","#ffffff");e&&e.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var ka=e&&e.strokeWidth?e.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),va=e&&e.fillColor2?e.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),I=e&&e.gradientColor2?e.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),F=e&&e.gradientDirection2?e.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),la=e&&e.opacity?
-e.opacity:mxUtils.getValue(this.style,"opacity","100"),D=Math.max(0,Math.min(50,n));e=W.prototype;a.setDashed(t);v&&""!=v&&a.setDashPattern(v);a.setStrokeWidth(ka);n=Math.min(.5*f,.5*d,n);k||(n=D*Math.min(d,f)/100);n=Math.min(n,.5*Math.min(d,f));k||(x=Math.min(l*Math.min(d,f)/100));x=Math.min(x,.5*Math.min(d,f)-n);(m||q||B||C)&&"frame"!=p&&(a.begin(),m?e.moveNW(a,c,b,d,f,g,y,n,C):a.moveTo(0,0),m&&e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),q&&e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,
-c,b,d,f,g,E,n,B),B&&e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),C&&e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(va),t=k=la,"none"==va&&(k=0),"none"==I&&(t=0),a.setGradient(va,I,0,0,d,f,F,k,t),a.begin(),m?e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C):a.moveTo(x,0),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),C&&B&&e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),B&&q&&e.paintSEInner(a,c,b,d,f,g,E,n,x),
-e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),q&&m&&e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),m&&C&&e.paintNWInner(a,c,b,d,f,g,y,n,x),a.fill(),"none"==u&&(a.begin(),e.paintFolds(a,c,b,d,f,g,y,z,E,A,n,m,q,B,C),a.stroke()));m||q||B||!C?m||q||!B||C?!m&&!q&&B&&C?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,
-d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m||!q||B||C?!m&&q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,
-c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke(),a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke(),a.begin(),e.moveNE(a,c,b,d,f,g,z,
-n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m&&q&&B&&!C?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,
-b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m&&q&&B&&C?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,
-n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,
-c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m||q||B||C?m&&!q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,
-c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke()):m&&!q&&B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,
-b,d,f,g,y,n,x,C,m)),a.stroke(),a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke(),a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,
-c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m&&!q&&B&&C?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,
-B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m&&q&&!B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,
-c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,
-c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):m&&q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,
-c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke()):m&&q&&B&&!C?"frame"!=p?(a.begin(),
-e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),
-e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):m&&q&&B&&C&&("frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,
-c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,
-c,b,d,f,g,A,n,x,B,C),a.close()),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,
-c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke())):"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,
-c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==
-p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,
-c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke());a.begin();e.paintFolds(a,c,b,d,f,g,y,z,E,A,n,m,q,B,C);a.stroke()};W.prototype.moveNW=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(0,0):a.moveTo(0,n)};W.prototype.moveNE=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(d,0):a.moveTo(d-n,0)};W.prototype.moveSE=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&
-"square"==e||!k?a.moveTo(d,f):a.moveTo(d,f-n)};W.prototype.moveSW=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(0,f):a.moveTo(n,f)};W.prototype.paintNW=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,n,0)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(n,0);else a.lineTo(0,0)};W.prototype.paintTop=
-function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(d,0):a.lineTo(d-n,0)};W.prototype.paintNE=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,d,n)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d,n);else a.lineTo(d,0)};W.prototype.paintRight=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==
-g&&"square"==e||!k?a.lineTo(d,f):a.lineTo(d,f-n)};W.prototype.paintLeft=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(0,0):a.lineTo(0,n)};W.prototype.paintSE=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,d-n,f)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-n,f);else a.lineTo(d,
-f)};W.prototype.paintBottom=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(0,f):a.lineTo(n,f)};W.prototype.paintSW=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,0,f-n)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(0,f-n);else a.lineTo(0,f)};W.prototype.paintNWInner=function(a,c,b,
-d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,k,.5*k+n);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,k,k+n);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(k,.5*k+n);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(k+n,k+n),a.lineTo(k,k+n)};W.prototype.paintTopInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(0,k):p&&!t?a.lineTo(k,0):p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,k):"rounded"==g||"default"==g&&
-"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(n+.5*k,k):a.lineTo(n+k,k):a.lineTo(0,k):a.lineTo(0,0)};W.prototype.paintNEInner=function(a,c,b,d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,d-n-.5*k,k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,d-n-k,k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-n-.5*k,k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-n-k,n+k),a.lineTo(d-n-k,k)};W.prototype.paintRightInner=
-function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(d-k,0):p&&!t?a.lineTo(d,k):p?"square"==g||"default"==g&&"square"==e?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,n+.5*k):a.lineTo(d-k,n+k):a.lineTo(d-k,0):a.lineTo(d,0)};W.prototype.paintLeftInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(k,f):p&&!t?a.lineTo(0,f-k):p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==
-g&&"snip"==e?a.lineTo(k,f-n-.5*k):a.lineTo(k,f-n-k):a.lineTo(k,f):a.lineTo(0,f)};W.prototype.paintSEInner=function(a,c,b,d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,d-k,f-n-.5*k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,d-k,f-n-k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-k,f-n-.5*k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-n-k,f-n-k),a.lineTo(d-k,f-n-k)};W.prototype.paintBottomInner=function(a,c,b,d,
-f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(d,f-k):p&&!t?a.lineTo(d-k,f):"square"==g||"default"==g&&"square"==e||!p?a.lineTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-n-.5*k,f-k):a.lineTo(d-n-k,f-k):a.lineTo(d,f)};W.prototype.paintSWInner=function(a,c,b,d,f,e,g,n,k,p){if(!p)a.lineTo(k,f);else if("square"==g||"default"==g&&"square"==e)a.lineTo(k,f-k);else if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,n+.5*k,f-k);else if("invRound"==
-g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,n+k,f-k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(n+.5*k,f-k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(k+n,f-n-k),a.lineTo(k+n,f-k)};W.prototype.moveSWInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.moveTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(k,
-f-n-k):a.moveTo(0,f-k)};W.prototype.lineSWInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,f-n-k):a.lineTo(0,f-k)};W.prototype.moveSEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.moveTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==
-e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-k,f-n-k):a.moveTo(d-k,f)};W.prototype.lineSEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.lineTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,f-n-k):a.lineTo(d-
-k,f)};W.prototype.moveNEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e||p?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-k,n+k):a.moveTo(d,k)};W.prototype.lineNEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e||p?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==
-g&&"snip"==e?a.lineTo(d-k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,n+k):a.lineTo(d,k)};W.prototype.moveNWInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.moveTo(k,0):p&&!t?a.moveTo(0,k):"square"==g||"default"==g&&"square"==e?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(k,n+k):a.moveTo(0,
-0)};W.prototype.lineNWInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(k,0):p&&!t?a.lineTo(0,k):"square"==g||"default"==g&&"square"==e?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,n+k):a.lineTo(0,0)};W.prototype.paintFolds=function(a,c,b,d,f,e,g,n,k,p,t,v,m,q,B){if("fold"==e||"fold"==g||"fold"==n||"fold"==k||"fold"==p)("fold"==g||"default"==
-g&&"fold"==e)&&v&&B&&(a.moveTo(0,t),a.lineTo(t,t),a.lineTo(t,0)),("fold"==n||"default"==n&&"fold"==e)&&v&&m&&(a.moveTo(d-t,0),a.lineTo(d-t,t),a.lineTo(d,t)),("fold"==k||"default"==k&&"fold"==e)&&q&&m&&(a.moveTo(d-t,f),a.lineTo(d-t,f-t),a.lineTo(d,f-t)),("fold"==p||"default"==p&&"fold"==e)&&q&&B&&(a.moveTo(0,f-t),a.lineTo(t,f-t),a.lineTo(t,f))};mxCellRenderer.registerShape(W.prototype.cst.RECT2,W);W.prototype.constraints=null;mxUtils.extend(Aa,mxConnector);Aa.prototype.origPaintEdgeShape=Aa.prototype.paintEdgeShape;
-Aa.prototype.paintEdgeShape=function(a,c,b){for(var d=[],f=0;f<c.length;f++)d.push(mxUtils.clone(c[f]));var f=a.state.dashed,e=a.state.fixDash;Aa.prototype.origPaintEdgeShape.apply(this,[a,d,b]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),Aa.prototype.origPaintEdgeShape.apply(this,[a,c,b])))};mxCellRenderer.registerShape("filledEdge",Aa);"undefined"!==typeof StyleFormatPanel&&function(){var a=
-StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==c.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1);return function(){a.begin();a.moveTo(d.x-t/2-x/2,d.y-x/2+t/2);a.lineTo(d.x+x/2-3*t/2,d.y-3*x/2-t/2);a.stroke()}});mxMarker.addMarker("box",
-function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1),v=d.x+t/2,m=d.y+x/2;d.x-=t;d.y-=x;return function(){a.begin();a.moveTo(v-t/2-x/2,m-x/2+t/2);a.lineTo(v-t/2+x/2,m-x/2-t/2);a.lineTo(v+x/2-3*t/2,m-3*x/2-t/2);a.lineTo(v-x/2-3*t/2,m-3*x/2+t/2);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1);return function(){a.begin();a.moveTo(d.x-t/2-x/2,d.y-x/2+t/2);a.lineTo(d.x+x/2-3*t/2,d.y-3*x/2-t/2);a.moveTo(d.x-t/2+x/2,d.y-
-x/2-t/2);a.lineTo(d.x-x/2-3*t/2,d.y-3*x/2+t/2);a.stroke()}});mxMarker.addMarker("circle",Ta);mxMarker.addMarker("circlePlus",function(a,c,b,d,f,e,g,n,k,p){var t=d.clone(),x=Ta.apply(this,arguments),v=f*(g+2*k),m=e*(g+2*k);return function(){x.apply(this,arguments);a.begin();a.moveTo(t.x-f*k,t.y-e*k);a.lineTo(t.x-2*v+f*k,t.y-2*m+e*k);a.moveTo(t.x-v-m+e*k,t.y-m+v-f*k);a.lineTo(t.x+m-v-e*k,t.y-m-v+f*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+
-k+1),v=d.clone();d.x-=t;d.y-=x;return function(){a.begin();a.moveTo(v.x-x,v.y+t);a.quadTo(d.x-x,d.y+t,d.x,d.y);a.quadTo(d.x+x,d.y-t,v.x+x,v.y-t);a.stroke()}});mxMarker.addMarker("async",function(a,c,d,b,f,e,g,n,k,p){c=f*k*1.118;d=e*k*1.118;f*=g+k;e*=g+k;var t=b.clone();t.x-=c;t.y-=d;b.x+=1*-f-c;b.y+=1*-e-d;return function(){a.begin();a.moveTo(t.x,t.y);n?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",
-function(a){a=null!=a?a:2;return function(c,d,b,f,e,g,n,k,p,t){e*=n+p;g*=n+p;var x=f.clone();return function(){c.begin();c.moveTo(x.x,x.y);k?c.lineTo(x.x-e-g/a,x.y-g+e/a):c.lineTo(x.x+g/a-e,x.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Xa=function(a,c,d){return La(a,["width"],c,function(c,b,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+d;return new mxPoint(e.x+b*c/4+f*g/2,e.y+f*c/4-b*g/2)},function(c,b,f,e,g,n){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));a.style.width=
-Math.round(2*c)/a.view.scale-d})},La=function(a,c,d,b,f){return da(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g=a.view.scale,n=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-n.x,k=f.y-n.y,p=Math.sqrt(e*e+k*k),n=b.call(this,p,e/p,k/p,n,f);return new mxPoint(n.x/g-c.x,n.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,n=g.length-1;c=a.view.translate;var k=a.view.scale,p=d?g[0]:g[n],g=d?g[1]:g[n-1],n=g.x-p.x,t=g.y-p.y,x=Math.sqrt(n*n+t*t);b.x=(b.x+c.x)*k;b.y=(b.y+c.y)*k;f.call(this,
-x,n/x,t/x,p,g,b,e)})},Ea=function(a){return function(c){return[da(c,["arrowWidth","arrowSize"],function(c){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ga.prototype.arrowWidth))),b=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",ga.prototype.arrowSize)));return new mxPoint(c.x+(1-b)*c.width,c.y+(1-d)*c.height/2)},function(c,d){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(c.y+c.height/2-d.y)/c.height*2));this.state.style.arrowSize=Math.max(0,
-Math.min(a,(c.x+c.width-d.x)/c.width))})]}},Ua=function(a){return function(c){return[da(c,["size"],function(c){var d=Math.max(0,Math.min(.5*c.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(c.x,c.y+d)},function(a,c){this.state.style.size=Math.max(0,c.y-a.y)},!0)]}},Ra=function(a,c,d){return function(b){var f=[da(b,["size"],function(d){var b=Math.max(0,Math.min(d.width,Math.min(d.height,parseFloat(mxUtils.getValue(this.state.style,"size",c)))))*a;return new mxPoint(d.x+
-b,d.y+b)},function(c,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(c.width,d.x-c.x),Math.min(c.height,d.y-c.y)))/a)},!1)];d&&mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ba(b));return f}},Ma=function(a,c,d,b,f){d=null!=d?d:.5;return function(e){var g=[da(e,["size"],function(c){var d=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,b=parseFloat(mxUtils.getValue(this.state.style,"size",d?f:a));return new mxPoint(c.x+Math.max(0,Math.min(.5*c.width,
-b*(d?1:c.width))),c.getCenterY())},function(a,c,b){a=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?c.x-a.x:Math.max(0,Math.min(d,(c.x-a.x)/a.width));this.state.style.size=a},!1,b)];c&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(Ba(e));return g}},Va=function(a,c,d){a=null!=a?a:.5;return function(b){var f=[da(b,["size"],function(b){var f=null!=d?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,e=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
-"size",f?d:c)));return new mxPoint(b.x+Math.min(.75*b.width*a,e*(f?.75:.75*b.width)),b.y+b.height/4)},function(c,b){var f=null!=d&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?b.x-c.x:Math.max(0,Math.min(a,(b.x-c.x)/c.width*.75));this.state.style.size=f},!1,!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ba(b));return f}},Ka=function(){return function(a){var c=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c}},Ba=function(a,c){return da(a,
-[mxConstants.STYLE_ARCSIZE],function(d){var b=null!=c?c:d.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var f=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(d.x+d.width-Math.min(d.width/2,f),d.y+b)}f=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(d.x+d.width-Math.min(Math.max(d.width/2,d.height/2),Math.min(d.width,d.height)*
-f),d.y+b)},function(c,d,b){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(c.width,2*(c.x+c.width-d.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(c.width-d.x+c.x)/Math.min(c.width,c.height))))})},da=function(a,c,d,b,f,e,g){var n=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);n.execute=function(a){for(var d=0;d<c.length;d++)this.copyStyle(c[d]);
-g&&g(a)};n.getPosition=d;n.setPosition=b;n.ignoreGrid=null!=f?f:!0;if(e){var k=n.positionChanged;n.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return n},Na={link:function(a){return[Xa(a,!0,10),Xa(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,d=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(d.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
-!0,function(c,d,b,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2,f.y+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2)},function(d,b,f,e,g,n,k){d=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(b-a.shape.strokewidth)/
-3)/100/a.view.scale;a.style.width=Math.round(2*d)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),d.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,
-d,b,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2,f.y+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2)},function(d,b,f,e,g,n,k){d=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(b-a.shape.strokewidth)/3)/
-100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*d)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-
-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(d.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,d,b,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2,f.y+b*(e+a.shape.strokewidth*
-a.view.scale)+d*c/2)},function(d,b,f,e,g,n,k){d=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(b-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*d)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<
-c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),d.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,d,b,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2,f.y+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2)},function(d,b,f,e,g,n,k){d=
-Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(b-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*d)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-
-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<c&&(a.style.endWidth=a.style.startWidth))})));return d},swimlane:function(a){var c=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var d=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));c.push(Ba(a,d/2))}c.push(da(a,[mxConstants.STYLE_STARTSIZE],
-function(c){var d=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(c.getCenterX(),c.y+Math.max(0,Math.min(c.height,d))):new mxPoint(c.x+Math.max(0,Math.min(c.width,d)),c.getCenterY())},function(c,d){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(c.height,d.y-c.y))):Math.round(Math.max(0,
-Math.min(c.width,d.x-c.x)))},!1,null,function(c){if(mxEvent.isControlDown(c.getEvent())&&(c=a.view.graph,c.isTableRow(a.cell)||c.isTableCell(a.cell))){for(var d=c.getSwimlaneDirection(a.style),b=c.model.getParent(a.cell),b=c.model.getChildCells(b,!0),f=[],e=0;e<b.length;e++)b[e]!=a.cell&&c.isSwimlane(b[e])&&c.getSwimlaneDirection(c.getCurrentCellStyle(b[e]))==d&&f.push(b[e]);c.setCellStyles(mxConstants.STYLE_STARTSIZE,a.style[mxConstants.STYLE_STARTSIZE],f)}}));return c},label:Ka(),ext:Ka(),rectangle:Ka(),
-triangle:Ka(),rhombus:Ka(),umlLifeline:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Y.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},umlFrame:function(a){return[da(a,["width","height"],function(a){var c=Math.max(X.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",X.prototype.width))),
-d=Math.max(1.5*X.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",X.prototype.height)));return new mxPoint(a.x+c,a.y+d)},function(a,c){this.state.style.width=Math.round(Math.max(X.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*X.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[da(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),d=parseFloat(mxUtils.getValue(this.state.style,
-"size",J.prototype.size));return c?new mxPoint(a.x+d,a.y+a.height/4):new mxPoint(a.x+a.width*d,a.y+a.height/4)},function(a,c){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*a.width,c.x-a.x)):Math.max(0,Math.min(.5,(c.x-a.x)/a.width));this.state.style.size=d},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},cross:function(a){return[da(a,["size"],function(a){var c=Math.min(a.width,a.height),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"size",ua.prototype.size)))*c/2;return new mxPoint(a.getCenterX()-c,a.getCenterY()-c)},function(a,c){var d=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-c.y)/d*2,Math.max(0,a.getCenterX()-c.x)/d*2)))})]},note:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=
-Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},note2:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",q.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[da(a,["size"],function(a){var c=
-Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",T.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},dataStorage:function(a){return[da(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),d=parseFloat(mxUtils.getValue(this.state.style,"size",c?S.prototype.fixedSize:
-S.prototype.size));return new mxPoint(a.x+a.width-d*(c?1:a.width),a.getCenterY())},function(a,c){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=d},!1)]},callout:function(a){var c=[da(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"position",D.prototype.position)));mxUtils.getValue(this.state.style,"base",D.prototype.base);return new mxPoint(a.x+d*a.width,a.y+a.height-c)},function(a,c){mxUtils.getValue(this.state.style,"base",D.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),da(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",D.prototype.position2)));
-return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),da(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position))),b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",D.prototype.base)));return new mxPoint(a.x+Math.min(a.width,
-d*a.width+b),a.y+a.height-c)},function(a,c){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-d*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},internalStorage:function(a){var c=[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ca.prototype.dx))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",ca.prototype.dy)));return new mxPoint(a.x+c,a.y+d)},function(a,c){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},module:function(a){return[da(a,["jettyWidth","jettyHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ia.prototype.jettyWidth))),d=Math.max(0,Math.min(a.height,
-mxUtils.getValue(this.state.style,"jettyHeight",ia.prototype.jettyHeight)));return new mxPoint(a.x+c/2,a.y+2*d)},function(a,c){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y))/2)})]},corner:function(a){return[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ja.prototype.dx))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",ja.prototype.dy)));return new mxPoint(a.x+c,a.y+d)},function(a,c){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},tee:function(a){return[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",O.prototype.dx))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",O.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+d)},function(a,
-c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},singleArrow:Ea(1),doubleArrow:Ea(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,
-"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+d)},function(a,c){var d=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=a.width-d);this.state.style.tabWidth=Math.round(d);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},document:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
-"size",F.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},tape:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",A.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[da(a,
-["isoAngle"],function(a){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",c.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(d),.5*a.height))},function(a,c){this.state.style.isoAngle=Math.max(0,50*(c.y-a.y)/a.height)},!0)]},cylinder2:Ua(f.prototype.size),cylinder3:Ua(g.prototype.size),offPageConnector:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",qa.prototype.size))));
-return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},"mxgraph.basic.rect":function(a){var c=[Graph.createHandle(a,["size"],function(a){var c=Math.max(0,Math.min(a.width/2,a.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+c,a.y+c)},function(a,c){this.state.style.size=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,c.x-a.x)))/100})];a=Graph.createHandle(a,
-["indent"],function(a){var c=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+c*a.height/200)},function(a,c){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(c.y-a.y)/a.height)))/100});c.push(a);return c},step:Ma(K.prototype.size,!0,null,!0,K.prototype.fixedSize),hexagon:Ma(I.prototype.size,!0,.5,!0,I.prototype.fixedSize),curlyBracket:Ma(L.prototype.size,!1),display:Ma(wa.prototype.size,!1),cube:Ra(1,
-b.prototype.size,!1),card:Ra(.5,v.prototype.size,!0),loopLimit:Ra(.5,aa.prototype.size,!0),trapezoid:Va(.5,z.prototype.size,z.prototype.fixedSize),parallelogram:Va(1,y.prototype.size,y.prototype.fixedSize)};Graph.createHandle=da;Graph.handleFactory=Na;var bb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=bb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&
-null==mxStencilRegistry.getStencil(c)?c=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(c=mxConstants.SHAPE_SWIMLANE);c=Na[c];null==c&&null!=this.state.shape&&this.state.shape.isRoundable()&&(c=Na[mxConstants.SHAPE_RECTANGLE]);null!=c&&(c=c(this.state),null!=c&&(a=null==a?c:a.concat(c)))}return a};mxEdgeHandler.prototype.createCustomHandles=function(){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
-a=Na[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Oa=new mxPoint(1,0),Pa=new mxPoint(1,0),Ea=mxUtils.toRadians(-30),Oa=mxUtils.getRotatedPoint(Oa,Math.cos(Ea),Math.sin(Ea)),Ea=mxUtils.toRadians(-150),Pa=mxUtils.getRotatedPoint(Pa,Math.cos(Ea),Math.sin(Ea));mxEdgeStyle.IsometricConnector=function(a,c,d,b,f){var e=a.view;b=null!=b&&0<b.length?b[0]:null;var g=a.absolutePoints,n=g[0],g=g[g.length-1];null!=b&&(b=e.transformControlPoint(a,b));null==
-n&&null!=c&&(n=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=d&&(g=new mxPoint(d.getCenterX(),d.getCenterY()));var k=Oa.x,p=Oa.y,t=Pa.x,v=Pa.y,m="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=n){a=function(a,c,d){a-=q.x;var b=c-q.y;c=(v*a-t*b)/(k*v-p*t);a=(p*a-k*b)/(p*t-k*v);m?(d&&(q=new mxPoint(q.x+k*c,q.y+p*c),f.push(q)),q=new mxPoint(q.x+t*a,q.y+v*a)):(d&&(q=new mxPoint(q.x+t*a,q.y+v*a),f.push(q)),q=new mxPoint(q.x+k*c,q.y+p*c));f.push(q)};var q=n;null==
-b&&(b=new mxPoint(n.x+(g.x-n.x)/2,n.y+(g.y-n.y)/2));a(b.x,b.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var cb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var d=new mxElbowEdgeHandler(a);d.snapToTerminals=!1;return d}return cb.apply(this,arguments)};d.prototype.constraints=[];l.prototype.getConstraints=function(a,c,d){a=[];var b=Math.tan(mxUtils.toRadians(30)),f=(.5-
-b)/2,b=Math.min(c,d/(.5+b));c=(c-b)/2;d=(d-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d+.25*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*b,d+b*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+b,d+.25*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+b,d+.75*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*b,d+(1-f)*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d+.75*b));return a};c.prototype.getConstraints=
-function(a,c,d){a=[];var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,b=Math.min(c*Math.tan(b),.5*d);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d-b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));return a};D.prototype.getConstraints=function(a,c,d){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-c,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d-b)));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
-0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,
-1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];xa.prototype.constraints=mxRectangleShape.prototype.constraints;
-mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d+b)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};v.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d+b)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};b.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,Math.min(d,parseFloat(mxUtils.getValue(this.style,
-"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d+b)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(c+b),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,d-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d-b)));return a};g.prototype.getConstraints=function(a,c,d){a=[];c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c+.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(1,
-0),!1,null,0,c+.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d-c-.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-c-.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-c));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-c));return a};p.prototype.getConstraints=
-function(a,c,d){a=[];var b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,b,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),f))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,.25*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.75*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,.75*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};ca.prototype.constraints=mxRectangleShape.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;sa.prototype.constraints=mxEllipse.prototype.constraints;ta.prototype.constraints=mxEllipse.prototype.constraints;
-Fa.prototype.constraints=mxEllipse.prototype.constraints;Ia.prototype.constraints=mxEllipse.prototype.constraints;T.prototype.constraints=mxRectangleShape.prototype.constraints;za.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.getConstraints=function(a,c,d){a=[];var b=Math.min(c,d/2),f=Math.min(c-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-b),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));return a};ia.prototype.getConstraints=function(a,c,d){c=parseFloat(mxUtils.getValue(a,
-"jettyWidth",ia.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ia.prototype.jettyHeight));var b=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
-.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(d-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(d-.5*a,3.5*a))];d>5*a&&b.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,c));d>8*a&&b.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1,null,c));d>15*a&&b.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,c));return b};aa.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];B.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
-.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];fa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
-.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,
-.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];k.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
-.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];A.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
-.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
-0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,
-.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,
-1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
+b+f),a.lineTo(c+e,b+f),a.quadTo(c,b+f,c,b+f-e),a.lineTo(c,b+e),a.quadTo(c,b,c+e,b)):(a.moveTo(c,b),a.lineTo(c+d,b),a.lineTo(c+d,b+f),a.lineTo(c,b+f),a.lineTo(c,b)),a.close(),a.end(),a.fillAndStroke()}};mxUtils.extend(J,mxRectangleShape);J.prototype.size=.1;J.prototype.fixedSize=!1;J.prototype.isHtmlAllowed=function(){return!1};J.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||
+this.direction==mxConstants.DIRECTION_WEST)){var c=a.width,b=a.height;a=new mxRectangle(a.x,a.y,c,b);var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(c*f,b*f));a.x+=Math.round(d);a.width-=Math.round(2*d)}return a};J.prototype.paintForeground=function(a,c,b,d,f){var e=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),
+x=parseFloat(mxUtils.getValue(this.style,"size",this.size)),x=e?Math.max(0,Math.min(d,x)):d*Math.max(0,Math.min(1,x));this.isRounded&&(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,x=Math.max(x,Math.min(d*e,f*e)));x=Math.round(x);a.begin();a.moveTo(c+x,b);a.lineTo(c+x,b+f);a.moveTo(c+d-x,b);a.lineTo(c+d-x,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",J);mxCellRenderer.registerShape("process2",
+J);mxUtils.extend(H,mxRectangleShape);H.prototype.paintBackground=function(a,c,b,d,f){a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};H.prototype.paintForeground=function(a,c,b,d,f){};mxCellRenderer.registerShape("transparent",H);mxUtils.extend(D,mxHexagon);D.prototype.size=30;D.prototype.position=.5;D.prototype.position2=.5;D.prototype.base=20;D.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};D.prototype.isRoundable=
+function(){return!0};D.prototype.redrawPath=function(a,c,b,d,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),x=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));
+this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-b),new mxPoint(Math.min(d,e+g),f-b),new mxPoint(x,f),new mxPoint(Math.max(0,e),f-b),new mxPoint(0,f-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",D);mxUtils.extend(K,mxActor);K.prototype.size=.2;K.prototype.fixedSize=20;K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
+"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(0,f),new mxPoint(c,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",K);mxUtils.extend(I,mxHexagon);I.prototype.size=.25;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};
+I.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.5*f),new mxPoint(d-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,b,
+!0)};mxCellRenderer.registerShape("hexagon",I);mxUtils.extend(R,mxRectangleShape);R.prototype.isHtmlAllowed=function(){return!1};R.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",R);var Xa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==
+this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Xa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Xa.apply(this,[a,c,b,d,f]))}};mxUtils.extend(N,
+mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};N.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
+0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,x;do{x=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=x){var g=this.style["symbol"+e+"Align"],k=this.style["symbol"+e+"VerticalAlign"],n=this.style["symbol"+e+"Width"],p=this.style["symbol"+e+"Height"],oa=this.style["symbol"+e+"Spacing"]||0,wa=this.style["symbol"+e+"VSpacing"]||oa,t=this.style["symbol"+e+"ArcSpacing"];null!=t&&(t*=this.getArcSize(d+this.strokewidth,
+f+this.strokewidth),oa+=t,wa+=t);var t=c,ya=b,t=g==mxConstants.ALIGN_CENTER?t+(d-n)/2:g==mxConstants.ALIGN_RIGHT?t+(d-n-oa):t+oa,ya=k==mxConstants.ALIGN_MIDDLE?ya+(f-p)/2:k==mxConstants.ALIGN_BOTTOM?ya+(f-p-wa):ya+wa;a.save();g=new x;g.style=this.style;x.prototype.paintVertexShape.call(g,a,t,ya,n,p);a.restore()}e++}while(null!=x)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(n,mxCylinder);n.prototype.redrawPath=function(a,c,
+b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",n);mxUtils.extend(B,mxShape);B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/4);a.fillAndStroke();a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0,f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();
+a.stroke()};mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(C,mxShape);C.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};C.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",C);mxUtils.extend(ka,mxEllipse);ka.prototype.paintVertexShape=
+function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",ka);mxUtils.extend(E,mxShape);E.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(d,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",E);mxUtils.extend(U,mxShape);U.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,
+a.y+a.height/8,a.width,7*a.height/8)};U.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,f/8,d,7*f/8);a.fillAndStroke()};U.prototype.paintForeground=function(a,c,b,d,f){a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",U);mxUtils.extend(Y,mxRectangleShape);Y.prototype.size=40;Y.prototype.isHtmlAllowed=function(){return!1};Y.prototype.getLabelBounds=
+function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};Y.prototype.paintBackground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),x=mxUtils.getValue(this.style,"participant");null==x||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,c,b,d,e):(x=this.state.view.graph.cellRenderer.getShape(x),null!=x&&x!=Y&&(x=new x,
+x.apply(this.state),a.save(),x.paintVertexShape(a,c,b,d,e),a.restore()));e<f&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(c+d/2,b+e),a.lineTo(c+d/2,b+f),a.end(),a.stroke())};Y.prototype.paintForeground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,b,d,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline",Y);mxUtils.extend(X,mxShape);
+X.prototype.width=60;X.prototype.height=30;X.prototype.corner=10;X.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};X.prototype.paintBackground=function(a,c,b,d,f){var e=this.corner,x=Math.min(d,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(f,Math.max(1.5*e,parseFloat(mxUtils.getValue(this.style,
+"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(a.setFillColor(k),a.rect(c,b,d,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,c,b,d,f),a.setGradient(this.fill,this.gradient,c,b,d,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,b);a.lineTo(c+x,b);a.lineTo(c+x,b+Math.max(0,g-1.5*e));a.lineTo(c+Math.max(0,x-
+e),b+g);a.lineTo(c,b+g);a.close();a.fillAndStroke();a.begin();a.moveTo(c+x,b);a.lineTo(c+d,b);a.lineTo(c+d,b+f);a.lineTo(c,b+f);a.lineTo(c,b+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",X);mxPerimeter.CenterPerimeter=function(a,c,b,d){return new mxPoint(a.getCenterX(),a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,c,b,d){d=Y.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||
+1)*c.view.scale/2-1;b.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y+d,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,c,b,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,b,d){d=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||
+1)*c.view.scale/2-1;null!=c.style.backboneSize&&(d+=parseFloat(c.style.backboneSize)*c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return b.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=
+function(a,c,b,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",D.prototype.size))*c.view.scale))),c.style),c,b,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?y.prototype.fixedSize:y.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));
+f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g)]):(f=f?Math.max(0,Math.min(.5*k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k,g),
+new mxPoint(x+k-f,g+n),new mxPoint(x,g+n),new mxPoint(x+f,g)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<x||b.x>x+k?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?z.prototype.fixedSize:z.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,
+g=a.y,k=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(.5*k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k-f,g),new mxPoint(x+k,g+n),new mxPoint(x,g+n),new mxPoint(x+f,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g),new mxPoint(x+k-f,g+n),new mxPoint(x+
+f,g+n),new mxPoint(x,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g+f),new mxPoint(x+k,g),new mxPoint(x+k,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n-f),new mxPoint(x,g+n),new mxPoint(x,g)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<x||b.x>x+k?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,
+a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?K.prototype.fixedSize:K.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height,p=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?
+(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k-f,g),new mxPoint(x+k,a),new mxPoint(x+k-f,g+n),new mxPoint(x,g+n),new mxPoint(x+f,a),new mxPoint(x,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k,g),new mxPoint(x+k-f,a),new mxPoint(x+k,g+n),new mxPoint(x+f,g+n),new mxPoint(x,a),new mxPoint(x+f,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,
+Math.min(1,e)),g=[new mxPoint(x,g+f),new mxPoint(p,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n),new mxPoint(p,g+n-f),new mxPoint(x,g+n),new mxPoint(x,g+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(p,g+f),new mxPoint(x+k,g),new mxPoint(x+k,g+n-f),new mxPoint(p,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g)]);p=new mxPoint(p,a);d&&(b.x<x||b.x>x+k?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);
+mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?I.prototype.fixedSize:I.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height,p=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,
+Math.min(1,e)),g=[new mxPoint(p,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n-f),new mxPoint(p,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g+f),new mxPoint(p,g)]):(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k-f,g),new mxPoint(x+k,a),new mxPoint(x+k-f,g+n),new mxPoint(x+f,g+n),new mxPoint(x,a),new mxPoint(x+f,g)]);p=new mxPoint(p,a);d&&(b.x<x||b.x>x+k?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("hexagonPerimeter2",
+mxPerimeter.HexagonPerimeter2);mxUtils.extend(la,mxShape);la.prototype.size=10;la.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",la);mxUtils.extend(pa,mxShape);pa.prototype.size=10;pa.prototype.inset=2;pa.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,
+"size",this.size)),x=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.begin();a.moveTo(d/2,e+x);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-x,e/2);a.quadTo((d-e)/2-x,e+x,d/2,e+x);a.quadTo((d+e)/2+x,e+x,(d+e)/2+x,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",pa);mxUtils.extend(Z,mxShape);Z.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.end();
+a.stroke()};mxCellRenderer.registerShape("requiredInterface",Z);mxUtils.extend(ha,mxShape);ha.prototype.inset=2;ha.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ha);mxUtils.extend(ia,mxCylinder);ia.prototype.jettyWidth=
+20;ia.prototype.jettyHeight=10;ia.prototype.redrawPath=function(a,c,b,d,f,e){var x=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=x/2;var x=b+x/2,g=Math.min(c,f-c),k=Math.min(g+2*c,f-c);e?(a.moveTo(b,g),a.lineTo(x,g),a.lineTo(x,g+c),a.lineTo(b,g+c),a.moveTo(b,k),a.lineTo(x,k),a.lineTo(x,k+c),a.lineTo(b,k+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,k+c),a.lineTo(0,k+c),a.lineTo(0,
+k),a.lineTo(b,k),a.lineTo(b,g+c),a.lineTo(0,g+c),a.lineTo(0,g),a.lineTo(b,g),a.close());a.end()};mxCellRenderer.registerShape("module",ia);mxUtils.extend(fa,mxCylinder);fa.prototype.jettyWidth=32;fa.prototype.jettyHeight=12;fa.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,x=.3*f-c/2,k=.7*f-c/2;e?(a.moveTo(b,x),a.lineTo(g,x),a.lineTo(g,
+x+c),a.lineTo(b,x+c),a.moveTo(b,k),a.lineTo(g,k),a.lineTo(g,k+c),a.lineTo(b,k+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(b,k),a.lineTo(b,x+c),a.lineTo(0,x+c),a.lineTo(0,x),a.lineTo(b,x),a.close());a.end()};mxCellRenderer.registerShape("component",fa);mxUtils.extend(ba,mxRectangleShape);ba.prototype.paintForeground=function(a,c,b,d,f){var e=d/2,g=f/2,x=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
+2;a.begin();this.addPoints(a,[new mxPoint(c+e,b),new mxPoint(c+d,b+g),new mxPoint(c+e,b+f),new mxPoint(c,b+g)],this.isRounded,x,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ba);mxUtils.extend(ma,mxDoubleEllipse);ma.prototype.outerStroke=!0;ma.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&
+(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",ma);mxUtils.extend(V,ma);V.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",V);mxUtils.extend(Q,mxArrowConnector);Q.prototype.defaultWidth=4;Q.prototype.isOpenEnded=function(){return!0};Q.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Q.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
+Q);mxUtils.extend(na,mxArrowConnector);na.prototype.defaultWidth=10;na.prototype.defaultArrowWidth=20;na.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};na.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};na.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};
+mxCellRenderer.registerShape("flexArrow",na);mxUtils.extend(T,mxActor);T.prototype.size=30;T.prototype.isRoundable=function(){return!0};T.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",T);mxUtils.extend(ca,
+mxRectangleShape);ca.prototype.dx=20;ca.prototype.dy=20;ca.prototype.isHtmlAllowed=function(){return!1};ca.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+"dy",this.dy))));a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ca);mxUtils.extend(ja,mxActor);ja.prototype.dx=20;ja.prototype.dy=20;ja.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,
+"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("corner",ja);mxUtils.extend(ra,mxActor);ra.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",
+ra);mxUtils.extend(O,mxActor);O.prototype.dx=20;O.prototype.dy=20;O.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+c)/
+2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",O);mxUtils.extend(ga,mxActor);ga.prototype.arrowWidth=.3;ga.prototype.arrowSize=.2;ga.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=b+e,
+g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",ga);mxUtils.extend(ea,mxActor);ea.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth))));c=d*Math.max(0,
+Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ea);mxUtils.extend(S,mxActor);S.prototype.size=
+.1;S.prototype.fixedSize=20;S.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",S);mxUtils.extend(za,mxActor);za.prototype.redrawPath=function(a,
+c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",za);mxUtils.extend(P,mxActor);P.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",P);mxUtils.extend(aa,mxActor);aa.prototype.size=20;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",aa);mxUtils.extend(qa,mxActor);qa.prototype.size=.375;qa.prototype.isRoundable=function(){return!0};qa.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",qa);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/2,b+f);a.lineTo(c+d,b+f);a.end();a.stroke()};
+mxCellRenderer.registerShape("tapeData",sa);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke();a.begin();a.moveTo(c+d/2,b);a.lineTo(c+d/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",ta);mxUtils.extend(Fa,mxEllipse);Fa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,
+arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*d,b+.145*f);a.lineTo(c+.855*d,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*d,b+.145*f);a.lineTo(c+.145*d,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",Fa);mxUtils.extend(Da,mxRhombus);Da.prototype.paintVertexShape=function(a,c,b,d,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",
+Da);mxUtils.extend(Ga,mxEllipse);Ga.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",Ga);mxUtils.extend(Ja,mxEllipse);Ja.prototype.paintVertexShape=function(a,c,b,d,f){var e=b+f-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+f);a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,
+e+5);a.moveTo(c,e);a.lineTo(c+d,e);a.moveTo(c+d,b);a.lineTo(c+d,b+f);a.moveTo(c+d,e);a.lineTo(c+d-10,e-5);a.moveTo(c+d,e);a.lineTo(c+d-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",Ja);mxUtils.extend(xa,mxEllipse);xa.prototype.paintVertexShape=function(a,c,b,d,f){this.outline||a.setStrokeColor(null);if(null!=this.style){var e=a.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=
+!1);a.rect(c,b,d,f);a.fill();a.pointerEvents=e;a.setStrokeColor(this.stroke);a.begin();a.moveTo(c,b);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+d,b):a.moveTo(c+d,b);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+d,b+f):a.moveTo(c+d,b+f);this.outline||"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,b+f):a.moveTo(c,b+f);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(c,b);a.end();a.stroke()}};mxCellRenderer.registerShape("partialRectangle",
+xa);mxUtils.extend(Ia,mxEllipse);Ia.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+d/2,b),a.lineTo(c+d/2,b+f)):(a.moveTo(c,b+f/2),a.lineTo(c+d,b+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",Ia);mxUtils.extend(Aa,mxActor);Aa.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);a.moveTo(0,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);
+a.quadTo(d,f,d-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay",Aa);mxUtils.extend(ua,mxActor);ua.prototype.size=.2;ua.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,d);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;b=c+e;var g=(d-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(d,c);a.lineTo(d,b);a.lineTo(e,b);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,b);a.lineTo(0,b);a.close();
+a.end()};mxCellRenderer.registerShape("cross",ua);mxUtils.extend(va,mxActor);va.prototype.size=.25;va.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);b=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",va);mxUtils.extend(W,mxActor);W.prototype.cst={RECT2:"mxgraph.basic.rect"};W.prototype.customProperties=
+[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",
+dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",
+defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",
+type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},
+{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]}];W.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);this.strictDrawShape(a,0,0,d,f)};W.prototype.strictDrawShape=function(a,c,b,d,f,e){var g=e&&e.rectStyle?e.rectStyle:
+mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=e&&e.absoluteCornerSize?e.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),n=e&&e.size?e.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=e&&e.rectOutline?e.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),x=e&&e.indent?e.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),t=e&&e.dashed?e.dashed:
+mxUtils.getValue(this.style,"dashed",!1),v=e&&e.dashPattern?e.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),l=e&&e.relIndent?e.relIndent:Math.max(0,Math.min(50,x)),m=e&&e.top?e.top:mxUtils.getValue(this.style,"top",!0),q=e&&e.right?e.right:mxUtils.getValue(this.style,"right",!0),B=e&&e.bottom?e.bottom:mxUtils.getValue(this.style,"bottom",!0),C=e&&e.left?e.left:mxUtils.getValue(this.style,"left",!0),y=e&&e.topLeftStyle?e.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),
+z=e&&e.topRightStyle?e.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),E=e&&e.bottomRightStyle?e.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),A=e&&e.bottomLeftStyle?e.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),u=e&&e.fillColor?e.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");e&&e.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var ka=e&&e.strokeWidth?e.strokeWidth:mxUtils.getValue(this.style,
+"strokeWidth","1"),wa=e&&e.fillColor2?e.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),I=e&&e.gradientColor2?e.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),F=e&&e.gradientDirection2?e.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),oa=e&&e.opacity?e.opacity:mxUtils.getValue(this.style,"opacity","100"),D=Math.max(0,Math.min(50,n));e=W.prototype;a.setDashed(t);v&&""!=v&&a.setDashPattern(v);a.setStrokeWidth(ka);n=Math.min(.5*f,.5*d,n);
+k||(n=D*Math.min(d,f)/100);n=Math.min(n,.5*Math.min(d,f));k||(x=Math.min(l*Math.min(d,f)/100));x=Math.min(x,.5*Math.min(d,f)-n);(m||q||B||C)&&"frame"!=p&&(a.begin(),m?e.moveNW(a,c,b,d,f,g,y,n,C):a.moveTo(0,0),m&&e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),q&&e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),B&&e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),C&&e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(wa),
+t=k=oa,"none"==wa&&(k=0),"none"==I&&(t=0),a.setGradient(wa,I,0,0,d,f,F,k,t),a.begin(),m?e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C):a.moveTo(x,0),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),C&&B&&e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),B&&q&&e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),q&&m&&e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),m&&C&&e.paintNWInner(a,c,b,d,f,g,y,n,x),a.fill(),"none"==u&&(a.begin(),e.paintFolds(a,
+c,b,d,f,g,y,z,E,A,n,m,q,B,C),a.stroke()));m||q||B||!C?m||q||!B||C?!m&&!q&&B&&C?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,
+B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m||!q||B||C?!m&&q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke(),a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==
+p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke(),a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m&&q&&B&&!C?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,
+n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,
+c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m&&q&&B&&C?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,
+n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):
+!m||q||B||C?m&&!q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,
+q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke()):m&&!q&&B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke(),a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),
+a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke(),a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m&&!q&&B&&C?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,
+d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,
+b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m&&q&&!B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,
+g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):m&&q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,
+c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,
+b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke()):m&&q&&B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,
+d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,
+c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):m&&q&&B&&C&&("frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),
+a.close(),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close()),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,
+z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,
+B,C),a.close(),a.fillAndStroke())):"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,
+b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,
+n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke());a.begin();e.paintFolds(a,c,b,
+d,f,g,y,z,E,A,n,m,q,B,C);a.stroke()};W.prototype.moveNW=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(0,0):a.moveTo(0,n)};W.prototype.moveNE=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(d,0):a.moveTo(d-n,0)};W.prototype.moveSE=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(d,f):a.moveTo(d,f-n)};W.prototype.moveSW=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(0,f):
+a.moveTo(n,f)};W.prototype.paintNW=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,n,0)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(n,0);else a.lineTo(0,0)};W.prototype.paintTop=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(d,0):a.lineTo(d-n,0)};W.prototype.paintNE=function(a,c,b,
+d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,d,n)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d,n);else a.lineTo(d,0)};W.prototype.paintRight=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(d,f):a.lineTo(d,f-n)};W.prototype.paintLeft=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==
+e||!k?a.lineTo(0,0):a.lineTo(0,n)};W.prototype.paintSE=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,d-n,f)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-n,f);else a.lineTo(d,f)};W.prototype.paintBottom=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(0,f):a.lineTo(n,f)};W.prototype.paintSW=
+function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,0,f-n)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(0,f-n);else a.lineTo(0,f)};W.prototype.paintNWInner=function(a,c,b,d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,k,.5*k+n);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+
+k,n+k,0,0,1,k,k+n);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(k,.5*k+n);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(k+n,k+n),a.lineTo(k,k+n)};W.prototype.paintTopInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(0,k):p&&!t?a.lineTo(k,0):p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(n+.5*k,k):a.lineTo(n+k,k):a.lineTo(0,k):a.lineTo(0,0)};W.prototype.paintNEInner=function(a,c,b,d,f,
+e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,d-n-.5*k,k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,d-n-k,k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-n-.5*k,k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-n-k,n+k),a.lineTo(d-n-k,k)};W.prototype.paintRightInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(d-k,0):p&&!t?a.lineTo(d,k):p?"square"==g||"default"==g&&"square"==e?a.lineTo(d-k,k):"rounded"==g||"default"==
+g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,n+.5*k):a.lineTo(d-k,n+k):a.lineTo(d-k,0):a.lineTo(d,0)};W.prototype.paintLeftInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(k,f):p&&!t?a.lineTo(0,f-k):p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,f-n-.5*k):a.lineTo(k,f-n-k):a.lineTo(k,f):a.lineTo(0,f)};W.prototype.paintSEInner=function(a,c,b,d,f,e,g,n,k){if("rounded"==g||"default"==
+g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,d-k,f-n-.5*k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,d-k,f-n-k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-k,f-n-.5*k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-n-k,f-n-k),a.lineTo(d-k,f-n-k)};W.prototype.paintBottomInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(d,f-k):p&&!t?a.lineTo(d-k,f):"square"==g||"default"==g&&"square"==e||!p?a.lineTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==
+e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-n-.5*k,f-k):a.lineTo(d-n-k,f-k):a.lineTo(d,f)};W.prototype.paintSWInner=function(a,c,b,d,f,e,g,n,k,p){if(!p)a.lineTo(k,f);else if("square"==g||"default"==g&&"square"==e)a.lineTo(k,f-k);else if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,n+.5*k,f-k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,n+k,f-k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(n+.5*k,f-k);else if("fold"==g||"default"==g&&
+"fold"==e)a.lineTo(k+n,f-n-k),a.lineTo(k+n,f-k)};W.prototype.moveSWInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.moveTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(k,f-n-k):a.moveTo(0,f-k)};W.prototype.lineSWInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,f-k):"rounded"==g||"default"==
+g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,f-n-k):a.lineTo(0,f-k)};W.prototype.moveSEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.moveTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-k,f-n-
+k):a.moveTo(d-k,f)};W.prototype.lineSEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.lineTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,f-n-k):a.lineTo(d-k,f)};W.prototype.moveNEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e||p?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==
+e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-k,n+k):a.moveTo(d,k)};W.prototype.lineNEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e||p?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,n+k):a.lineTo(d,k)};
+W.prototype.moveNWInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.moveTo(k,0):p&&!t?a.moveTo(0,k):"square"==g||"default"==g&&"square"==e?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(k,n+k):a.moveTo(0,0)};W.prototype.lineNWInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(k,0):p&&!t?a.lineTo(0,k):"square"==g||"default"==g&&"square"==
+e?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,n+k):a.lineTo(0,0)};W.prototype.paintFolds=function(a,c,b,d,f,e,g,n,k,p,t,v,m,q,B){if("fold"==e||"fold"==g||"fold"==n||"fold"==k||"fold"==p)("fold"==g||"default"==g&&"fold"==e)&&v&&B&&(a.moveTo(0,t),a.lineTo(t,t),a.lineTo(t,0)),("fold"==n||"default"==n&&"fold"==e)&&v&&m&&(a.moveTo(d-t,0),a.lineTo(d-
+t,t),a.lineTo(d,t)),("fold"==k||"default"==k&&"fold"==e)&&q&&m&&(a.moveTo(d-t,f),a.lineTo(d-t,f-t),a.lineTo(d,f-t)),("fold"==p||"default"==p&&"fold"==e)&&q&&B&&(a.moveTo(0,f-t),a.lineTo(t,f-t),a.lineTo(t,f))};mxCellRenderer.registerShape(W.prototype.cst.RECT2,W);W.prototype.constraints=null;mxUtils.extend(Ba,mxConnector);Ba.prototype.origPaintEdgeShape=Ba.prototype.paintEdgeShape;Ba.prototype.paintEdgeShape=function(a,c,b){for(var d=[],f=0;f<c.length;f++)d.push(mxUtils.clone(c[f]));var f=a.state.dashed,
+e=a.state.fixDash;Ba.prototype.origPaintEdgeShape.apply(this,[a,d,b]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),Ba.prototype.origPaintEdgeShape.apply(this,[a,c,b])))};mxCellRenderer.registerShape("filledEdge",Ba);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=this.format.getSelectionState(),
+b=a.apply(this,arguments);"umlFrame"==c.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1);return function(){a.begin();a.moveTo(d.x-t/2-x/2,d.y-x/2+t/2);a.lineTo(d.x+x/2-3*t/2,d.y-3*x/2-t/2);a.stroke()}});mxMarker.addMarker("box",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1),v=d.x+t/2,m=d.y+x/2;d.x-=t;d.y-=x;return function(){a.begin();
+a.moveTo(v-t/2-x/2,m-x/2+t/2);a.lineTo(v-t/2+x/2,m-x/2-t/2);a.lineTo(v+x/2-3*t/2,m-3*x/2-t/2);a.lineTo(v-x/2-3*t/2,m-3*x/2+t/2);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1);return function(){a.begin();a.moveTo(d.x-t/2-x/2,d.y-x/2+t/2);a.lineTo(d.x+x/2-3*t/2,d.y-3*x/2-t/2);a.moveTo(d.x-t/2+x/2,d.y-x/2-t/2);a.lineTo(d.x-x/2-3*t/2,d.y-3*x/2+t/2);a.stroke()}});mxMarker.addMarker("circle",Ua);mxMarker.addMarker("circlePlus",
+function(a,c,b,d,f,e,g,n,k,p){var t=d.clone(),x=Ua.apply(this,arguments),v=f*(g+2*k),m=e*(g+2*k);return function(){x.apply(this,arguments);a.begin();a.moveTo(t.x-f*k,t.y-e*k);a.lineTo(t.x-2*v+f*k,t.y-2*m+e*k);a.moveTo(t.x-v-m+e*k,t.y-m+v-f*k);a.lineTo(t.x+m-v-e*k,t.y-m-v+f*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1),v=d.clone();d.x-=t;d.y-=x;return function(){a.begin();a.moveTo(v.x-x,v.y+t);a.quadTo(d.x-x,d.y+t,d.x,d.y);a.quadTo(d.x+x,
+d.y-t,v.x+x,v.y-t);a.stroke()}});mxMarker.addMarker("async",function(a,c,d,b,f,e,g,n,k,p){c=f*k*1.118;d=e*k*1.118;f*=g+k;e*=g+k;var t=b.clone();t.x-=c;t.y-=d;b.x+=1*-f-c;b.y+=1*-e-d;return function(){a.begin();a.moveTo(t.x,t.y);n?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(c,d,b,f,e,g,n,k,p,t){e*=n+p;g*=n+p;var x=f.clone();return function(){c.begin();
+c.moveTo(x.x,x.y);k?c.lineTo(x.x-e-g/a,x.y-g+e/a):c.lineTo(x.x+g/a-e,x.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ya=function(a,c,d){return La(a,["width"],c,function(c,b,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+d;return new mxPoint(e.x+b*c/4+f*g/2,e.y+f*c/4-b*g/2)},function(c,b,f,e,g,n){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));a.style.width=Math.round(2*c)/a.view.scale-d})},La=function(a,c,d,b,f){return da(a,c,function(c){var f=a.absolutePoints,e=
+f.length-1;c=a.view.translate;var g=a.view.scale,n=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-n.x,k=f.y-n.y,p=Math.sqrt(e*e+k*k),n=b.call(this,p,e/p,k/p,n,f);return new mxPoint(n.x/g-c.x,n.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,n=g.length-1;c=a.view.translate;var k=a.view.scale,p=d?g[0]:g[n],g=d?g[1]:g[n-1],n=g.x-p.x,t=g.y-p.y,x=Math.sqrt(n*n+t*t);b.x=(b.x+c.x)*k;b.y=(b.y+c.y)*k;f.call(this,x,n/x,t/x,p,g,b,e)})},Ea=function(a){return function(c){return[da(c,["arrowWidth","arrowSize"],function(c){var b=
+Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ga.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",ga.prototype.arrowSize)));return new mxPoint(c.x+(1-d)*c.width,c.y+(1-b)*c.height/2)},function(c,b){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(c.y+c.height/2-b.y)/c.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(c.x+c.width-b.x)/c.width))})]}},Va=function(a){return function(c){return[da(c,["size"],function(c){var b=
+Math.max(0,Math.min(.5*c.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(c.x,c.y+b)},function(a,c){this.state.style.size=Math.max(0,c.y-a.y)},!0)]}},Sa=function(a,c,b){return function(d){var f=[da(d,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",c)))))*a;return new mxPoint(b.x+d,b.y+d)},function(c,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(c.width,b.x-c.x),Math.min(c.height,
+b.y-c.y)))/a)},!1)];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ca(d));return f}},Ma=function(a,c,b,d,f){b=null!=b?b:.5;return function(e){var g=[da(e,["size"],function(c){var b=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",b?f:a));return new mxPoint(c.x+Math.max(0,Math.min(.5*c.width,d*(b?1:c.width))),c.getCenterY())},function(a,c,d){a=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?
+c.x-a.x:Math.max(0,Math.min(b,(c.x-a.x)/a.width));this.state.style.size=a},!1,d)];c&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(Ca(e));return g}},Wa=function(a,c,b){a=null!=a?a:.5;return function(d){var f=[da(d,["size"],function(d){var f=null!=b?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,e=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,"size",f?b:c)));return new mxPoint(d.x+Math.min(.75*d.width*a,e*(f?.75:.75*d.width)),d.y+d.height/4)},function(c,d){var f=
+null!=b&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-c.x:Math.max(0,Math.min(a,(d.x-c.x)/c.width*.75));this.state.style.size=f},!1,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ca(d));return f}},Ka=function(){return function(a){var c=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ca(a));return c}},Ca=function(a,c){return da(a,[mxConstants.STYLE_ARCSIZE],function(b){var d=null!=c?c:b.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,
+0)){var f=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(b.x+b.width-Math.min(b.width/2,f),b.y+d)}f=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(b.x+b.width-Math.min(Math.max(b.width/2,b.height/2),Math.min(b.width,b.height)*f),b.y+d)},function(c,b,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=
+Math.round(Math.max(0,Math.min(c.width,2*(c.x+c.width-b.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(c.width-b.x+c.x)/Math.min(c.width,c.height))))})},da=function(a,c,b,d,f,e,g){var n=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);n.execute=function(a){for(var b=0;b<c.length;b++)this.copyStyle(c[b]);g&&g(a)};n.getPosition=b;n.setPosition=d;n.ignoreGrid=null!=f?f:!0;if(e){var k=n.positionChanged;n.positionChanged=function(){k.apply(this,
+arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return n},Na={link:function(a){return[Ya(a,!0,10),Ya(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,
+mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,n,k){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,n.x,n.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=
+a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/
+5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,n,k){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,n.x,n.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=
+a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(La(a,
+["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,n,k){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,n.x,n.y);a.style[mxConstants.STYLE_ENDSIZE]=
+Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
+!1,function(c,b,d,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,n,k){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,n.x,n.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/
+3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-
+parseFloat(a.style.startWidth))<c&&(a.style.endWidth=a.style.startWidth))})));return b},swimlane:function(a){var c=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));c.push(Ca(a,b/2))}c.push(da(a,[mxConstants.STYLE_STARTSIZE],function(c){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,
+1)?new mxPoint(c.getCenterX(),c.y+Math.max(0,Math.min(c.height,b))):new mxPoint(c.x+Math.max(0,Math.min(c.width,b)),c.getCenterY())},function(c,b){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(c.height,b.y-c.y))):Math.round(Math.max(0,Math.min(c.width,b.x-c.x)))},!1,null,function(c){if(mxEvent.isControlDown(c.getEvent())&&(c=a.view.graph,c.isTableRow(a.cell)||c.isTableCell(a.cell))){for(var b=c.getSwimlaneDirection(a.style),
+d=c.model.getParent(a.cell),d=c.model.getChildCells(d,!0),f=[],e=0;e<d.length;e++)d[e]!=a.cell&&c.isSwimlane(d[e])&&c.getSwimlaneDirection(c.getCurrentCellStyle(d[e]))==b&&f.push(d[e]);c.setCellStyles(mxConstants.STYLE_STARTSIZE,a.style[mxConstants.STYLE_STARTSIZE],f)}}));return c},label:Ka(),ext:Ka(),rectangle:Ka(),triangle:Ka(),rhombus:Ka(),umlLifeline:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Y.prototype.size))));
+return new mxPoint(a.getCenterX(),a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},umlFrame:function(a){return[da(a,["width","height"],function(a){var c=Math.max(X.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",X.prototype.width))),b=Math.max(1.5*X.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",X.prototype.height)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.width=
+Math.round(Math.max(X.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*X.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[da(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),b=parseFloat(mxUtils.getValue(this.state.style,"size",J.prototype.size));return c?new mxPoint(a.x+b,a.y+a.height/4):new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,c){var b="0"!=mxUtils.getValue(this.state.style,
+"fixedSize","0")?Math.max(0,Math.min(.5*a.width,c.x-a.x)):Math.max(0,Math.min(.5,(c.x-a.x)/a.width));this.state.style.size=b},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ca(a));return c},cross:function(a){return[da(a,["size"],function(a){var c=Math.min(a.width,a.height),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ua.prototype.size)))*c/2;return new mxPoint(a.getCenterX()-c,a.getCenterY()-c)},function(a,c){var b=Math.min(a.width,a.height);this.state.style.size=
+Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-c.y)/b*2,Math.max(0,a.getCenterX()-c.x)/b*2)))})]},note:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},note2:function(a){return[da(a,["size"],function(a){var c=
+Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",q.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",T.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,
+c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ca(a));return c},dataStorage:function(a){return[da(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),b=parseFloat(mxUtils.getValue(this.state.style,"size",c?S.prototype.fixedSize:S.prototype.size));return new mxPoint(a.x+a.width-b*(c?1:a.width),a.getCenterY())},function(a,c){var b="0"!=mxUtils.getValue(this.state.style,
+"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=b},!1)]},callout:function(a){var c=[da(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));mxUtils.getValue(this.state.style,"base",D.prototype.base);return new mxPoint(a.x+b*a.width,a.y+a.height-
+c)},function(a,c){mxUtils.getValue(this.state.style,"base",D.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),da(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",D.prototype.position2)));return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,
+(c.x-a.x)/a.width)))/100},!1),da(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",D.prototype.base)));return new mxPoint(a.x+Math.min(a.width,b*a.width+d),a.y+a.height-c)},function(a,c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));
+this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-b*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ca(a));return c},internalStorage:function(a){var c=[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ca.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ca.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
+Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ca(a));return c},module:function(a){return[da(a,["jettyWidth","jettyHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ia.prototype.jettyWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"jettyHeight",ia.prototype.jettyHeight)));return new mxPoint(a.x+c/2,a.y+
+2*b)},function(a,c){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y))/2)})]},corner:function(a){return[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ja.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ja.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
+Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},tee:function(a){return[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",O.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",O.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,
+Math.min(a.height,c.y-a.y)))},!1)]},singleArrow:Ea(1),doubleArrow:Ea(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+b)},function(a,
+c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},document:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",F.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-c)*a.height)},function(a,
+c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},tape:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",A.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[da(a,["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,
+"isoAngle",c.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(b),.5*a.height))},function(a,c){this.state.style.isoAngle=Math.max(0,50*(c.y-a.y)/a.height)},!0)]},cylinder2:Va(f.prototype.size),cylinder3:Va(g.prototype.size),offPageConnector:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",qa.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=
+Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},"mxgraph.basic.rect":function(a){var c=[Graph.createHandle(a,["size"],function(a){var c=Math.max(0,Math.min(a.width/2,a.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+c,a.y+c)},function(a,c){this.state.style.size=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,c.x-a.x)))/100})];a=Graph.createHandle(a,["indent"],function(a){var c=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,
+"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+c*a.height/200)},function(a,c){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(c.y-a.y)/a.height)))/100});c.push(a);return c},step:Ma(K.prototype.size,!0,null,!0,K.prototype.fixedSize),hexagon:Ma(I.prototype.size,!0,.5,!0,I.prototype.fixedSize),curlyBracket:Ma(L.prototype.size,!1),display:Ma(va.prototype.size,!1),cube:Sa(1,b.prototype.size,!1),card:Sa(.5,v.prototype.size,!0),loopLimit:Sa(.5,aa.prototype.size,!0),trapezoid:Wa(.5,
+z.prototype.size,z.prototype.fixedSize),parallelogram:Wa(1,y.prototype.size,y.prototype.fixedSize)};Graph.createHandle=da;Graph.handleFactory=Na;var cb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=cb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&null==mxStencilRegistry.getStencil(c)?c=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&
+(c=mxConstants.SHAPE_SWIMLANE);c=Na[c];null==c&&null!=this.state.shape&&this.state.shape.isRoundable()&&(c=Na[mxConstants.SHAPE_RECTANGLE]);null!=c&&(c=c(this.state),null!=c&&(a=null==a?c:a.concat(c)))}return a};mxEdgeHandler.prototype.createCustomHandles=function(){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=Na[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory=
+{};var Oa=new mxPoint(1,0),Pa=new mxPoint(1,0),Ea=mxUtils.toRadians(-30),Oa=mxUtils.getRotatedPoint(Oa,Math.cos(Ea),Math.sin(Ea)),Ea=mxUtils.toRadians(-150),Pa=mxUtils.getRotatedPoint(Pa,Math.cos(Ea),Math.sin(Ea));mxEdgeStyle.IsometricConnector=function(a,c,b,d,f){var e=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,n=g[0],g=g[g.length-1];null!=d&&(d=e.transformControlPoint(a,d));null==n&&null!=c&&(n=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),
+b.getCenterY()));var k=Oa.x,p=Oa.y,t=Pa.x,v=Pa.y,m="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=n){a=function(a,c,b){a-=q.x;var d=c-q.y;c=(v*a-t*d)/(k*v-p*t);a=(p*a-k*d)/(p*t-k*v);m?(b&&(q=new mxPoint(q.x+k*c,q.y+p*c),f.push(q)),q=new mxPoint(q.x+t*a,q.y+v*a)):(b&&(q=new mxPoint(q.x+t*a,q.y+v*a),f.push(q)),q=new mxPoint(q.x+k*c,q.y+p*c));f.push(q)};var q=n;null==d&&(d=new mxPoint(n.x+(g.x-n.x)/2,n.y+(g.y-n.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",
+mxEdgeStyle.IsometricConnector);var db=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return db.apply(this,arguments)};d.prototype.constraints=[];l.prototype.getConstraints=function(a,c,b){a=[];var d=Math.tan(mxUtils.toRadians(30)),f=(.5-d)/2,d=Math.min(c,b/(.5+d));c=(c-d)/2;b=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c+.5*d,b+d*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+d,b+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+d,b+.75*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*d,b+(1-f)*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b+.75*d));return a};c.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,d=Math.min(c*
+Math.tan(d),.5*b);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b-d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+0,d));return a};D.prototype.getConstraints=function(a,c,b){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b-d)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,
+b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
+.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
+0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];xa.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=
+mxRectangleShape.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
+null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,
+0),!1));return a};v.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};b.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),b));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)));return a};g.prototype.getConstraints=function(a,c,b){a=[];c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,
+1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c+.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c+.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(1,
+0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-c));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-c));return a};p.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,
+"tabWidth",this.tabWidth)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+.5*(c+d),f))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.25*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,.5*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.75*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};ca.prototype.constraints=mxRectangleShape.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;sa.prototype.constraints=mxEllipse.prototype.constraints;ta.prototype.constraints=mxEllipse.prototype.constraints;Fa.prototype.constraints=mxEllipse.prototype.constraints;Ia.prototype.constraints=
+mxEllipse.prototype.constraints;T.prototype.constraints=mxRectangleShape.prototype.constraints;Aa.prototype.constraints=mxRectangleShape.prototype.constraints;va.prototype.getConstraints=function(a,c,b){a=[];var d=Math.min(c,b/2),f=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+.5*(f+c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));return a};ia.prototype.getConstraints=function(a,c,b){c=parseFloat(mxUtils.getValue(a,"jettyWidth",ia.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,
+"jettyHeight",ia.prototype.jettyHeight));var d=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,
+c),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(b-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(b-.5*a,3.5*a))];b>5*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,c));b>8*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,c));b>
+15*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,c));return d};aa.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,
+.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];B.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,.1),!1),new mxConnectionConstraint(new mxPoint(0,
+1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];fa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,
+.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.75,
+.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];k.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,
+.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];A.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,.65),!1),new mxConnectionConstraint(new mxPoint(.25,
+1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,
+.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];la.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,
+1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)];mxHexagon.prototype.constraints=
+[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,1),!0),
+new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];y.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
-0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;O.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*c+.25*b,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(c+b),.5*(d+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),.5*(d+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*c-.25*b,f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*f));return a};ja.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(d+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;O.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
+"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*c+.25*d,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(c+d),.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*c-.25*d,f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*f));return a};ja.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
1),!1));return a};ra.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];ga.prototype.getConstraints=
-function(a,c,d){a=[];var b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),b=(d-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-b));return a};ea.prototype.getConstraints=function(a,c,d){a=[];var b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize)))),b=(d-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));return a};ua.prototype.getConstraints=
-function(a,c,d){a=[];var b=Math.min(d,c),f=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),b=(d-f)/2,e=b+f,g=(c-f)/2,f=g+f;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),b));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b));return a};Y.prototype.constraints=null;ya.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
+function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));return a};ea.prototype.getConstraints=function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));return a};ua.prototype.getConstraints=
+function(a,c,b){a=[];var d=Math.min(b,c),f=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),d=(b-f)/2,e=d+f,g=(c-f)/2,f=g+f;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),d));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};Y.prototype.constraints=null;za.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
.9),!1)];P.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];Z.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ha.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){d.escape();a=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),a);null!=a&&d.setSelectionCells(a)}var b=this.editorUi,e=b.editor,d=e.graph,l=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(b.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey=
-"import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){try{var d=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(d.documentElement))}catch(g){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+g.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=l;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+
+"import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){try{var b=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(b.documentElement))}catch(g){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+g.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=l;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+
"+S").isEnabled=l;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=l;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,304,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=l;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,
300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var a=null;try{a=b.copyXml(),null!=a&&d.removeCells(a)}catch(c){}null==a&&mxClipboard.cut(d)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",
function(){try{b.copyXml()}catch(q){}try{mxClipboard.copy(d)}catch(q){b.handleError(q)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{b.pasteXml(a,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),a=!0)}catch(c){}a||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+
@@ -2913,7 +2914,7 @@ function(){try{b.copyXml()}catch(q){}try{mxClipboard.copy(d)}catch(q){b.handleEr
try{c(mxClipboard.paste(d))}finally{d.getModel().endUpdate()}}if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){a=!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{c(b.pasteXml(a,!0))}finally{d.getModel().endUpdate()}}else f()}),a=!0)}catch(g){}a||f()}});this.addAction("copySize",function(){var a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&&(a=d.getCellGeometry(a),null!=a&&(b.copiedSize=new mxRectangle(a.x,
a.y,a.width,a.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedSize){d.getModel().beginUpdate();try{for(var a=d.getSelectionCells(),c=0;c<a.length;c++)if(d.getModel().isVertex(a[c])){var f=d.getCellGeometry(a[c]);null!=f&&(f=f.clone(),f.width=b.copiedSize.width,f.height=b.copiedSize.height,d.getModel().setGeometry(a[c],f))}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+V");this.addAction("copyData",function(){var a=
d.getSelectionCell()||d.getModel().getRoot();d.isEnabled()&&null!=a&&(a=a.cloneValue(),null==a||isNaN(a.nodeType)||(b.copiedValue=a))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(a){function c(c,b){var e=f.getValue(c);b=c.cloneValue(b);b.removeAttribute("placeholders");null==e||isNaN(e.nodeType)||b.setAttribute("placeholders",e.getAttribute("placeholders"));null!=a&&(mxEvent.isMetaDown(a)||mxEvent.isControlDown(a))||b.setAttribute("label",d.convertValueToString(c));f.setValue(c,b)}
-var f=d.getModel();if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedValue){f.beginUpdate();try{var e=d.getSelectionCells();if(0==e.length)c(f.getRoot(),b.copiedValue);else for(var k=0;k<e.length;k++)c(e[k],b.copiedValue)}finally{f.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(d){a(null!=d&&mxEvent.isControlDown(d))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
+var f=d.getModel();if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedValue){f.beginUpdate();try{var e=d.getSelectionCells();if(0==e.length)c(f.getRoot(),b.copiedValue);else for(var k=0;k<e.length;k++)c(e[k],b.copiedValue)}finally{f.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(b){a(null!=b&&mxEvent.isControlDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
try{for(var a=d.getSelectionCells(),c=0;c<a.length;c++)d.cellLabelChanged(a[c],"")}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){try{d.setSelectionCells(d.duplicateCells()),d.scrollCellToVisible(d.getSelectionCell())}catch(q){b.handleError(q)}},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(a){d.turnShapes(d.getSelectionCells(),null!=a?mxEvent.isShiftDown(a):
!1)},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices",function(){d.selectVertices(null,!0)},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
try{var a=d.isCellMovable(d.getSelectionCell())?1:0;d.toggleCellStyles(mxConstants.STYLE_MOVABLE,a);d.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);d.toggleCellStyles(mxConstants.STYLE_ROTATABLE,a);d.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);d.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);d.toggleCellStyles("connectable",a)}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){d.home()},null,null,"Shift+Home");this.addAction("exitGroup",function(){d.exitGroup()},
@@ -3097,118 +3098,118 @@ b,c+d-e),this.quadTo(a+b,c+d,a+b-f,c+d),this.lineTo(a+f,c+d),this.quadTo(a,c+d,a
this.passThrough=!1}};a.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};a.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};a.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!0))};a.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;
this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;this.canvas.rect=this.originalRect;this.canvas.ellipse=this.originalEllipse;
this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(c){return new a(c,Editor.createRoughCanvas(c),this)};var c=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0")?c.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(a):this.createRoughCanvas(a)};var b=mxShape.prototype.paint;
-mxShape.prototype.paint=function(c){var d=c.addTolerance,f=null,e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),f=mxUtils.getValue(this.style,"fillStyle","auto"),null!=this.state&&"auto"==f&&(f=this.state.view.graph.defaultPageBackgroundColor,null!=this.fill&&(null!=this.gradient||null!=f&&this.fill.toLowerCase()==f.toLowerCase())&&(f="solid")));if(e&&null!=c.handJiggle&&c.handJiggle.constructor==a&&!this.outline){c.save();e=this.fill;f=this.stroke;
-this.stroke=this.fill=null;var g=c.setStrokeColor;c.setStrokeColor=function(){};var k=c.setFillColor;c.setFillColor=function(){};c.handJiggle.passThrough=!0;b.apply(this,arguments);c.handJiggle.passThrough=!1;c.setFillColor=k;c.setStrokeColor=g;this.stroke=f;this.fill=e;c.restore();c.addTolerance=function(){}}b.apply(this,arguments);c.addTolerance=d};var d=mxShape.prototype.paintGlassEffect;mxShape.prototype.paintGlassEffect=function(c,b,f,e,g,k){null!=c.handJiggle&&c.handJiggle.constructor==a?(c.handJiggle.passThrough=
-!0,d.apply(this,arguments),c.handJiggle.passThrough=!1):d.apply(this,arguments)}})();Editor.fastCompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:Graph.arrayBufferToString(pako.deflateRaw(a))};Editor.fastDecompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.inflateRaw(Graph.stringToArrayBuffer(atob(a)),{to:"string"})};Editor.extractGraphModel=function(a,c,b){if(null!=a&&"undefined"!==typeof pako){var d=a.ownerDocument.getElementsByTagName("div"),
-f=[];if(null!=d&&0<d.length)for(var e=0;e<d.length;e++)if("mxgraph"==d[e].getAttribute("class")){f.push(d[e]);break}0<f.length&&(d=f[0].getAttribute("data-mxgraph"),null!=d?(f=JSON.parse(d),null!=f&&null!=f.xml&&(a=mxUtils.parseXml(f.xml),a=a.documentElement)):(f=f[0].getElementsByTagName("div"),0<f.length&&(d=mxUtils.getTextContent(f[0]),d=Graph.decompress(d,null,b),0<d.length&&(a=mxUtils.parseXml(d),a=a.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(d=a.getAttribute("content"),null!=d&&"<"!=
-d.charAt(0)&&"%"!=d.charAt(0)&&(d=unescape(window.atob?atob(d):Base64.decode(cont,d))),null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d)),null!=d&&0<d.length)a=mxUtils.parseXml(d).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==a||c||(f=null,"diagram"==a.nodeName?f=a:"mxfile"==a.nodeName&&(d=a.getElementsByTagName("diagram"),0<d.length&&(f=d[Math.max(0,Math.min(d.length-1,urlParams.page||0))])),null!=f&&(a=Editor.parseDiagramNode(f,b)));null==a||"mxGraphModel"==a.nodeName||
-c&&"mxfile"==a.nodeName||(a=null);return a};Editor.parseDiagramNode=function(a,c){var b=mxUtils.trim(mxUtils.getTextContent(a)),d=null;0<b.length?(b=Graph.decompress(b,null,c),null!=b&&0<b.length&&(d=mxUtils.parseXml(b).documentElement)):(b=mxUtils.getChildNodes(a),0<b.length&&(d=mxUtils.createXmlDocument(),d.appendChild(d.importNode(b[0],!0)),d=d.documentElement));return d};Editor.getDiagramNodeXml=function(a){var c=mxUtils.getTextContent(a),b=null;0<c.length?b=Graph.decompress(c):null!=a.firstChild&&
-(b=mxUtils.getXml(a.firstChild));return b};Editor.extractGraphModelFromPdf=function(a){a=a.substring(a.indexOf(",")+1);a=window.atob&&!mxClient.IS_SF?atob(a):Base64.decode(a,!0);if("%PDF-1.7"==a.substring(0,8)){var c=a.indexOf("EmbeddedFile");if(-1<c){var b=a.indexOf("stream",c)+9;if(0<a.substring(c,b).indexOf("application#2Fvnd.jgraph.mxfile"))return c=a.indexOf("endstream",b-1),pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(b,c)),{to:"string"})}return null}for(var b=null,c="",d=0,f=0,e=[],
-g=null;f<a.length;){var k=a.charCodeAt(f),f=f+1;10!=k&&(c+=String.fromCharCode(k));k=="/Subject (%3Cmxfile".charCodeAt(d)?d++:d=0;if(19==d){var n=a.indexOf("%3C%2Fmxfile%3E)",f)+15,f=f-9;if(n>f){b=a.substring(f,n);break}}10==k&&("endobj"==c?g=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(g=[],e[c.split(" ")[0]]=g):null!=g&&g.push(c),c="")}null==b&&(b=Editor.extractGraphModelFromXref(e));null!=b&&(b=decodeURIComponent(b.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return b};
-Editor.extractGraphModelFromXref=function(a){var c=a.trailer,b=null;null!=c&&(c=/.* \/Info (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<c.length&&(c=a[c[1]],null!=c&&(c=/.* \/Subject (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<c.length&&(a=a[c[1]],null!=a&&(a=a.join("\n"),b=a.substring(1,a.length-1))))));return b};Editor.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,
-function(a,b,f){a=d.substring(a+8,a+8+f);"zTXt"==b?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(f+2)),{to:"string"}).replace(/\+/g," "),null!=a&&0<a.length&&(c=a))):"tEXt"==b&&(a=a.split(String.fromCharCode(0)),1<a.length&&("mxGraphModel"==a[0]||"mxfile"==a[0])&&(c=a[1]));if(null!=c||"IDAT"==b)return!0}))}catch(E){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));
-return c};Editor.extractParserError=function(a,c){var b=null,d=null!=a?a.getElementsByTagName("parsererror"):null;null!=d&&0<d.length&&(b=c||mxResources.get("invalidChars"),d=d[0].getElementsByTagName("div"),0<d.length&&(b=mxUtils.getTextContent(d[0])));return null!=b?mxUtils.trim(b):b};Editor.addRetryToError=function(a,c){if(null!=a){var b=null!=a.error?a.error:a;null==b.retry&&(b.retry=c)}};Editor.configure=function(a,c){if(null!=a){Editor.config=a;Editor.configVersion=a.version;Menus.prototype.defaultFonts=
-a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=a.autosaveDelay||DrawioFile.prototype.autosaveDelay;
-null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);null!=a.styles&&(Editor.styles=a.styles);null!=a.globalVars&&(Editor.globalVars=a.globalVars);null!=a.compressXml&&(Editor.compressXml=a.compressXml);null!=a.simpleLabels&&(Editor.simpleLabels=a.simpleLabels);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&
-(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));if(null!=a.css){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&
-(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);null!=a.zoomFactor&&(b=parseFloat(a.zoomFactor),!isNaN(b)&&1<b&&(Graph.prototype.zoomFactor=b));null!=a.gridSteps&&
-(b=parseInt(a.gridSteps),!isNaN(b)&&0<b&&(mxGraphView.prototype.gridSteps=b));a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(b=parseInt(a.autosaveDelay),
-!isNaN(b)&&0<b?DrawioFile.prototype.autosaveDelay=b:EditorUi.debug("Invalid autosaveDelay: "+a.autosaveDelay));if(null!=a.plugins&&!c)for(App.initPluginCallback(),b=0;b<a.plugins.length;b++)mxscript(a.plugins[b]);null!=a.maxImageBytes&&(EditorUi.prototype.maxImageBytes=a.maxImageBytes);null!=a.maxImageSize&&(EditorUi.prototype.maxImageSize=a.maxImageSize)}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var c=document.getElementsByTagName("script")[0];if(null!=c&&null!=
-c.parentNode){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a));c.parentNode.insertBefore(b,c);a=a.split("url(");for(b=1;b<a.length;b++){var d=a[b].indexOf(")"),d=Editor.trimCssUrl(a[b].substring(0,d)),f=document.createElement("link");f.setAttribute("rel","preload");f.setAttribute("href",d);f.setAttribute("as","font");f.setAttribute("crossorigin","");c.parentNode.insertBefore(f,c)}}}};Editor.trimCssUrl=function(a){return a.replace(RegExp("^[\\s\"']+",
-"g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var c=[],b=0;b<a;b++)c.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return c.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=
-null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=c.nodeName?this.extractGraphModel(c):null;if(null!=c){var b=c.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==c.nodeName){b=c.getAttribute("style")||
-"default-style2";if("1"==urlParams.embed||null!=b&&""!=b)b!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=
-b;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");b=c.getAttribute("backgroundImage");null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==
-c.getAttribute("shadow"),!1);if(b=c.getAttribute("extFonts"))try{for(b=b.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}}),d=0;d<b.length;d++)this.graph.addExtFont(b[d].name,b[d].url)}catch(E){console.log("ExtFonts format error: "+E.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;
-Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var d=this.graph.extFonts.map(function(a){return a.name+
-"^"+a.url});c.setAttribute("extFonts",d.join("|"))}return c};Editor.prototype.isDataSvg=function(a){try{var c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(ka){}return!1};Editor.prototype.extractGraphModel=
-function(a,c,b){return Editor.extractGraphModel.apply(this,arguments)};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};
-var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";
-Editor.initMath=function(a,c){if("undefined"===typeof window.MathJax){a=(null!=a?a:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":"SVG")+"-full";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};var b=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";c=null!=c?c:{"HTML-CSS":{availableFonts:[b],imageFont:null},
-SVG:{font:b,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(c);MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};
-Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var d=Editor.prototype.init;Editor.prototype.init=function(){d.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,c){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};b=document.getElementsByTagName("script");if(null!=b&&0<b.length){var f=document.createElement("script");f.setAttribute("type","text/javascript");f.setAttribute("src",
-a);b[0].parentNode.appendChild(f)}try{if(mxClient.IS_GC||mxClient.IS_SF){var e=document.createElement("style");e.type="text/css";e.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(e)}}catch(Y){}}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
-var c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));
-return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)};Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var c=a.convert,b=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&!navigator.onLine?d=Editor.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||b.crossOriginImages&&b.isCorsEnabledForUrl(d)?"chrome-extension://"==d.substring(0,
-19)||mxClient.IS_CHROMEAPP||(d=c.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return a};Editor.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};Editor.prototype.convertImageToDataUri=function(a,c){try{var b=!0,d=window.setTimeout(mxUtils.bind(this,function(){b=!1;c(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(d);b&&c(Editor.createSvgDataUri(a.getText()))}),
-function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)});else{var f=new Image;this.crossOriginImages&&(f.crossOrigin="anonymous");f.onload=function(){window.clearTimeout(d);if(b)try{var a=document.createElement("canvas"),e=a.getContext("2d");a.height=f.height;a.width=f.width;e.drawImage(f,0,0);c(a.toDataURL())}catch(X){c(Editor.svgBrokenImage.src)}};f.onerror=function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)};f.src=a}}catch(U){c(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=
-function(a,c,b,d){null==d&&(d=this.createImageUrlConverter());var f=0,e=b||{};b=mxUtils.bind(this,function(b,g){for(var k=a.getElementsByTagName(b),n=0;n<k.length;n++)mxUtils.bind(this,function(b){try{if(null!=b){var k=d.convert(b.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var n=e[k];null==n?(f++,this.convertImageToDataUri(k,function(d){null!=d&&(e[k]=d,b.setAttribute(g,d));f--;0==f&&c(a)})):b.setAttribute(g,n)}else null!=k&&b.setAttribute(g,k)}}catch(fa){}})(k[n])});b("image","xlink:href");
-b("img","src");0==f&&c(a)};Editor.base64Encode=function(a){for(var c="",b=0,d=a.length,f,e,g;b<d;){f=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);c+="==";break}e=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&
-3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2);c+="=";break}g=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2|(g&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return c};
-Editor.prototype.loadUrl=function(a,c,b,d,f,e,g,k){try{var n=!g&&(d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));f=null!=f?f:!0;var p=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=c){var d=a.getText();if(n){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();
-for(var d=Array(a.length),f=0;f<a.length;f++)d[f]=String.fromCharCode(a[f]);d=d.join("")}e=null!=e?e:"data:image/png;base64,";d=e+Editor.base64Encode(d)}c(d)}}else null!=b&&(0==a.getStatus()?b({message:mxResources.get("accessDenied")},a):b({message:mxResources.get("error")+" "+a.getStatus()},a))}),function(a){null!=b&&b({message:mxResources.get("error")+" "+a.getStatus()})},n,this.timeout,function(){f&&null!=b&&b({code:App.ERROR_TIMEOUT,retry:p})},k)});p()}catch(Z){null!=b&&b(Z)}};Editor.prototype.absoluteCssFonts=
-function(a){var c=null;if(null!=a){var b=a.split("url(");if(0<b.length){c=[b[0]];a=window.location.pathname;var d=null!=a?a.lastIndexOf("/"):-1;0<=d&&(a=a.substring(0,d+1));var d=document.getElementsByTagName("base"),f=null;null!=d&&0<d.length&&(f=d[0].getAttribute("href"));for(var e=1;e<b.length;e++)if(d=b[e].indexOf(")"),0<d){var g=Editor.trimCssUrl(b[e].substring(0,d));this.graph.isRelativeUrl(g)&&(g=null!=f?f+g:window.location.protocol+"//"+window.location.hostname+("/"==g.charAt(0)?"":a)+g);
-c.push('url("'+g+'"'+b[e].substring(d))}else c.push(b[e])}else c=[a]}return null!=c?c.join(""):null};Editor.prototype.embedCssFonts=function(a,c){var b=a.split("url("),d=0;null==this.cachedFonts&&(this.cachedFonts={});var f=mxUtils.bind(this,function(){if(0==d){for(var a=[b[0]],f=1;f<b.length;f++){var e=b[f].indexOf(")");a.push('url("');a.push(this.cachedFonts[Editor.trimCssUrl(b[f].substring(0,e))]);a.push('"'+b[f].substring(e))}c(a.join(""))}});if(0<b.length){for(var e=1;e<b.length;e++){var g=b[e].indexOf(")"),
-k=null,n=b[e].indexOf("format(",g);0<n&&(k=Editor.trimCssUrl(b[e].substring(n+7,b[e].indexOf(")",n))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=a;d++;var c="application/x-font-ttf";if("svg"==k||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";
-else if("eot"==k||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){this.cachedFonts[a]=c;d--;f()}),mxUtils.bind(this,function(a){d--;f()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(Editor.trimCssUrl(b[e].substring(0,g)),k)}f()}else c(a)};Editor.prototype.loadFonts=
-function(a){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(c){this.resolvedFontCss=c;a()})):a()};Editor.prototype.embedExtFonts=function(a){var c=this.graph.getCustomFonts();if(0<c.length){var b="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var f=mxUtils.bind(this,function(){0==d&&this.embedCssFonts(b,a)}),e=0;e<c.length;e++)mxUtils.bind(this,function(a,c){Graph.isCssFontUrl(c)?null==this.cachedGoogleFonts[c]?(d++,this.loadUrl(c,
-mxUtils.bind(this,function(a){this.cachedGoogleFonts[c]=a;b+=a;d--;f()}),mxUtils.bind(this,function(a){d--;b+="@import url("+c+");";f()}))):b+=this.cachedGoogleFonts[c]:b+='@font-face {font-family: "'+a+'";src: url("'+c+'")}'})(c[e].name,c[e].url);f()}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var c=document.getElementsByTagName("style"),b=0;b<c.length;b++)0<mxUtils.getTextContent(c[b]).indexOf("MathJax")&&a[0].appendChild(c[b].cloneNode(!0))};
-Editor.prototype.addFontCss=function(a,c){c=null!=c?c:this.absoluteCssFonts(this.fontCss);if(null!=c){var b=a.getElementsByTagName("defs"),d=a.ownerDocument;0==b.length?(b=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)):b=b[0];d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,c);b.appendChild(d)}};
-Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,c,b){var d=mxClient.IS_FF?8192:16384;return Math.min(b,Math.min(d/a,d/c))};Editor.prototype.exportToCanvas=function(a,c,b,d,f,e,g,k,p,t,v,m,l,y,z,A,q,u){try{e=null!=e?e:!0;g=null!=g?g:!0;m=null!=m?m:this.graph;l=null!=l?l:0;var n=p?null:m.background;n==mxConstants.NONE&&(n=null);null==n&&(n=d);null==n&&0==p&&(n=A?this.graph.defaultPageBackgroundColor:"#ffffff");
-this.convertImages(m.getSvg(null,null,l,y,null,g,null,null,null,t,null,A,q,u),mxUtils.bind(this,function(b){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var g=function(){mxClient.IS_SF?window.setTimeout(function(){y.drawImage(d,0,0);a(p,b)},0):(y.drawImage(d,0,0),a(p,b))},p=document.createElement("canvas"),t=parseInt(b.getAttribute("width")),v=parseInt(b.getAttribute("height"));k=null!=k?k:1;null!=c&&(k=e?Math.min(1,Math.min(3*c/(4*v),c/t)):c/t);k=this.getMaxCanvasScale(t,v,k);t=
-Math.ceil(k*t);v=Math.ceil(k*v);p.setAttribute("width",t);p.setAttribute("height",v);var y=p.getContext("2d");null!=n&&(y.beginPath(),y.rect(0,0,t,v),y.fillStyle=n,y.fill());1!=k&&y.scale(k,k);if(z){var A=m.view,q=A.scale;A.scale=1;var B=btoa(unescape(encodeURIComponent(A.createSvgGrid(A.gridColor))));A.scale=q;var B="data:image/svg+xml;base64,"+B,C=m.gridSize*A.gridSteps*k,u=m.getGraphBounds(),I=A.translate.x*q,E=A.translate.y*q,F=I+(u.x-I)/q-l,D=E+(u.y-E)/q-l,G=new Image;G.onload=function(){try{for(var a=
--Math.round(C-mxUtils.mod((I-F)*k,C)),c=-Math.round(C-mxUtils.mod((E-D)*k,C));a<t;a+=C)for(var b=c;b<v;b+=C)y.drawImage(G,a/k,b/k);g()}catch(ua){null!=f&&f(ua)}};G.onerror=function(a){null!=f&&f(a)};G.src=B}else g()}catch(xa){null!=f&&f(xa)}});d.onerror=function(a){null!=f&&f(a)};t&&this.graph.addSvgShadow(b);this.graph.mathEnabled&&this.addMathCss(b);var g=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(ra){null!=
-f&&f(ra)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(g)}catch(O){null!=f&&f(O)}}))}catch(ra){null!=f&&f(ra)}}),b,v)}catch(T){null!=f&&f(T)}};Editor.crcTable=[];for(var l=0;256>l;l++)for(var m=l,u=0;8>u;u++)m=1==(m&1)?3988292384^m>>>1:m>>>1,Editor.crcTable[l]=m;Editor.updateCRC=function(a,c,b,d){for(var f=0;f<d;f++)a=Editor.crcTable[(a^c.charCodeAt(b+f))&255]^a>>>8;return a};Editor.crc32=function(a){for(var c=-1,b=0;b<a.length;b++)c=c>>>8^Editor.crcTable[(c^
-a.charCodeAt(b))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(a,c,b,d,f){function e(a,c){var b=n;n+=c;return a.substring(b,n)}function g(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var n=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(e(a,
-4),"IHDR"!=e(a,4))null!=f&&f();else{e(a,17);f=a.substring(0,n);do{var p=g(a);if("IDAT"==e(a,4)){f=a.substring(0,n-8);"pHYs"==c&&"dpi"==b?(b=Math.round(d/.0254),b=k(b)+k(b)+String.fromCharCode(1)):b=b+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,c,0,4);d=Editor.updateCRC(d,b,0,b.length);f+=k(b.length)+c+b+k(d^4294967295);f+=a.substring(n-8,a.length);break}f+=a.substring(n-8,n-4+p);e(a,p);e(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?
-btoa(f):Base64.encode(f,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var q=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){q.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var c=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&
-(EditDataDialog.getDisplayIdForCell=function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var f=Format.prototype.init;Format.prototype.init=function(){f.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var g=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?
-g.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var k=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=k.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),
-function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var p=DiagramFormatPanel.prototype.addOptions;
-DiagramFormatPanel.prototype.addOptions=function(a){a=p.apply(this,arguments);var c=this.editorUi,b=c.editor.graph;if(b.isEnabled()){var d=c.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return c.editor.autosave},function(a){c.editor.setAutosave(a);c.editor.autosave&&d.isModified()&&d.fileChanged()},{install:function(a){this.listener=function(){a(c.editor.autosave)};c.editor.addListener("autosaveChanged",this.listener)},destroy:function(){c.editor.removeListener(this.listener)}});
-a.appendChild(f)}}if(this.isMathOptionVisible()&&b.isEnabled()&&"undefined"!==typeof MathJax){f=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return b.mathEnabled},function(a){c.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=function(){a(b.mathEnabled)};c.addListener("mathEnabledChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});f.style.paddingTop="5px";a.appendChild(f);var e=c.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");
-e.style.position="relative";e.style.marginLeft="6px";e.style.top="2px";f.appendChild(e)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=
-[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",
-dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
-{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=
-[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line",type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity",
-type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties=[{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20},{name:"fixedSize",dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",
-type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
-{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width",type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",
-min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"startSize",dispName:"Header Size",type:"float"},
-{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",
-type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=
-[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",
-dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",
-type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",
-type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},
-{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=
-[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},
-{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=[{name:"width",dispName:"Title Width",type:"float",defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",
-stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",font:"#ffffff"},{fill:"#008a00",stroke:"#005700",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},
-{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",
-stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",
-gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,c,b){if(null!=c){var d=function(a){if(null!=a)if(b)for(var d=
-0;d<a.length;d++)c[a[d].name]=a[d];else for(var f in c){for(var e=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==c[f].type){e=!0;break}e||delete c[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&null!=f.shape&&(f.shape.commonCustomPropAdded||(f.shape.commonCustomPropAdded=!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),
-d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(U){}}};var t=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"==a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));t.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},b=a.vertices,d=a.edges,f=0;f<b.length;f++)this.findCommonProperties(b[f],c,0==f);for(f=0;f<d.length;f++)this.findCommonProperties(d[f],
-c,0==b.length&&0==f);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,a))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");
-c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=
-function(a,c,b){function d(a,c,b,d){v.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],k=b.parentRow.nextSibling;k&&k.getAttribute("data-pName")==a;)g.push(k.getAttribute("data-pValue")),k=k.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(v.setCellStyles(b.countProperty,g.length,v.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}v.setCellStyles(a,
-c,v.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var p=b.dependentPropsDefVal[a],n=b.dependentPropsVals[a];if(n.length>c)n=n.slice(0,c);else for(var m=n.length;m<c;m++)n.push(p);n=n.join(",");v.setCellStyles(b.dependentProps[a],n,v.getSelectionCells());f.push(b.dependentProps[a]);e.push(n)}if("function"==typeof b.onChange)b.onChange(v,c);t.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",v.getSelectionCells()))}finally{v.getModel().endUpdate()}}
-function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height="4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(t,
-function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,k){null!=c&&(c=c.split(","),m.push({name:a,values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(t,function(c){for(var p=g,t=0;null!=p.nextSibling;)if(p.nextSibling.getAttribute("data-pName")==
-a)p=p.nextSibling,t++;else break;var v={type:b,parentRow:g,index:t,isDeletable:!0,defVal:f,countProperty:e},t=n(a,"",v,0==t%2,k);d(a,f,v);p.parentNode.insertBefore(t,p.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function k(a,c,b,d,f,e,g){if(0<f){var k=Array(f);c=null!=c?c.split(","):[];for(var p=0;p<f;p++)k[p]=null!=c[p]?c[p]:null!=d?d:"";m.push({name:a,values:k,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}
-function p(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function n(c,b,n,v,m){var l=n.dispName,y=n.type,z=document.createElement("tr");z.className="gePropRow"+(m?"Dark":"")+(v?"Alt":"")+" gePropNonHeaderRow";z.setAttribute("data-pName",c);z.setAttribute("data-pValue",b);v=!1;null!=n.index&&(z.setAttribute("data-index",n.index),l=(null!=l?l:"")+"["+n.index+"]",v=!0);var A=document.createElement("td");
-A.className="gePropRowCell";A.innerHTML=mxUtils.htmlEntities(mxResources.get(l,null,l));v&&(A.style.textAlign="right");z.appendChild(A);A=document.createElement("td");A.className="gePropRowCell";if("color"==y)A.appendChild(e(c,b,n));else if("bool"==y||"boolean"==y)A.appendChild(p(c,b,n));else if("enum"==y){var q=n.enumList;for(m=0;m<q.length;m++)if(l=q[m],l.val==b){A.innerHTML=mxUtils.htmlEntities(mxResources.get(l.dispName,null,l.dispName));break}mxEvent.addListener(A,"click",mxUtils.bind(t,function(){var e=
-document.createElement("select");f(A,e);for(var g=0;g<q.length;g++){var k=q[g],p=document.createElement("option");p.value=mxUtils.htmlEntities(k.val);p.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));e.appendChild(p)}e.value=b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,n)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==y?A.appendChild(g(c,b,n.subType,n.subDefVal,n.countProperty,
-z,m)):"staticArr"==y?A.appendChild(k(c,b,n.subType,n.subDefVal,n.size,z,m)):"readOnly"==y?(m=document.createElement("input"),m.setAttribute("readonly",""),m.value=b,m.style.width="96px",m.style.borderWidth="0px",A.appendChild(m)):(A.innerHTML=b,mxEvent.addListener(A,"click",mxUtils.bind(t,function(){function e(){var a=g.value,a=0==a.length&&"string"!=y?0:a;n.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",y="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=n.min&&a<n.min?a=n.min:
-null!=n.max&&a>n.max&&(a=n.max);a=mxUtils.htmlEntities(("int"==y?parseInt(a):a)+"");d(c,a,n)}var g=document.createElement("input");f(A,g,!0);g.value=b;g.className="gePropEditor";"int"!=y&&"float"!=y||n.allowAuto||(g.type="number",g.step="int"==y?"1":"any",null!=n.min&&(g.min=parseFloat(n.min)),null!=n.max&&(g.max=parseFloat(n.max)));a.appendChild(g);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){e()})})));n.isDeletable&&(m=mxUtils.button("-",
-mxUtils.bind(t,function(a){d(c,"",n,n.index);mxEvent.consume(a)})),m.style.height="16px",m.style.width="25px",m.style["float"]="right",m.className="geColorBtn",A.appendChild(m));z.appendChild(A);return z}var t=this,v=this.editorUi.editor.graph,m=[];a.style.position="relative";a.style.padding="0";var l=document.createElement("table");l.className="geProperties";l.style.whiteSpace="nowrap";l.style.width="100%";var y=document.createElement("tr");y.className="gePropHeader";var z=document.createElement("th");
-z.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;z.appendChild(A);mxUtils.write(z,mxResources.get("property"));y.style.cursor="pointer";var q=function(){var c=l.querySelectorAll(".gePropNonHeaderRow"),b;if(t.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(sa){}}else A.src=
-Sidebar.prototype.expandedImage,b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(y,"click",function(){t.editorUi.propertiesCollapsed=!t.editorUi.propertiesCollapsed;q()});y.appendChild(z);z=document.createElement("th");z.className="gePropHeaderCell";z.innerHTML=mxResources.get("value");y.appendChild(z);l.appendChild(y);var u=!1,B=!1,y=null;1==b.vertices.length&&0==b.edges.length?y=b.vertices[0].id:0==b.vertices.length&&1==b.edges.length&&(y=b.edges[0].id);null!=y&&l.appendChild(n("id",
-mxUtils.htmlEntities(y),{dispName:"ID",type:"readOnly"},!0,!1));for(var C in c)if(y=c[C],"function"!=typeof y.isVisible||y.isVisible(b,this)){var I=null!=b.style[C]?mxUtils.htmlEntities(b.style[C]+""):null!=y.getDefaultValue?y.getDefaultValue(b,this):y.defVal;if("separator"==y.type)B=!B;else{if("staticArr"==y.type)y.size=parseInt(b.style[y.sizeProperty]||c[y.sizeProperty].defVal)||0;else if(null!=y.dependentProps){for(var F=y.dependentProps,D=[],G=[],z=0;z<F.length;z++){var N=b.style[F[z]];G.push(c[F[z]].subDefVal);
-D.push(null!=N?N.split(","):[])}y.dependentPropsDefVal=G;y.dependentPropsVals=D}l.appendChild(n(C,I,y,u,B));u=!u}}for(z=0;z<m.length;z++)for(y=m[z],c=y.parentRow,b=0;b<y.values.length;b++)C=n(y.name,y.values[b],{type:y.type,parentRow:y.parentRow,isDeletable:y.isDeletable,index:b,defVal:y.defVal,countProperty:y.countProperty,size:y.size},0==b%2,y.flipBkg),c.parentNode.insertBefore(C,c.nextSibling),c=C;a.appendChild(l);q();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){mxEvent.addListener(a,
-"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var b=this.editorUi,d=b.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),
-g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.position="relative";g.style.textAlign="center";for(var k=[],n=0;n<this.defaultColorSchemes.length;n++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(p,
-"click",mxUtils.bind(this,function(){t(a)}))})(n);k.push(p);g.appendChild(p)}var t=mxUtils.bind(this,function(a){null!=this.format.currentScheme&&(k[this.format.currentScheme].style.background="transparent");this.format.currentScheme=a;v(this.defaultColorSchemes[this.format.currentScheme]);k[this.format.currentScheme].style.background="#84d7ff"}),v=mxUtils.bind(this,function(a){var c=mxUtils.bind(this,function(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),
-g=0;g<f.length;g++){for(var k=d.getModel().getStyle(f[g]),n=0;n<e.length;n++)k=mxUtils.removeStylename(k,e[n]);var p=d.getModel().isVertex(f[g])?b.initialDefaultVertexStyle:b.initialdefaultEdgeStyle;null!=a?(k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isAltDown(c)||(k=""==a.fill?mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,
-null))),mxEvent.isShiftDown(c)||(k=""==a.stroke?mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null))),mxEvent.isControlDown(c)||mxClient.IS_MAC&&mxEvent.isMetaDown(c)||!d.getModel().isVertex(f[g])||(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))):(k=mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,
-"#ffffff")),k=mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,"#000000")),k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(f[g])&&(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(f[g],k)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width="36px";c.style.height=
-10>=this.defaultColorSchemes.length?"24px":"30px";c.style.margin="0px 6px 6px 0px";if(null!=a){var g="1"==urlParams.sketch?"2px solid":"1px solid";null!=a.gradient?mxClient.IS_IE&&10>document.documentMode?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":
-c.style.backgroundColor=""==a.fill?mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff"):a.fill||mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff");c.style.border=a.stroke==mxConstants.NONE?g+" transparent":""==a.stroke?g+" "+mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"):g+" "+(a.stroke||mxUtils.getValue(b.initialDefaultVertexStyle,
-mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"))}else{var g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),k=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=g;c.style.border="1px solid "+k}c.style.borderRadius="0";f.appendChild(c)});f.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(f),c(a[g])});null==this.format.currentScheme?t(Editor.isDarkMode()?1:"1"==urlParams.sketch?
-5:0):t(this.format.currentScheme);var n=10>=this.defaultColorSchemes.length?28:8,m=document.createElement("div");m.style.cssText="position:absolute;left:10px;top:8px;bottom:"+n+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
-mxEvent.addListener(m,"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:"+n+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
+mxShape.prototype.paint=function(c){var d=c.addTolerance,f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(null!=c.handJiggle&&c.handJiggle.constructor==a&&!this.outline){c.save();var e=this.fill,g=this.stroke;this.stroke=this.fill=null;var k=this.configurePointerEvents,n=c.setStrokeColor;c.setStrokeColor=function(){};var p=c.setFillColor;c.setFillColor=function(){};f||null==e||(this.configurePointerEvents=function(){});c.handJiggle.passThrough=!0;
+b.apply(this,arguments);c.handJiggle.passThrough=!1;c.setFillColor=p;c.setStrokeColor=n;this.configurePointerEvents=k;this.stroke=g;this.fill=e;c.restore();f&&null!=e&&(c.addTolerance=function(){})}b.apply(this,arguments);c.addTolerance=d};var d=mxShape.prototype.paintGlassEffect;mxShape.prototype.paintGlassEffect=function(c,b,f,e,g,k){null!=c.handJiggle&&c.handJiggle.constructor==a?(c.handJiggle.passThrough=!0,d.apply(this,arguments),c.handJiggle.passThrough=!1):d.apply(this,arguments)}})();Editor.fastCompress=
+function(a){return null==a||0==a.length||"undefined"===typeof pako?a:Graph.arrayBufferToString(pako.deflateRaw(a))};Editor.fastDecompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.inflateRaw(Graph.stringToArrayBuffer(atob(a)),{to:"string"})};Editor.extractGraphModel=function(a,c,b){if(null!=a&&"undefined"!==typeof pako){var d=a.ownerDocument.getElementsByTagName("div"),f=[];if(null!=d&&0<d.length)for(var e=0;e<d.length;e++)if("mxgraph"==d[e].getAttribute("class")){f.push(d[e]);
+break}0<f.length&&(d=f[0].getAttribute("data-mxgraph"),null!=d?(f=JSON.parse(d),null!=f&&null!=f.xml&&(a=mxUtils.parseXml(f.xml),a=a.documentElement)):(f=f[0].getElementsByTagName("div"),0<f.length&&(d=mxUtils.getTextContent(f[0]),d=Graph.decompress(d,null,b),0<d.length&&(a=mxUtils.parseXml(d),a=a.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(d=a.getAttribute("content"),null!=d&&"<"!=d.charAt(0)&&"%"!=d.charAt(0)&&(d=unescape(window.atob?atob(d):Base64.decode(cont,d))),null!=d&&"%"==d.charAt(0)&&
+(d=decodeURIComponent(d)),null!=d&&0<d.length)a=mxUtils.parseXml(d).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==a||c||(f=null,"diagram"==a.nodeName?f=a:"mxfile"==a.nodeName&&(d=a.getElementsByTagName("diagram"),0<d.length&&(f=d[Math.max(0,Math.min(d.length-1,urlParams.page||0))])),null!=f&&(a=Editor.parseDiagramNode(f,b)));null==a||"mxGraphModel"==a.nodeName||c&&"mxfile"==a.nodeName||(a=null);return a};Editor.parseDiagramNode=function(a,c){var b=mxUtils.trim(mxUtils.getTextContent(a)),
+d=null;0<b.length?(b=Graph.decompress(b,null,c),null!=b&&0<b.length&&(d=mxUtils.parseXml(b).documentElement)):(b=mxUtils.getChildNodes(a),0<b.length&&(d=mxUtils.createXmlDocument(),d.appendChild(d.importNode(b[0],!0)),d=d.documentElement));return d};Editor.getDiagramNodeXml=function(a){var c=mxUtils.getTextContent(a),b=null;0<c.length?b=Graph.decompress(c):null!=a.firstChild&&(b=mxUtils.getXml(a.firstChild));return b};Editor.extractGraphModelFromPdf=function(a){a=a.substring(a.indexOf(",")+1);a=window.atob&&
+!mxClient.IS_SF?atob(a):Base64.decode(a,!0);if("%PDF-1.7"==a.substring(0,8)){var c=a.indexOf("EmbeddedFile");if(-1<c){var b=a.indexOf("stream",c)+9;if(0<a.substring(c,b).indexOf("application#2Fvnd.jgraph.mxfile"))return c=a.indexOf("endstream",b-1),pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(b,c)),{to:"string"})}return null}for(var b=null,c="",d=0,f=0,e=[],g=null;f<a.length;){var k=a.charCodeAt(f),f=f+1;10!=k&&(c+=String.fromCharCode(k));k=="/Subject (%3Cmxfile".charCodeAt(d)?d++:d=0;if(19==
+d){var n=a.indexOf("%3C%2Fmxfile%3E)",f)+15,f=f-9;if(n>f){b=a.substring(f,n);break}}10==k&&("endobj"==c?g=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(g=[],e[c.split(" ")[0]]=g):null!=g&&g.push(c),c="")}null==b&&(b=Editor.extractGraphModelFromXref(e));null!=b&&(b=decodeURIComponent(b.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return b};Editor.extractGraphModelFromXref=function(a){var c=a.trailer,b=null;null!=c&&(c=/.* \/Info (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<
+c.length&&(c=a[c[1]],null!=c&&(c=/.* \/Subject (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<c.length&&(a=a[c[1]],null!=a&&(a=a.join("\n"),b=a.substring(1,a.length-1))))));return b};Editor.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,b,f){a=d.substring(a+8,a+8+f);"zTXt"==b?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(f+
+2)),{to:"string"}).replace(/\+/g," "),null!=a&&0<a.length&&(c=a))):"tEXt"==b&&(a=a.split(String.fromCharCode(0)),1<a.length&&("mxGraphModel"==a[0]||"mxfile"==a[0])&&(c=a[1]));if(null!=c||"IDAT"==b)return!0}))}catch(E){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));return c};Editor.extractParserError=function(a,c){var b=null,d=null!=a?a.getElementsByTagName("parsererror"):null;null!=d&&0<d.length&&(b=c||mxResources.get("invalidChars"),d=d[0].getElementsByTagName("div"),
+0<d.length&&(b=mxUtils.getTextContent(d[0])));return null!=b?mxUtils.trim(b):b};Editor.addRetryToError=function(a,c){if(null!=a){var b=null!=a.error?a.error:a;null==b.retry&&(b.retry=c)}};Editor.configure=function(a,c){if(null!=a){Editor.config=a;Editor.configVersion=a.version;Menus.prototype.defaultFonts=a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;
+StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=a.autosaveDelay||DrawioFile.prototype.autosaveDelay;null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);null!=a.styles&&(Editor.styles=a.styles);null!=a.globalVars&&(Editor.globalVars=a.globalVars);null!=a.compressXml&&(Editor.compressXml=a.compressXml);
+null!=a.simpleLabels&&(Editor.simpleLabels=a.simpleLabels);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));if(null!=a.css){var b=document.createElement("style");b.setAttribute("type",
+"text/css");b.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=
+a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);null!=a.zoomFactor&&(b=parseFloat(a.zoomFactor),!isNaN(b)&&1<b&&(Graph.prototype.zoomFactor=b));null!=a.gridSteps&&(b=parseInt(a.gridSteps),!isNaN(b)&&0<b&&(mxGraphView.prototype.gridSteps=b));a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=
+a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(b=parseInt(a.autosaveDelay),!isNaN(b)&&0<b?DrawioFile.prototype.autosaveDelay=b:EditorUi.debug("Invalid autosaveDelay: "+a.autosaveDelay));if(null!=a.plugins&&!c)for(App.initPluginCallback(),b=0;b<a.plugins.length;b++)mxscript(a.plugins[b]);
+null!=a.maxImageBytes&&(EditorUi.prototype.maxImageBytes=a.maxImageBytes);null!=a.maxImageSize&&(EditorUi.prototype.maxImageSize=a.maxImageSize)}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var c=document.getElementsByTagName("script")[0];if(null!=c&&null!=c.parentNode){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a));c.parentNode.insertBefore(b,c);a=a.split("url(");for(b=1;b<a.length;b++){var d=a[b].indexOf(")"),
+d=Editor.trimCssUrl(a[b].substring(0,d)),f=document.createElement("link");f.setAttribute("rel","preload");f.setAttribute("href",d);f.setAttribute("as","font");f.setAttribute("crossorigin","");c.parentNode.insertBefore(f,c)}}}};Editor.trimCssUrl=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=
+20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var c=[],b=0;b<a;b++)c.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return c.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=
+c.nodeName?this.extractGraphModel(c):null;if(null!=c){var b=c.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==c.nodeName){b=c.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=b&&""!=b)b!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),
+f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");b=c.getAttribute("backgroundImage");null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);
+mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1);if(b=c.getAttribute("extFonts"))try{for(b=b.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}}),d=0;d<b.length;d++)this.graph.addExtFont(b[d].name,b[d].url)}catch(E){console.log("ExtFonts format error: "+
+E.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&
+c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var d=this.graph.extFonts.map(function(a){return a.name+"^"+a.url});c.setAttribute("extFonts",d.join("|"))}return c};Editor.prototype.isDataSvg=function(a){try{var c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=
+c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(ka){}return!1};Editor.prototype.extractGraphModel=function(a,c,b){return Editor.extractGraphModel.apply(this,arguments)};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;
+this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&
+null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";Editor.initMath=function(a,c){if("undefined"===typeof window.MathJax){a=(null!=a?a:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":
+"SVG")+"-full";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};var b=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";c=null!=c?c:{"HTML-CSS":{availableFonts:[b],imageFont:null},SVG:{font:b,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",
+AuthorInit:function(){MathJax.Hub.Config(c);MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var d=Editor.prototype.init;Editor.prototype.init=function(){d.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,
+mxUtils.bind(this,function(a,c){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};b=document.getElementsByTagName("script");if(null!=b&&0<b.length){var f=document.createElement("script");f.setAttribute("type","text/javascript");f.setAttribute("src",a);b[0].parentNode.appendChild(f)}try{if(mxClient.IS_GC||mxClient.IS_SF){var e=document.createElement("style");e.type="text/css";e.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(e)}}catch(Y){}}};
+Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;var c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,
+'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)};Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();
+var c=a.convert,b=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&!navigator.onLine?d=Editor.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||b.crossOriginImages&&b.isCorsEnabledForUrl(d)?"chrome-extension://"==d.substring(0,19)||mxClient.IS_CHROMEAPP||(d=c.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return a};Editor.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};
+Editor.prototype.convertImageToDataUri=function(a,c){try{var b=!0,d=window.setTimeout(mxUtils.bind(this,function(){b=!1;c(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(d);b&&c(Editor.createSvgDataUri(a.getText()))}),function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)});else{var f=new Image;this.crossOriginImages&&(f.crossOrigin="anonymous");f.onload=function(){window.clearTimeout(d);if(b)try{var a=document.createElement("canvas"),
+e=a.getContext("2d");a.height=f.height;a.width=f.width;e.drawImage(f,0,0);c(a.toDataURL())}catch(X){c(Editor.svgBrokenImage.src)}};f.onerror=function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)};f.src=a}}catch(U){c(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(a,c,b,d){null==d&&(d=this.createImageUrlConverter());var f=0,e=b||{};b=mxUtils.bind(this,function(b,g){for(var k=a.getElementsByTagName(b),n=0;n<k.length;n++)mxUtils.bind(this,function(b){try{if(null!=b){var k=
+d.convert(b.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var n=e[k];null==n?(f++,this.convertImageToDataUri(k,function(d){null!=d&&(e[k]=d,b.setAttribute(g,d));f--;0==f&&c(a)})):b.setAttribute(g,n)}else null!=k&&b.setAttribute(g,k)}}catch(fa){}})(k[n])});b("image","xlink:href");b("img","src");0==f&&c(a)};Editor.base64Encode=function(a){for(var c="",b=0,d=a.length,f,e,g;b<d;){f=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>
+2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);c+="==";break}e=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2);c+="=";break}g=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>
+2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2|(g&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return c};Editor.prototype.loadUrl=function(a,c,b,d,f,e,g,k){try{var n=!g&&(d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));f=null!=f?f:!0;var p=mxUtils.bind(this,
+function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=c){var d=a.getText();if(n){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length),f=0;f<a.length;f++)d[f]=String.fromCharCode(a[f]);d=d.join("")}e=null!=e?e:"data:image/png;base64,";d=e+Editor.base64Encode(d)}c(d)}}else null!=b&&(0==a.getStatus()?b({message:mxResources.get("accessDenied")},
+a):b({message:mxResources.get("error")+" "+a.getStatus()},a))}),function(a){null!=b&&b({message:mxResources.get("error")+" "+a.getStatus()})},n,this.timeout,function(){f&&null!=b&&b({code:App.ERROR_TIMEOUT,retry:p})},k)});p()}catch(Z){null!=b&&b(Z)}};Editor.prototype.absoluteCssFonts=function(a){var c=null;if(null!=a){var b=a.split("url(");if(0<b.length){c=[b[0]];a=window.location.pathname;var d=null!=a?a.lastIndexOf("/"):-1;0<=d&&(a=a.substring(0,d+1));var d=document.getElementsByTagName("base"),
+f=null;null!=d&&0<d.length&&(f=d[0].getAttribute("href"));for(var e=1;e<b.length;e++)if(d=b[e].indexOf(")"),0<d){var g=Editor.trimCssUrl(b[e].substring(0,d));this.graph.isRelativeUrl(g)&&(g=null!=f?f+g:window.location.protocol+"//"+window.location.hostname+("/"==g.charAt(0)?"":a)+g);c.push('url("'+g+'"'+b[e].substring(d))}else c.push(b[e])}else c=[a]}return null!=c?c.join(""):null};Editor.prototype.embedCssFonts=function(a,c){var b=a.split("url("),d=0;null==this.cachedFonts&&(this.cachedFonts={});
+var f=mxUtils.bind(this,function(){if(0==d){for(var a=[b[0]],f=1;f<b.length;f++){var e=b[f].indexOf(")");a.push('url("');a.push(this.cachedFonts[Editor.trimCssUrl(b[f].substring(0,e))]);a.push('"'+b[f].substring(e))}c(a.join(""))}});if(0<b.length){for(var e=1;e<b.length;e++){var g=b[e].indexOf(")"),k=null,n=b[e].indexOf("format(",g);0<n&&(k=Editor.trimCssUrl(b[e].substring(n+7,b[e].indexOf(")",n))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=a;d++;var c="application/x-font-ttf";
+if("svg"==k||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==k||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&
+(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){this.cachedFonts[a]=c;d--;f()}),mxUtils.bind(this,function(a){d--;f()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(Editor.trimCssUrl(b[e].substring(0,g)),k)}f()}else c(a)};Editor.prototype.loadFonts=function(a){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(c){this.resolvedFontCss=c;a()})):a()};Editor.prototype.embedExtFonts=function(a){var c=this.graph.getCustomFonts();
+if(0<c.length){var b="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var f=mxUtils.bind(this,function(){0==d&&this.embedCssFonts(b,a)}),e=0;e<c.length;e++)mxUtils.bind(this,function(a,c){Graph.isCssFontUrl(c)?null==this.cachedGoogleFonts[c]?(d++,this.loadUrl(c,mxUtils.bind(this,function(a){this.cachedGoogleFonts[c]=a;b+=a;d--;f()}),mxUtils.bind(this,function(a){d--;b+="@import url("+c+");";f()}))):b+=this.cachedGoogleFonts[c]:b+='@font-face {font-family: "'+a+'";src: url("'+c+
+'")}'})(c[e].name,c[e].url);f()}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var c=document.getElementsByTagName("style"),b=0;b<c.length;b++)0<mxUtils.getTextContent(c[b]).indexOf("MathJax")&&a[0].appendChild(c[b].cloneNode(!0))};Editor.prototype.addFontCss=function(a,c){c=null!=c?c:this.absoluteCssFonts(this.fontCss);if(null!=c){var b=a.getElementsByTagName("defs"),d=a.ownerDocument;0==b.length?(b=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,
+"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)):b=b[0];d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,c);b.appendChild(d)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,c,b){var d=mxClient.IS_FF?8192:16384;return Math.min(b,Math.min(d/a,d/
+c))};Editor.prototype.exportToCanvas=function(a,c,b,d,f,e,g,k,p,t,v,m,l,y,z,A,q,u){try{e=null!=e?e:!0;g=null!=g?g:!0;m=null!=m?m:this.graph;l=null!=l?l:0;var n=p?null:m.background;n==mxConstants.NONE&&(n=null);null==n&&(n=d);null==n&&0==p&&(n=A?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(m.getSvg(null,null,l,y,null,g,null,null,null,t,null,A,q,u),mxUtils.bind(this,function(b){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var g=function(){mxClient.IS_SF?window.setTimeout(function(){y.drawImage(d,
+0,0);a(p,b)},0):(y.drawImage(d,0,0),a(p,b))},p=document.createElement("canvas"),t=parseInt(b.getAttribute("width")),v=parseInt(b.getAttribute("height"));k=null!=k?k:1;null!=c&&(k=e?Math.min(1,Math.min(3*c/(4*v),c/t)):c/t);k=this.getMaxCanvasScale(t,v,k);t=Math.ceil(k*t);v=Math.ceil(k*v);p.setAttribute("width",t);p.setAttribute("height",v);var y=p.getContext("2d");null!=n&&(y.beginPath(),y.rect(0,0,t,v),y.fillStyle=n,y.fill());1!=k&&y.scale(k,k);if(z){var A=m.view,q=A.scale;A.scale=1;var B=btoa(unescape(encodeURIComponent(A.createSvgGrid(A.gridColor))));
+A.scale=q;var B="data:image/svg+xml;base64,"+B,C=m.gridSize*A.gridSteps*k,u=m.getGraphBounds(),I=A.translate.x*q,E=A.translate.y*q,F=I+(u.x-I)/q-l,D=E+(u.y-E)/q-l,G=new Image;G.onload=function(){try{for(var a=-Math.round(C-mxUtils.mod((I-F)*k,C)),c=-Math.round(C-mxUtils.mod((E-D)*k,C));a<t;a+=C)for(var b=c;b<v;b+=C)y.drawImage(G,a/k,b/k);g()}catch(ua){null!=f&&f(ua)}};G.onerror=function(a){null!=f&&f(a)};G.src=B}else g()}catch(xa){null!=f&&f(xa)}});d.onerror=function(a){null!=f&&f(a)};t&&this.graph.addSvgShadow(b);
+this.graph.mathEnabled&&this.addMathCss(b);var g=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(ra){null!=f&&f(ra)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(g)}catch(O){null!=f&&f(O)}}))}catch(ra){null!=f&&f(ra)}}),b,v)}catch(T){null!=f&&f(T)}};Editor.crcTable=[];for(var l=0;256>l;l++)for(var m=l,u=0;8>u;u++)m=1==(m&1)?3988292384^m>>>
+1:m>>>1,Editor.crcTable[l]=m;Editor.updateCRC=function(a,c,b,d){for(var f=0;f<d;f++)a=Editor.crcTable[(a^c.charCodeAt(b+f))&255]^a>>>8;return a};Editor.crc32=function(a){for(var c=-1,b=0;b<a.length;b++)c=c>>>8^Editor.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(a,c,b,d,f){function e(a,c){var b=n;n+=c;return a.substring(b,n)}function g(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>
+24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var n=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(e(a,4),"IHDR"!=e(a,4))null!=f&&f();else{e(a,17);f=a.substring(0,n);do{var p=g(a);if("IDAT"==e(a,4)){f=a.substring(0,n-8);"pHYs"==c&&"dpi"==b?(b=Math.round(d/.0254),b=k(b)+k(b)+String.fromCharCode(1)):b=b+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,
+c,0,4);d=Editor.updateCRC(d,b,0,b.length);f+=k(b.length)+c+b+k(d^4294967295);f+=a.substring(n-8,a.length);break}f+=a.substring(n-8,n-4+p);e(a,p);e(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(f):Base64.encode(f,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var q=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){q.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};
+var c=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var f=Format.prototype.init;Format.prototype.init=function(){f.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",
+this.update)};var g=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?g.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var k=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=
+function(a){a=k.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});
+Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var p=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=p.apply(this,arguments);var c=this.editorUi,b=c.editor.graph;if(b.isEnabled()){var d=c.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return c.editor.autosave},function(a){c.editor.setAutosave(a);
+c.editor.autosave&&d.isModified()&&d.fileChanged()},{install:function(a){this.listener=function(){a(c.editor.autosave)};c.editor.addListener("autosaveChanged",this.listener)},destroy:function(){c.editor.removeListener(this.listener)}});a.appendChild(f)}}if(this.isMathOptionVisible()&&b.isEnabled()&&"undefined"!==typeof MathJax){f=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return b.mathEnabled},function(a){c.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=
+function(){a(b.mathEnabled)};c.addListener("mathEnabledChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});f.style.paddingTop="5px";a.appendChild(f);var e=c.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");e.style.position="relative";e.style.marginLeft="6px";e.style.top="2px";f.appendChild(e)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
+{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=
+[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",
+type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",
+type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line",
+type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties=[{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20},
+{name:"fixedSize",dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",
+type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width",
+type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left",
+dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"startSize",dispName:"Header Size",type:"float"},{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},
+{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=
+[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",
+defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},
+{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",
+dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];
+mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},
+{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,
+defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=
+[{name:"width",dispName:"Title Width",type:"float",defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",
+font:"#ffffff"},{fill:"#008a00",stroke:"#005700",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},
+{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",
+gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",
+stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,c,b){if(null!=c){var d=function(a){if(null!=a)if(b)for(var d=0;d<a.length;d++)c[a[d].name]=a[d];else for(var f in c){for(var e=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==c[f].type){e=!0;break}e||delete c[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&null!=f.shape&&(f.shape.commonCustomPropAdded||
+(f.shape.commonCustomPropAdded=!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(U){}}};var t=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"==
+a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));t.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},b=a.vertices,d=a.edges,f=0;f<b.length;f++)this.findCommonProperties(b[f],c,0==f);for(f=0;f<d.length;f++)this.findCommonProperties(d[f],c,0==b.length&&0==f);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,a))}};var v=StyleFormatPanel.prototype.addStyleOps;
+StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));
+c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,c,b){function d(a,c,b,d){v.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],k=b.parentRow.nextSibling;k&&k.getAttribute("data-pName")==a;)g.push(k.getAttribute("data-pValue")),
+k=k.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(v.setCellStyles(b.countProperty,g.length,v.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}v.setCellStyles(a,c,v.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var p=b.dependentPropsDefVal[a],n=b.dependentPropsVals[a];if(n.length>c)n=n.slice(0,c);else for(var m=
+n.length;m<c;m++)n.push(p);n=n.join(",");v.setCellStyles(b.dependentProps[a],n,v.getSelectionCells());f.push(b.dependentProps[a]);e.push(n)}if("function"==typeof b.onChange)b.onChange(v,c);t.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",v.getSelectionCells()))}finally{v.getModel().endUpdate()}}function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+
+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height="4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(t,function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height=
+"12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,k){null!=c&&(c=c.split(","),m.push({name:a,values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(t,function(c){for(var p=g,t=0;null!=p.nextSibling;)if(p.nextSibling.getAttribute("data-pName")==a)p=p.nextSibling,t++;else break;var v={type:b,parentRow:g,index:t,isDeletable:!0,defVal:f,countProperty:e},t=n(a,"",v,0==t%2,k);d(a,f,
+v);p.parentNode.insertBefore(t,p.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function k(a,c,b,d,f,e,g){if(0<f){var k=Array(f);c=null!=c?c.split(","):[];for(var p=0;p<f;p++)k[p]=null!=c[p]?c[p]:null!=d?d:"";m.push({name:a,values:k,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}function p(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,
+"change",function(){d(a,f.checked?"1":"0",b)});return f}function n(c,b,n,v,m){var l=n.dispName,y=n.type,z=document.createElement("tr");z.className="gePropRow"+(m?"Dark":"")+(v?"Alt":"")+" gePropNonHeaderRow";z.setAttribute("data-pName",c);z.setAttribute("data-pValue",b);v=!1;null!=n.index&&(z.setAttribute("data-index",n.index),l=(null!=l?l:"")+"["+n.index+"]",v=!0);var A=document.createElement("td");A.className="gePropRowCell";A.innerHTML=mxUtils.htmlEntities(mxResources.get(l,null,l));v&&(A.style.textAlign=
+"right");z.appendChild(A);A=document.createElement("td");A.className="gePropRowCell";if("color"==y)A.appendChild(e(c,b,n));else if("bool"==y||"boolean"==y)A.appendChild(p(c,b,n));else if("enum"==y){var q=n.enumList;for(m=0;m<q.length;m++)if(l=q[m],l.val==b){A.innerHTML=mxUtils.htmlEntities(mxResources.get(l.dispName,null,l.dispName));break}mxEvent.addListener(A,"click",mxUtils.bind(t,function(){var e=document.createElement("select");f(A,e);for(var g=0;g<q.length;g++){var k=q[g],p=document.createElement("option");
+p.value=mxUtils.htmlEntities(k.val);p.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));e.appendChild(p)}e.value=b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,n)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==y?A.appendChild(g(c,b,n.subType,n.subDefVal,n.countProperty,z,m)):"staticArr"==y?A.appendChild(k(c,b,n.subType,n.subDefVal,n.size,z,m)):"readOnly"==y?(m=document.createElement("input"),
+m.setAttribute("readonly",""),m.value=b,m.style.width="96px",m.style.borderWidth="0px",A.appendChild(m)):(A.innerHTML=b,mxEvent.addListener(A,"click",mxUtils.bind(t,function(){function e(){var a=g.value,a=0==a.length&&"string"!=y?0:a;n.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",y="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=n.min&&a<n.min?a=n.min:null!=n.max&&a>n.max&&(a=n.max);a=mxUtils.htmlEntities(("int"==y?parseInt(a):a)+"");d(c,a,n)}var g=document.createElement("input");
+f(A,g,!0);g.value=b;g.className="gePropEditor";"int"!=y&&"float"!=y||n.allowAuto||(g.type="number",g.step="int"==y?"1":"any",null!=n.min&&(g.min=parseFloat(n.min)),null!=n.max&&(g.max=parseFloat(n.max)));a.appendChild(g);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){e()})})));n.isDeletable&&(m=mxUtils.button("-",mxUtils.bind(t,function(a){d(c,"",n,n.index);mxEvent.consume(a)})),m.style.height="16px",m.style.width="25px",m.style["float"]=
+"right",m.className="geColorBtn",A.appendChild(m));z.appendChild(A);return z}var t=this,v=this.editorUi.editor.graph,m=[];a.style.position="relative";a.style.padding="0";var l=document.createElement("table");l.className="geProperties";l.style.whiteSpace="nowrap";l.style.width="100%";var y=document.createElement("tr");y.className="gePropHeader";var z=document.createElement("th");z.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;z.appendChild(A);
+mxUtils.write(z,mxResources.get("property"));y.style.cursor="pointer";var q=function(){var c=l.querySelectorAll(".gePropNonHeaderRow"),b;if(t.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(sa){}}else A.src=Sidebar.prototype.expandedImage,b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(y,"click",function(){t.editorUi.propertiesCollapsed=
+!t.editorUi.propertiesCollapsed;q()});y.appendChild(z);z=document.createElement("th");z.className="gePropHeaderCell";z.innerHTML=mxResources.get("value");y.appendChild(z);l.appendChild(y);var u=!1,B=!1,y=null;1==b.vertices.length&&0==b.edges.length?y=b.vertices[0].id:0==b.vertices.length&&1==b.edges.length&&(y=b.edges[0].id);null!=y&&l.appendChild(n("id",mxUtils.htmlEntities(y),{dispName:"ID",type:"readOnly"},!0,!1));for(var C in c)if(y=c[C],"function"!=typeof y.isVisible||y.isVisible(b,this)){var I=
+null!=b.style[C]?mxUtils.htmlEntities(b.style[C]+""):null!=y.getDefaultValue?y.getDefaultValue(b,this):y.defVal;if("separator"==y.type)B=!B;else{if("staticArr"==y.type)y.size=parseInt(b.style[y.sizeProperty]||c[y.sizeProperty].defVal)||0;else if(null!=y.dependentProps){for(var F=y.dependentProps,D=[],G=[],z=0;z<F.length;z++){var N=b.style[F[z]];G.push(c[F[z]].subDefVal);D.push(null!=N?N.split(","):[])}y.dependentPropsDefVal=G;y.dependentPropsVals=D}l.appendChild(n(C,I,y,u,B));u=!u}}for(z=0;z<m.length;z++)for(y=
+m[z],c=y.parentRow,b=0;b<y.values.length;b++)C=n(y.name,y.values[b],{type:y.type,parentRow:y.parentRow,isDeletable:y.isDeletable,index:b,defVal:y.defVal,countProperty:y.countProperty,size:y.size},0==b%2,y.flipBkg),c.parentNode.insertBefore(C,c.nextSibling),c=C;a.appendChild(l);q();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var b=this.editorUi,
+d=b.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.position="relative";
+g.style.textAlign="center";for(var k=[],n=0;n<this.defaultColorSchemes.length;n++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){t(a)}))})(n);k.push(p);g.appendChild(p)}var t=mxUtils.bind(this,
+function(a){null!=this.format.currentScheme&&(k[this.format.currentScheme].style.background="transparent");this.format.currentScheme=a;v(this.defaultColorSchemes[this.format.currentScheme]);k[this.format.currentScheme].style.background="#84d7ff"}),v=mxUtils.bind(this,function(a){var c=mxUtils.bind(this,function(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),g=0;g<f.length;g++){for(var k=d.getModel().getStyle(f[g]),n=0;n<e.length;n++)k=mxUtils.removeStylename(k,
+e[n]);var p=d.getModel().isVertex(f[g])?b.initialDefaultVertexStyle:b.initialdefaultEdgeStyle;null!=a?(k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isAltDown(c)||(k=""==a.fill?mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,null))),mxEvent.isShiftDown(c)||(k=""==a.stroke?mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,
+null):mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null))),mxEvent.isControlDown(c)||mxClient.IS_MAC&&mxEvent.isMetaDown(c)||!d.getModel().isVertex(f[g])||(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))):(k=mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,"#ffffff")),k=mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,
+mxConstants.STYLE_STROKECOLOR,"#000000")),k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(f[g])&&(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(f[g],k)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width="36px";c.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";c.style.margin="0px 6px 6px 0px";
+if(null!=a){var g="1"==urlParams.sketch?"2px solid":"1px solid";null!=a.gradient?mxClient.IS_IE&&10>document.documentMode?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=""==a.fill?mxUtils.getValue(b.initialDefaultVertexStyle,
+mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff"):a.fill||mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff");c.style.border=a.stroke==mxConstants.NONE?g+" transparent":""==a.stroke?g+" "+mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"):g+" "+(a.stroke||mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":
+"#2a2a2a"))}else{var g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),k=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=g;c.style.border="1px solid "+k}c.style.borderRadius="0";f.appendChild(c)});f.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(f),c(a[g])});null==this.format.currentScheme?t(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):t(this.format.currentScheme);var n=10>=this.defaultColorSchemes.length?
+28:8,m=document.createElement("div");m.style.cssText="position:absolute;left:10px;top:8px;bottom:"+n+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(m,
+"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:"+n+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
1<this.defaultColorSchemes.length&&(a.appendChild(m),a.appendChild(l));mxEvent.addListener(l,"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));c(m);c(l);v(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&a.appendChild(g);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&&(b=mxUtils.button(mxResources.get("editStyle"),
mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),b.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),b.style.width="202px",b.style.marginBottom="2px",a.appendChild(b));var d=this.editorUi.editor.graph,f=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=f&&null!=f.shape&&null!=f.shape.stencil?(c=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),
c.setAttribute("title",mxResources.get("editShape")),c.style.marginBottom="2px",null==b?c.style.width="202px":(b.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c)):c.image&&(c=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),c.setAttribute("title",mxResources.get("editImage")),c.style.marginBottom="2px",null==b?c.style.width="202px":(b.style.width="100px",c.style.width="100px",c.style.marginLeft=
@@ -3278,7 +3279,7 @@ g=document.createElement("div");g.style.marginBottom="12px";var K=PageSetupDialo
(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(I.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),
this.shadowVisible=!this.shadowVisible))};Editor.prototype.useCanvasForExport=!1;try{var R=document.createElement("canvas"),N=new Image;N.onload=function(){try{R.getContext("2d").drawImage(N,0,0);var a=R.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(B){}};N.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(n){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.6.10";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.6.12";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=
!mxClient.IS_OP&&!EditorUi.isElectronApp&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,
messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(a,b,d,e,p,t,v){t=null!=t?t:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
@@ -3370,87 +3371,87 @@ k&&J(a)});e=z.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribut
mxEvent.consume(a)})),l.insertBefore(e,l.firstChild))}m.appendChild(l);m.style.paddingRight=18*l.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+"image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(Graph.decompress(d.xml)),
0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultPageBorderColor="#505759",BaseFormatPanel.prototype.buttonBackgroundColor=
-"#2a2a2a",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxConstants.DROP_TARGET_COLOR="#00ff00");Editor.sketchFontFamily="Architects Daughter";Editor.sketchFontSource="https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter";"1"==urlParams.sketch&&(Menus.prototype.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},
-{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(Menus.prototype.defaultFonts),Graph.prototype.defaultVertexStyle={fontFamily:Editor.sketchFontFamily,fontSize:"20",fontSource:Editor.sketchFontSource,pointerEvents:"0",sketch:"0"==urlParams.rough?"0":"1",hachureGap:"4"},Graph.prototype.defaultEdgeStyle={edgeStyle:"none",rounded:"0",curved:"1",jettySize:"auto",orthogonalLoop:"1",endArrow:"open",startSize:"14",endSize:"14",fontFamily:Editor.sketchFontFamily,
-fontSize:"20",fontSource:Editor.sketchFontSource,sourcePerimeterSpacing:"8",targetPerimeterSpacing:"8",sketch:"0"==urlParams.rough?"0":"1"},Editor.configurationKey=".sketch-configuration",Editor.settingsKey=".sketch-config",Graph.prototype.defaultGridEnabled=!1,Graph.prototype.defaultPageVisible=!1,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(a,b,d,e,p){a=new ImageDialog(this,a,b,d,e,p);
-this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a,c){if(!c){var b=new ChangePageSetup(this,null,a);b.ignoreColor=!0;this.editor.graph.model.execute(b)}});var c=new BackgroundImageDialog(this,a,b);this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,p){a=new LibraryDialog(this,a,b,d,e,p);this.showDialog(a.container,
-640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var c=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(a){this.editor.graph.isSelectionEmpty()&&c.refresh()}));return c};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer geSidebarFooter");
-a.style.position="absolute";a.style.overflow="hidden";var b=document.createElement("a");b.className="geTitle";b.style.color="#DF6C0C";b.style.fontWeight="bold";b.style.height="100%";b.style.paddingTop="9px";b.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();
-mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d,e,p,t,m){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&null!=a.message)try{m?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(G){}if(null!=f||null!=b){m=mxUtils.htmlEntities(mxResources.get("unknownError"));
-var g=mxResources.get("ok"),k=null;b=null!=b?b:mxResources.get("error");if(null!=f){null!=f.retry&&(g=mxResources.get("cancel"),k=function(){c();f.retry()});if(404==f.code||404==f.status||403==f.code){m=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=p?p:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var l=
-null!=p?null:null!=t?t:window.location.hash;if(null!=l&&("#G"==l.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==l.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==f.code||404==f.status)){l="#U"==l.substring(0,2)?l.substring(45,l.lastIndexOf("%26ex")):l.substring(2);this.showError(b,m,mxResources.get("openInNewWindow"),
-mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+l);this.handleError(a,b,d,e,p)}),k,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=0;a<c.length;a++){var b=document.createElement("option");mxUtils.write(b,c[a].displayName);b.value=a;f.appendChild(b);b=document.createElement("option");b.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(b,"<"+c[a].email+">");b.setAttribute("disabled","disabled");f.appendChild(b)}b=
-document.createElement("option");mxUtils.write(b,mxResources.get("addAccount"));b.value=c.length;f.appendChild(b)}var c=this.drive.getUsersList(),b=document.createElement("div"),d=document.createElement("span");d.style.marginTop="6px";mxUtils.write(d,mxResources.get("changeUser")+": ");b.appendChild(d);var f=document.createElement("select");f.style.width="200px";a();mxEvent.addListener(f,"change",mxUtils.bind(this,function(){var b=f.value,d=c.length!=b;d&&this.drive.setUser(c[b]);this.drive.authorize(d,
-mxUtils.bind(this,function(){d||(c=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));b.appendChild(f);b=new CustomDialog(this,b,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(b.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=d&&d()}),480,150);return}}null!=f.message?m=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):
-null!=f.response&&null!=f.response.error?m=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?m=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?m=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof f&&0<f.length&&(m=mxUtils.htmlEntities(f)))}var v=t=null;null!=f&&null!=f.helpLink&&(t=mxResources.get("help"),v=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)}));this.showError(b,m,g,d,k,null,
-null,t,v,null,null,null,e?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b,d){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,d||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,d,e,p,t){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,p,null,null,null,null,f);this.showDialog(a.container,
-340,46+f,!0,t);a.init()};EditorUi.prototype.showBanner=function(a,b,d,e){var c=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var f=document.createElement("div");f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");
-mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(f.style,"transition","all 1s ease");f.className="geBtn gePrimaryBtn";c=document.createElement("img");c.setAttribute("src",IMAGE_PATH+"/logo.png");c.setAttribute("border","0");c.setAttribute("align","absmiddle");c.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";f.appendChild(c);c=document.createElement("img");c.setAttribute("src",Dialog.prototype.closeImage);c.setAttribute("title",
-mxResources.get(e?"doNotShowAgain":"close"));c.setAttribute("border","0");c.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";f.appendChild(c);mxUtils.write(f,b);document.body.appendChild(f);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("id","geDoNotShowAgainCheckbox");g.style.marginRight=
-"6px";if(!e){b.appendChild(g);var k=document.createElement("label");k.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(k,mxResources.get("doNotShowAgain"));b.appendChild(k);f.style.paddingBottom="30px";f.appendChild(b)}var m=mxUtils.bind(this,function(){null!=f.parentNode&&(f.parentNode.removeChild(f),this.bannerShowing=!1,g.checked||e)&&(this["hideBanner"+a]=!0,isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings["close"+a]=Date.now(),mxSettings.save()))});mxEvent.addListener(c,
-"click",mxUtils.bind(this,function(a){mxEvent.consume(a);m()}));var l=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){m()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);c!=g&&c!=k?(null!=d&&d(),m(),mxEvent.consume(a)):l()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(l,
-3E4);c=!0}return c};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(a,b,d,e){a=a.toDataURL("image/"+d);if(null!=a&&6<a.length)null!=b&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(b))),0<e&&(a=Editor.writeGraphModelToPng(a,"pHYs",
-"dpi",e));else throw{message:mxResources.get("unknownError")};return a};EditorUi.prototype.saveCanvas=function(a,b,d,e,p){var c="jpeg"==d?"jpg":d;e=this.getBaseFilename(e)+"."+c;a=this.createImageDataUri(a,b,d,p);this.saveData(e,c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||
-this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height="380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,p,t){"text/xml"!=d||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+
-"."+(null!=t?t:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,e);else{var c=document.createElement("a");
-t=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof c.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);t=65==(f?parseInt(f[2],10):!1)?!1:t}if(t||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));t?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},2E4),c.click(),
-c.parentNode.removeChild(c)}catch(F){}}else this.createEchoRequest(a,b,d,e,p).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,p,t){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=p?"&format="+p:"")+(null!=t?"&base64="+t:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),m=0;m<f;++m){for(var l=
-1024*m,q=Math.min(l+1024,d),y=Array(q-l),z=0;l<q;++z,++l)y[z]=c[l].charCodeAt(0);e[m]=new Uint8Array(y)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,p,m,l,q){m=null!=m?m:!1;l=null!=l?l:"vsdx"!=p&&(!mxClient.IS_IOS||!navigator.standalone);p=this.getServiceCount(m);isLocalStorage&&p++;var c=4>=p?2:6<p?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,e);else if(null!=d&&"text/html"==
-d.substring(0,9)){var f=new EmbedDialog(this,a);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(a,!1)+"</pre>"),g.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e,null,q):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(J){this.handleError(J)}}))}catch(G){this.handleError(G)}}),mxUtils.bind(this,
-function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,m,l,null,1<p,c,a,d,e);m=this.isServices(p)?p>c?390:270:160;this.showDialog(b.container,400,m,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){var c=window.open("about:blank");null==c||null==c.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):(a=d?a:btoa(unescape(encodeURIComponent(a))),c.document.write('<html><img style="max-width:100%;" src="data:'+
-b+";base64,"+a+'"/></html>')):c.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),c.document.close())};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),
-this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding=
-"4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);
-this.editor.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);
-mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,
-arguments)};EditorUi.prototype.saveData=function(a,b,d,e,p){this.isLocalFileSave()?this.saveLocalFile(d,a,e,p,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,p,b,c)}),d,p,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,p,m,l){l=null!=l?l:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var f=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==
-c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){m=null!=m?m:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,m,!0,c,d)}catch(G){this.handleError(G)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),
-a,m,!0,c,d)}catch(G){this.handleError(G)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,l,null,1<c,f,e,m,p);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
-EditorUi.prototype.exportFile=function(a,b,d,e,p,m){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,e,p,m,l,q,u,y,z,L){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f=z?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(f,a,l,q,null,d,null,null,"blank"==
-y?"_blank":"self"==y?"_top":null,null,!0,z,L);e&&this.editor.graph.addSvgShadow(g);var k=this.getBaseFilename()+".svg",t=mxUtils.bind(this,function(a){this.spinner.stop();p&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,u,null,null,null,!1));var c='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",c,"image/svg+xml"):
-this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);m?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,t,this.thumbImageCache)):t(g)}catch(K){this.handleError(K)}};EditorUi.prototype.addRadiobox=function(a,b,d,e,p,m,l){return this.addCheckbox(a,d,e,p,m,l,!0,b)};EditorUi.prototype.addCheckbox=function(a,
-b,d,e,p,m,l,q){m=null!=m?m:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",l?"radio":"checkbox");l="geCheckbox-"+Editor.guid();c.id=l;null!=q&&c.setAttribute("name",q);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");m&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",l),a.appendChild(d),p||mxUtils.br(a));return c};EditorUi.prototype.addEditButton=
-function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");
-d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||
-b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){m.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
-Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");
-f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",m=null,m=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();m.style.padding=
-mxClient.IS_FF?"4px 2px 4px 2px":"4px";m.style.marginLeft="4px";m.style.height="22px";m.style.width="22px";m.style.position="relative";m.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";m.className="geColorBtn";a.appendChild(m);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,d,e,p,m,l){l=null!=l?l:[];e&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
-"1"!=urlParams.dev||l.push("lightbox=1"),"auto"!=a&&l.push("target="+a),null!=b&&b!=mxConstants.NONE&&l.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=p&&0<p.length&&l.push("edit="+encodeURIComponent(p)),m&&l.push("layers=1"),this.editor.graph.foldingEnabled&&l.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&l.push("page-id="+this.currentPage.getId());return l};EditorUi.prototype.createLink=function(a,b,d,e,p,m,l,q,u,y){u=this.createUrlParameters(a,
-b,d,e,p,m,u);a=this.getCurrentFile();b=!0;null!=l?d="#U"+encodeURIComponent(l):(a=this.getCurrentFile(),q||null==a||a.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&u.push("title="+encodeURIComponent(a.getTitle()));y&&1<d.length&&(u.push("open="+d.substring(1)),d="");return(e&&
-"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<u.length?"?"+u.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,p,m,l,q,u,y,z){this.getBasenames();var c={};""!=p&&p!=mxConstants.NONE&&(c.highlight=p);"auto"!==e&&(c.target=e);u||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];l&&(d.push("pages"),
-c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);q&&d.push("layers");0<d.length&&(u&&d.push("lightbox"),c.toolbar=d.join(" "));null!=y&&0<y.length&&(c.edit=y);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!l);b='<div class="mxgraph" style="'+(m?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+
-encodeURIComponent(a):"";z(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,
-mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value",
-"copy");g.appendChild(f);var m=document.createElement("span");mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(m);mxUtils.br(g);g.appendChild(k);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));g.appendChild(m);var l=this.getCurrentFile();null==d&&null!=l&&l.constructor==window.DriveFile&&(m=document.createElement("a"),m.style.paddingLeft="12px",m.style.color="gray",m.style.cursor="pointer",mxUtils.write(m,mxResources.get("share")),g.appendChild(m),
-mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(l.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var z=this.addLinkSection(c),q=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.style.marginRight="12px";u.value=
-"100%";c.appendChild(u);var G=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,J=J=this.addCheckbox(c,mxResources.get("allPages"),g,!g),H=this.addCheckbox(c,mxResources.get("layers"),!0),D=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,D),I=K.getEditInput();I.style.marginBottom="16px";mxEvent.addListener(D,"change",function(){D.checked?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled");I.checked&&D.checked?K.getEditSelect().removeAttribute("disabled"):
-K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,q.checked,u.value,z.getTarget(),z.getColor(),G.checked,J.checked,H.checked,D.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,p,m){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText=
-"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var l=document.createElement("div");
-l.style.whiteSpace="normal";mxUtils.write(l,mxResources.get("linkAccountRequired"));k.appendChild(l);l=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));l.style.marginTop="12px";l.className="geBtn";k.appendChild(l);c.appendChild(k);l=document.createElement("a");l.style.paddingLeft="12px";l.style.color="gray";l.style.fontSize="11px";l.style.cursor="pointer";mxUtils.write(l,mxResources.get("check"));k.appendChild(l);mxEvent.addListener(l,"click",
-mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var t=null,q=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),t=document.createElement("input"),t.setAttribute("type","text"),
-t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",c.appendChild(t),mxUtils.write(c,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",c.appendChild(q),mxUtils.br(c);var u=this.addLinkSection(c,m);d=null!=this.pages&&1<this.pages.length;var J=null;if(null==g||g.constructor!=window.DriveFile||
-b)J=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var H=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!m),D=this.addEditButton(c,H),K=D.getEditInput();m&&(K.style.marginLeft=H.style.marginLeft,H.style.display="none",a-=30);var I=this.addCheckbox(c,mxResources.get("layers"),!0);I.style.marginLeft=K.style.marginLeft;I.style.marginBottom="16px";I.style.marginTop="8px";mxEvent.addListener(H,"change",function(){H.checked?(I.removeAttribute("disabled"),K.removeAttribute("disabled")):
-(I.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&H.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){p(u.getTarget(),u.getColor(),null==J?!0:J.checked,H.checked,D.getLink(),I.checked,null!=t?t.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||
-5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)):u.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e,p){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(p?"10":"4")+"px";c.appendChild(f);if(p){mxUtils.write(c,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type",
-"text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";c.appendChild(g);mxUtils.write(c,mxResources.get("borderWidth")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.value=this.lastExportBorder||"0";c.appendChild(k);mxUtils.br(c)}var m=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
-l=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,q=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=q&&(q.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(k.value)||0;d(!m.checked,null!=l?l.checked:!1,null!=q?q.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(p?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
-function(a,b,d,e,p,m,l,q,u){l=null!=l?l:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==q?196:300,k=document.createElement("h3");mxUtils.write(k,a);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(k);mxUtils.write(c,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight=
-"12px";t.value=this.lastExportZoom||"100%";c.appendChild(t);mxUtils.write(c,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||"0";c.appendChild(v);mxUtils.br(c);var A=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),D=document.createElement("input");D.style.marginTop="16px";D.style.marginRight="8px";D.style.marginLeft=
-"24px";D.setAttribute("disabled","disabled");D.setAttribute("type","checkbox");var F=document.createElement("select");F.style.marginTop="16px";F.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(k=0;k<a.length;k++)if(!f.isSelectionEmpty()||"selectionOnly"!=a[k]){var I=document.createElement("option");mxUtils.write(I,mxResources.get(a[k]));I.setAttribute("value",a[k]);F.appendChild(I)}u?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(F),mxUtils.br(c),g+=26,mxEvent.addListener(F,
-"change",function(){"selectionOnly"==F.value&&(A.checked=!0)})):m&&(c.appendChild(D),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(A,"change",function(){A.checked?D.removeAttribute("disabled"):D.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?u&&(A.style.display="none",A.nextSibling.style.display="none",A.nextSibling.nextSibling.style.display="none",g-=26):(F.value="diagram",D.setAttribute("checked","checked"),D.defaultChecked=!0,mxEvent.addListener(A,
-"change",function(){F.value=A.checked?"selectionOnly":"diagram"}));var R=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=q),N=null;Editor.isDarkMode()&&(N=this.addCheckbox(c,mxResources.get("dark"),!0),g+=26);var n=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),B=document.createElement("input");B.style.marginTop="16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");
-b&&(c.appendChild(B),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=null;if("png"==q||"jpeg"==q)C=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),g+=26;var ka=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),l,null,null,"jpeg"!=q);ka.style.marginBottom="16px";var E=document.createElement("select");E.style.maxWidth="260px";E.style.marginLeft="8px";E.style.marginRight="10px";E.className="geBtn";b=document.createElement("option");
-b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));E.appendChild(b);"svg"==q&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(E),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,
-mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=t.value;p(t.value,R.checked,!A.checked,n.checked,ka.checked,B.checked,v.value,D.checked,!1,E.value,null!=C?C.checked:null,null!=N?N.checked:null,F.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,p){var c=document.createElement("div");
-c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(g)}var k=this.addCheckbox(c,mxResources.get("fit"),!0),m=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(c,d),q=this.addCheckbox(c,mxResources.get("lightbox"),!0),u=this.addEditButton(c,q),G=u.getEditInput(),J=1<f.model.getChildCount(f.model.getRoot()),
-H=this.addCheckbox(c,mxResources.get("layers"),J,!J);H.style.marginLeft=G.style.marginLeft;H.style.marginBottom="12px";H.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(J&&H.removeAttribute("disabled"),G.removeAttribute("disabled")):(H.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&q.checked?u.getEditSelect().removeAttribute("disabled"):u.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,
-function(){a(k.checked,m.checked,l.checked,q.checked,u.getLink(),H.checked)}),null,mxResources.get("embed"),p);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,e,p,m,l,q){function c(c){var b=" ",k="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=g?"&page="+g:"")+(p?"&edit=_blank":"")+(m?"&layers=1":"")+"');}})(this);\"",k+="cursor:pointer;");a&&(k+="max-width:100%;");var t="";d&&(t=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');l('<img src="'+c+'"'+t+(""!=k?' style="'+k+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds(),g=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=
-this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){q({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var k="";d&&(k="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+k+"&xml="+encodeURIComponent(b));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&
-299>=t.getStatus()?c("data:image/png;base64,"+t.getText()):q({message:mxResources.get("unknownError")})}))}else q({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,b,d,e,p,m,l){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var k=f[g].getAttribute("href");null!=k&&"#"==k.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&
-c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var t=" ",v="";e&&(t="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(p?"&edit=_blank":"")+(m?"&layers=1":
-"")+"');}})(this);\"",v+="cursor:pointer;");a&&(v+="max-width:100%;");this.editor.convertImages(c,mxUtils.bind(this,function(a){l('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=v?' style="'+v+'"':"")+t+"/>")}))}else v="",e&&(b=this.getSelectedPageIndex(),c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
+"#2a2a2a",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxConstants.DROP_TARGET_COLOR="#00ff00");Editor.sketchFontFamily="Architects Daughter";Editor.sketchFontSource="https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter";"1"==urlParams.sketch&&(Graph.prototype.defaultVertexStyle={pointerEvents:"0",hachureGap:"4"},Graph.prototype.defaultEdgeStyle={edgeStyle:"none",rounded:"0",curved:"1",jettySize:"auto",orthogonalLoop:"1",
+endArrow:"open",startSize:"14",endSize:"14",sourcePerimeterSpacing:"8",targetPerimeterSpacing:"8"},"0"!=urlParams.rough&&(Graph.prototype.defaultVertexStyle.fontFamily=Editor.sketchFontFamily,Graph.prototype.defaultVertexStyle.fontSource=Editor.sketchFontSource,Graph.prototype.defaultVertexStyle.fontSize="20",Graph.prototype.defaultVertexStyle.sketch="1",Graph.prototype.defaultEdgeStyle.fontFamily=Editor.sketchFontFamily,Graph.prototype.defaultEdgeStyle.fontSource=Editor.sketchFontSource,Graph.prototype.defaultEdgeStyle.fontSize=
+"20",Graph.prototype.defaultEdgeStyle.sketch="1",Menus.prototype.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(Menus.prototype.defaultFonts)),Editor.configurationKey=".sketch-configuration",Editor.settingsKey=".sketch-config",Graph.prototype.defaultGridEnabled=
+!1,Graph.prototype.defaultPageVisible=!1,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(a,b,d,e,p){a=new ImageDialog(this,a,b,d,e,p);this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a,c){if(!c){var b=new ChangePageSetup(this,null,a);b.ignoreColor=
+!0;this.editor.graph.model.execute(b)}});var c=new BackgroundImageDialog(this,a,b);this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,p){a=new LibraryDialog(this,a,b,d,e,p);this.showDialog(a.container,640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var c=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",
+mxUtils.bind(this,function(a){this.editor.graph.isSelectionEmpty()&&c.refresh()}));return c};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer geSidebarFooter");a.style.position="absolute";a.style.overflow="hidden";var b=document.createElement("a");b.className="geTitle";b.style.color="#DF6C0C";b.style.fontWeight="bold";b.style.height="100%";b.style.paddingTop="9px";b.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,
+mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d,e,p,t,m){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&
+null!=a.message)try{m?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(G){}if(null!=f||null!=b){m=mxUtils.htmlEntities(mxResources.get("unknownError"));var g=mxResources.get("ok"),k=null;b=null!=b?b:mxResources.get("error");if(null!=f){null!=f.retry&&(g=mxResources.get("cancel"),k=function(){c();f.retry()});if(404==f.code||404==f.status||403==f.code){m=403==
+f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=p?p:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var l=null!=p?null:null!=t?t:window.location.hash;if(null!=l&&("#G"==l.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==l.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&
+"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==f.code||404==f.status)){l="#U"==l.substring(0,2)?l.substring(45,l.lastIndexOf("%26ex")):l.substring(2);this.showError(b,m,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+l);this.handleError(a,b,d,e,p)}),k,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=
+0;a<c.length;a++){var b=document.createElement("option");mxUtils.write(b,c[a].displayName);b.value=a;f.appendChild(b);b=document.createElement("option");b.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(b,"<"+c[a].email+">");b.setAttribute("disabled","disabled");f.appendChild(b)}b=document.createElement("option");mxUtils.write(b,mxResources.get("addAccount"));b.value=c.length;f.appendChild(b)}var c=this.drive.getUsersList(),b=document.createElement("div"),d=document.createElement("span");d.style.marginTop=
+"6px";mxUtils.write(d,mxResources.get("changeUser")+": ");b.appendChild(d);var f=document.createElement("select");f.style.width="200px";a();mxEvent.addListener(f,"change",mxUtils.bind(this,function(){var b=f.value,d=c.length!=b;d&&this.drive.setUser(c[b]);this.drive.authorize(d,mxUtils.bind(this,function(){d||(c=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));b.appendChild(f);b=new CustomDialog(this,b,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),
+!0)}));this.showDialog(b.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=d&&d()}),480,150);return}}null!=f.message?m=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error?m=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?m=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?m=mxUtils.htmlEntities(mxResources.get("busy")):
+"string"===typeof f&&0<f.length&&(m=mxUtils.htmlEntities(f)))}var v=t=null;null!=f&&null!=f.helpLink&&(t=mxResources.get("help"),v=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)}));this.showError(b,m,g,d,k,null,null,t,v,null,null,null,e?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b,d){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,d||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,d,e,p,t){var c=null!=
+this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,p,null,null,null,null,f);this.showDialog(a.container,340,46+f,!0,t);a.init()};EditorUi.prototype.showBanner=function(a,b,d,e){var c=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var f=document.createElement("div");
+f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(f.style,"transition","all 1s ease");f.className="geBtn gePrimaryBtn";c=document.createElement("img");c.setAttribute("src",IMAGE_PATH+
+"/logo.png");c.setAttribute("border","0");c.setAttribute("align","absmiddle");c.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";f.appendChild(c);c=document.createElement("img");c.setAttribute("src",Dialog.prototype.closeImage);c.setAttribute("title",mxResources.get(e?"doNotShowAgain":"close"));c.setAttribute("border","0");c.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";f.appendChild(c);mxUtils.write(f,
+b);document.body.appendChild(f);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("id","geDoNotShowAgainCheckbox");g.style.marginRight="6px";if(!e){b.appendChild(g);var k=document.createElement("label");k.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(k,mxResources.get("doNotShowAgain"));b.appendChild(k);f.style.paddingBottom=
+"30px";f.appendChild(b)}var m=mxUtils.bind(this,function(){null!=f.parentNode&&(f.parentNode.removeChild(f),this.bannerShowing=!1,g.checked||e)&&(this["hideBanner"+a]=!0,isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings["close"+a]=Date.now(),mxSettings.save()))});mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){mxEvent.consume(a);m()}));var l=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,
+function(){m()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);c!=g&&c!=k?(null!=d&&d(),m(),mxEvent.consume(a)):l()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(l,3E4);c=!0}return c};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=
+function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(a,b,d,e){a=a.toDataURL("image/"+d);if(null!=a&&6<a.length)null!=b&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(b))),0<e&&(a=Editor.writeGraphModelToPng(a,"pHYs","dpi",e));else throw{message:mxResources.get("unknownError")};return a};EditorUi.prototype.saveCanvas=function(a,b,d,e,p){var c="jpeg"==d?"jpg":d;e=this.getBaseFilename(e)+"."+c;a=this.createImageDataUri(a,b,d,p);this.saveData(e,
+c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height=
+"380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,p,t){"text/xml"!=d||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+"."+(null!=t?t:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),
+null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,e);else{var c=document.createElement("a");t=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof c.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
+t=65==(f?parseInt(f[2],10):!1)?!1:t}if(t||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));t?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},2E4),c.click(),c.parentNode.removeChild(c)}catch(F){}}else this.createEchoRequest(a,b,d,e,p).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,p,t){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,
+a+(null!=d?"&mime="+d:"")+(null!=p?"&format="+p:"")+(null!=t?"&base64="+t:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),m=0;m<f;++m){for(var l=1024*m,q=Math.min(l+1024,d),y=Array(q-l),z=0;l<q;++z,++l)y[z]=c[l].charCodeAt(0);e[m]=new Uint8Array(y)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,p,m,l,q){m=null!=m?m:!1;l=null!=l?
+l:"vsdx"!=p&&(!mxClient.IS_IOS||!navigator.standalone);p=this.getServiceCount(m);isLocalStorage&&p++;var c=4>=p?2:6<p?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,e);else if(null!=d&&"text/html"==d.substring(0,9)){var f=new EmbedDialog(this,a);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(a,
+!1)+"</pre>"),g.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e,null,q):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(J){this.handleError(J)}}))}catch(G){this.handleError(G)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,m,l,null,1<p,c,a,d,e);m=this.isServices(p)?p>c?390:270:160;this.showDialog(b.container,400,m,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=
+function(a,b,d){var c=window.open("about:blank");null==c||null==c.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):(a=d?a:btoa(unescape(encodeURIComponent(a))),c.document.write('<html><img style="max-width:100%;" src="data:'+b+";base64,"+a+'"/></html>')):c.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),c.document.close())};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=
+function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");
+this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);this.editor.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,
+null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,
+function(a){this.spinner.stop();this.handleError(a)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,d,e,p){this.isLocalFileSave()?this.saveLocalFile(d,a,e,p,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,
+p,b,c)}),d,p,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,p,m,l){l=null!=l?l:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var f=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,
+function(d){m=null!=m?m:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,m,!0,c,d)}catch(G){this.handleError(G)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,m,!0,c,d)}catch(G){this.handleError(G)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),
+mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,l,null,1<c,f,e,m,p);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,d,e,p,m){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,e,
+p,m,l,q,u,y,z,L){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f=z?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(f,a,l,q,null,d,null,null,"blank"==y?"_blank":"self"==y?"_top":null,null,!0,z,L);e&&this.editor.graph.addSvgShadow(g);var k=this.getBaseFilename()+".svg",t=mxUtils.bind(this,function(a){this.spinner.stop();
+p&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,u,null,null,null,!1));var c='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",c,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);
+this.editor.graph.mathEnabled&&this.editor.addMathCss(g);m?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,t,this.thumbImageCache)):t(g)}catch(K){this.handleError(K)}};EditorUi.prototype.addRadiobox=function(a,b,d,e,p,m,l){return this.addCheckbox(a,d,e,p,m,l,!0,b)};EditorUi.prototype.addCheckbox=function(a,b,d,e,p,m,l,q){m=null!=m?m:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",l?"radio":"checkbox");
+l="geCheckbox-"+Editor.guid();c.id=l;null!=q&&c.setAttribute("name",q);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");m&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",l),a.appendChild(d),p||mxUtils.br(a));return c};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=
+App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,
+"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?
+"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){m.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");
+d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&
+(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",m=null,m=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();m.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";m.style.marginLeft="4px";m.style.height="22px";m.style.width=
+"22px";m.style.position="relative";m.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";m.className="geColorBtn";a.appendChild(m);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,d,e,p,m,l){l=null!=l?l:[];e&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&"1"!=urlParams.dev||l.push("lightbox=1"),"auto"!=a&&l.push("target="+a),null!=b&&b!=mxConstants.NONE&&
+l.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=p&&0<p.length&&l.push("edit="+encodeURIComponent(p)),m&&l.push("layers=1"),this.editor.graph.foldingEnabled&&l.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&l.push("page-id="+this.currentPage.getId());return l};EditorUi.prototype.createLink=function(a,b,d,e,p,m,l,q,u,y){u=this.createUrlParameters(a,b,d,e,p,m,u);a=this.getCurrentFile();b=!0;null!=l?d="#U"+encodeURIComponent(l):(a=this.getCurrentFile(),
+q||null==a||a.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&u.push("title="+encodeURIComponent(a.getTitle()));y&&1<d.length&&(u.push("open="+d.substring(1)),d="");return(e&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
+EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<u.length?"?"+u.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,p,m,l,q,u,y,z){this.getBasenames();var c={};""!=p&&p!=mxConstants.NONE&&(c.highlight=p);"auto"!==e&&(c.target=e);u||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];l&&(d.push("pages"),c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),
+c.resize=!0);q&&d.push("layers");0<d.length&&(u&&d.push("lightbox"),c.toolbar=d.join(" "));null!=y&&0<y.length&&(c.edit=y);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!l);b='<div class="mxgraph" style="'+(m?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";z(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":
+EditorUi.lightboxHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=
+document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var m=document.createElement("span");mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(m);
+mxUtils.br(g);g.appendChild(k);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));g.appendChild(m);var l=this.getCurrentFile();null==d&&null!=l&&l.constructor==window.DriveFile&&(m=document.createElement("a"),m.style.paddingLeft="12px",m.style.color="gray",m.style.cursor="pointer",mxUtils.write(m,mxResources.get("share")),g.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(l.getId())})));f.setAttribute("checked",
+"checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var z=this.addLinkSection(c),q=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.style.marginRight="12px";u.value="100%";c.appendChild(u);var G=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,J=J=this.addCheckbox(c,mxResources.get("allPages"),
+g,!g),H=this.addCheckbox(c,mxResources.get("layers"),!0),D=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,D),I=K.getEditInput();I.style.marginBottom="16px";mxEvent.addListener(D,"change",function(){D.checked?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled");I.checked&&D.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,q.checked,
+u.value,z.getTarget(),z.getColor(),G.checked,J.checked,H.checked,D.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,p,m){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";
+a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var l=document.createElement("div");l.style.whiteSpace="normal";mxUtils.write(l,mxResources.get("linkAccountRequired"));k.appendChild(l);l=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));
+l.style.marginTop="12px";l.className="geBtn";k.appendChild(l);c.appendChild(k);l=document.createElement("a");l.style.paddingLeft="12px";l.style.color="gray";l.style.fontSize="11px";l.style.cursor="pointer";mxUtils.write(l,mxResources.get("check"));k.appendChild(l);mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,
+mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var t=null,q=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",c.appendChild(t),mxUtils.write(c,mxResources.get("height")+":"),
+q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",c.appendChild(q),mxUtils.br(c);var u=this.addLinkSection(c,m);d=null!=this.pages&&1<this.pages.length;var J=null;if(null==g||g.constructor!=window.DriveFile||b)J=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var H=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!m),D=this.addEditButton(c,H),K=D.getEditInput();m&&(K.style.marginLeft=
+H.style.marginLeft,H.style.display="none",a-=30);var I=this.addCheckbox(c,mxResources.get("layers"),!0);I.style.marginLeft=K.style.marginLeft;I.style.marginBottom="16px";I.style.marginTop="8px";mxEvent.addListener(H,"change",function(){H.checked?(I.removeAttribute("disabled"),K.removeAttribute("disabled")):(I.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&H.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled","disabled")});
+b=new CustomDialog(this,c,mxUtils.bind(this,function(){p(u.getTarget(),u.getColor(),null==J?!0:J.checked,H.checked,D.getLink(),I.checked,null!=t?t.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)):u.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e,p){var c=document.createElement("div");c.style.whiteSpace=
+"nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(p?"10":"4")+"px";c.appendChild(f);if(p){mxUtils.write(c,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type","text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";c.appendChild(g);mxUtils.write(c,mxResources.get("borderWidth")+
+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.value=this.lastExportBorder||"0";c.appendChild(k);mxUtils.br(c)}var m=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),l=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,q=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||
+null==f.background);null!=q&&(q.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(k.value)||0;d(!m.checked,null!=l?l.checked:!1,null!=q?q.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(p?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,d,e,p,m,l,q,u){l=null!=l?l:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==q?196:300,k=document.createElement("h3");
+mxUtils.write(k,a);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(k);mxUtils.write(c,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value=this.lastExportZoom||"100%";c.appendChild(t);mxUtils.write(c,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");
+v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||"0";c.appendChild(v);mxUtils.br(c);var A=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),D=document.createElement("input");D.style.marginTop="16px";D.style.marginRight="8px";D.style.marginLeft="24px";D.setAttribute("disabled","disabled");D.setAttribute("type","checkbox");var F=document.createElement("select");F.style.marginTop="16px";F.style.marginLeft="8px";a=["selectionOnly",
+"diagram","page"];for(k=0;k<a.length;k++)if(!f.isSelectionEmpty()||"selectionOnly"!=a[k]){var I=document.createElement("option");mxUtils.write(I,mxResources.get(a[k]));I.setAttribute("value",a[k]);F.appendChild(I)}u?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(F),mxUtils.br(c),g+=26,mxEvent.addListener(F,"change",function(){"selectionOnly"==F.value&&(A.checked=!0)})):m&&(c.appendChild(D),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(A,"change",function(){A.checked?
+D.removeAttribute("disabled"):D.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?u&&(A.style.display="none",A.nextSibling.style.display="none",A.nextSibling.nextSibling.style.display="none",g-=26):(F.value="diagram",D.setAttribute("checked","checked"),D.defaultChecked=!0,mxEvent.addListener(A,"change",function(){F.value=A.checked?"selectionOnly":"diagram"}));var R=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=q),N=null;Editor.isDarkMode()&&(N=this.addCheckbox(c,
+mxResources.get("dark"),!0),g+=26);var n=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),B=document.createElement("input");B.style.marginTop="16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");b&&(c.appendChild(B),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=null;if("png"==q||"jpeg"==q)C=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,
+!1,!0),g+=26;var ka=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),l,null,null,"jpeg"!=q);ka.style.marginBottom="16px";var E=document.createElement("select");E.style.maxWidth="260px";E.style.marginLeft="8px";E.style.marginRight="10px";E.className="geBtn";b=document.createElement("option");b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));
+E.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));E.appendChild(b);"svg"==q&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(E),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=t.value;p(t.value,R.checked,!A.checked,n.checked,ka.checked,B.checked,v.value,D.checked,!1,E.value,null!=C?C.checked:null,null!=N?N.checked:
+null,F.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,p){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
+c.appendChild(g)}var k=this.addCheckbox(c,mxResources.get("fit"),!0),m=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(c,d),q=this.addCheckbox(c,mxResources.get("lightbox"),!0),u=this.addEditButton(c,q),G=u.getEditInput(),J=1<f.model.getChildCount(f.model.getRoot()),H=this.addCheckbox(c,mxResources.get("layers"),J,!J);H.style.marginLeft=G.style.marginLeft;H.style.marginBottom="12px";H.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?
+(J&&H.removeAttribute("disabled"),G.removeAttribute("disabled")):(H.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&q.checked?u.getEditSelect().removeAttribute("disabled"):u.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(k.checked,m.checked,l.checked,q.checked,u.getLink(),H.checked)}),null,mxResources.get("embed"),p);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
+function(a,b,d,e,p,m,l,q){function c(c){var b=" ",k="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(null!=g?"&page="+g:"")+(p?"&edit=_blank":"")+(m?"&layers=1":"")+"');}})(this);\"",k+=
+"cursor:pointer;");a&&(k+="max-width:100%;");var t="";d&&(t=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');l('<img src="'+c+'"'+t+(""!=k?' style="'+k+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds(),g=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){q({message:mxResources.get("unknownError")})}),
+null,!0,d?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var k="";d&&(k="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+k+"&xml="+encodeURIComponent(b));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&299>=t.getStatus()?c("data:image/png;base64,"+t.getText()):q({message:mxResources.get("unknownError")})}))}else q({message:mxResources.get("drawingTooLarge")})};
+EditorUi.prototype.createEmbedSvg=function(a,b,d,e,p,m,l){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var k=f[g].getAttribute("href");null!=k&&"#"==k.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var t=" ",v="";e&&(t="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(p?"&edit=_blank":"")+(m?"&layers=1":"")+"');}})(this);\"",v+="cursor:pointer;");a&&(v+="max-width:100%;");this.editor.convertImages(c,mxUtils.bind(this,function(a){l('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=v?' style="'+v+'"':"")+t+"/>")}))}else v="",e&&(b=this.getSelectedPageIndex(),c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
EditorUi.lightboxHost+"/?client=1"+(null!=b?"&page="+b:"")+(p?"&edit=_blank":"")+(m?"&layers=1":"")+"');}}})(this);"),v+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),p=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","-0.5 -0.5 "+a+" "+p),v+="max-width:100%;max-height:"+p+"px;",c.removeAttribute("height")),""!=v&&c.setAttribute("style",v),this.editor.addFontCss(c),this.editor.graph.mathEnabled&&this.editor.addMathCss(c),l(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=
Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+" "+mxResources.get("months");c=Math.floor(a/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(a/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(a/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=
a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(t){}finally{this.editor.graph=d}return a};EditorUi.prototype.getPngFileProperties=function(a){var c=1,b=0;if(null!=
@@ -3509,9 +3510,9 @@ OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c);try{EditorUi.logEvent(
g),t=document.createElement("canvas");t.width=k;t.height=p;t.getContext("2d").drawImage(a,0,0,k,p);var u=t.toDataURL();if(u.length<b.length){var v=document.createElement("canvas");v.width=k;v.height=p;var H=v.toDataURL();u!==H&&(b=u,c=k,f=p)}}}catch(D){}d(b,c,f)};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,d){try{var c=new Image;c.onload=function(){c.width=0<c.width?c.width:120;c.height=0<c.height?c.height:
120;b(c)};null!=d&&(c.onerror=d);c.src=a}catch(p){if(null!=d)d(p);else throw p;}};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;Editor.isDarkMode()&&(b.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);b.cellEditor.editPlantUmlData=function(c,d,e){var f=JSON.parse(e);d=
new TextareaDialog(a,mxResources.get("plantUml")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(d,f.format,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==f.format)b.labelChanged(c,"<pre>"+e+"</pre>"),b.updateCellSize(c,!0);else{b.setCellStyles("image",a.convertDataUri(e),[c]);var n=b.model.getGeometry(c);null!=n&&(n=n.clone(),n.width=g,n.height=k,b.cellsResized([c],[n],!1))}b.setAttributeForCell(c,"plantUmlData",
-JSON.stringify({data:d,format:f.format}))}finally{b.getModel().endUpdate()}},function(c){a.handleError(c)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};b.cellEditor.editMermaidData=function(c,d,e){var f=JSON.parse(e);d=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(d,f.config,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
-e,[c]);var n=b.model.getGeometry(c);null!=n&&(n=n.clone(),n.width=Math.max(n.width,g),n.height=Math.max(n.height,k),b.cellsResized([c],[n],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:d,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(c){a.handleError(c)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};var d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){try{var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=
-f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(K){a.handleError(K)}};b.getLinkTitle=function(c){return a.getLinkTitle(c)};b.customLinkClicked=function(c){var b=!1;try{a.handleCustomLink(c),b=!0}catch(H){a.handleError(H)}return b};var e=this.clearDefaultStyle;this.clearDefaultStyle=function(){e.apply(this,
+JSON.stringify({data:d,format:f.format}))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};b.cellEditor.editMermaidData=function(c,d,e){var f=JSON.parse(e);d=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(d,f.config,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
+e,[c]);var n=b.model.getGeometry(c);null!=n&&(n=n.clone(),n.width=Math.max(n.width,g),n.height=Math.max(n.height,k),b.cellsResized([c],[n],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:d,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};var d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){try{var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=
+f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(K){a.handleError(K)}};b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(H){a.handleError(H)}return c};var e=this.clearDefaultStyle;this.clearDefaultStyle=function(){e.apply(this,
arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var m=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1");return m.apply(this,arguments)};
var t=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};t.call(this,a,c,d)};l.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var q=Menus.prototype.addPopupMenuEditItems;
this.menus.addPopupMenuEditItems=function(c,b,d){a.editor.graph.isSelectionEmpty()?q.apply(this,arguments):a.menus.addMenuItems(c,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var u=b.getExportVariables;b.getExportVariables=function(){var c=u.apply(this,arguments),b=a.getCurrentFile();null!=
@@ -3555,9 +3556,9 @@ f?c.innerHTML:mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerTe
this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[b],"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var b=this.extractGraphModelFromEvent(a);
if(null==b){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?b=d.getData("Text"):(b=null,b=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=b&&0<b.length?(d=document.createElement("div"),d.innerHTML=this.editor.graph.sanitizeHtml(b),d=d.getElementsByTagName("img"),0<d.length&&(b=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,
"text/plain")&&(b=d.getData("text/plain"))),null!=b&&("data:image/png;base64,"==b.substring(0,22)?(b=this.extractGraphModelFromPng(b),null!=b&&0<b.length&&this.openLocalFile(b,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(b)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(b))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(b)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):
-window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var c=0,b=0,d,e;if(null==a){e=document.body;var m=document.documentElement;d=(e.clientWidth||m.clientWidth)-3;e=Math.max(e.clientHeight||0,m.clientHeight)-3}else c=a.offsetTop,b=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;m=document.createElement("div");
-m.style.zIndex=mxPopupMenu.prototype.zIndex+2;m.style.border="3px dotted rgb(254, 137, 12)";m.style.pointerEvents="none";m.style.position="absolute";m.style.top=c+"px";m.style.left=b+"px";m.style.width=Math.max(0,d-3)+"px";m.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(m):document.body.appendChild(m);return m};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var c=this.editor.extractGraphModel(a.documentElement);
-a=[];if(null!=c){var b=new mxCodec(c.ownerDocument),d=new mxGraphModel;b.decode(c,d);c=d.getChildAt(d.getRoot(),0);for(b=0;b<d.getChildCount(c);b++)a.push(d.getChildAt(c,b))}return a};EditorUi.prototype.openFileHandle=function(a,b,d,e,m){if(null!=b&&0<b.length){!this.useCanvasForExport&&/(\.png)$/i.test(b)?b=b.substring(0,b.length-4)+".drawio":/(\.pdf)$/i.test(b)&&(b=b.substring(0,b.length-4)+".drawio");var c=mxUtils.bind(this,function(a){b=0<=b.lastIndexOf(".")?b.substring(0,b.lastIndexOf("."))+
+window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var m=document.documentElement;d=(e.clientWidth||m.clientWidth)-3;e=Math.max(e.clientHeight||0,m.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;m=document.createElement("div");
+m.style.zIndex=mxPopupMenu.prototype.zIndex+2;m.style.border="3px dotted rgb(254, 137, 12)";m.style.pointerEvents="none";m.style.position="absolute";m.style.top=b+"px";m.style.left=c+"px";m.style.width=Math.max(0,d-3)+"px";m.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(m):document.body.appendChild(m);return m};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);
+a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFileHandle=function(a,b,d,e,m){if(null!=b&&0<b.length){!this.useCanvasForExport&&/(\.png)$/i.test(b)?b=b.substring(0,b.length-4)+".drawio":/(\.pdf)$/i.test(b)&&(b=b.substring(0,b.length-4)+".drawio");var c=mxUtils.bind(this,function(a){b=0<=b.lastIndexOf(".")?b.substring(0,b.lastIndexOf("."))+
".drawio":b+".drawio";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,a,b))}catch(F){this.handleError(F,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,b,e)});if(/(\.v(dx|sdx?))($|\?)/i.test(b)||/(\.vs(x|sx?))($|\?)/i.test(b))this.importVisio(d,mxUtils.bind(this,function(a){this.spinner.stop();c(a)}));else if(/(\.*<graphml )/.test(a))this.importGraphML(a,
mxUtils.bind(this,function(a){this.spinner.stop();c(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,b))this.parseFile(d,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?c(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(a))/(\.json)$/i.test(b)&&(b=b.substring(0,
b.length-5)+".drawio"),this.convertLucidChart(a,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,b,e)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));else if("<mxlibrary"==a.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,a,d.name))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}else if(0==
@@ -3572,7 +3573,7 @@ this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.me
this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,a,{}));this.mode=App.MODE_EMBED;this.setFileData(a);this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=d?d:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&
(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=
function(a){var b=null,c=!1,d=!1,e=null,m=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,m);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var g=f.data,k=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&
-"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(na){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(ba){g=null}try{if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):
+"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(ma){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(ba){g=null}try{if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):
g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("layout"==g.action){this.executeLayoutList(g.layouts);return}if("prompt"==g.action){this.spinner.stop();var m=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):g.ok,function(a){null!=a?l.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*"):l.postMessage(JSON.stringify({event:"prompt-cancel",
message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(m.container,300,80,!0,!1);m.init();return}if("draft"==g.action){var p=k(g.xml);this.spinner.stop();m=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),p,mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"discard",
message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(m.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{m.init()}catch(ba){l.postMessage(JSON.stringify({event:"draft",error:ba.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();
@@ -3584,9 +3585,9 @@ b.message=g;b.data=a;b.xml=I;l.postMessage(JSON.stringify(b),"*")}),n=mxUtils.bi
this.currentPage.getId()!=B){for(var C=R.getGlobalVariable,R=this.createTemporaryGraph(R.getStylesheet()),F,E=0;E<this.pages.length;E++)if(this.pages[E].getId()==B){F=this.updatePageRoot(this.pages[E]);break}null==F&&(F=this.currentPage);R.getGlobalVariable=function(a){return"page"==a?F.getName():"pagenumber"==a?1:C.apply(this,arguments)};document.body.appendChild(R.container);R.model.setRoot(F.root)}if(null!=g.layerIds){for(var U=R.model,Y=U.getChildCells(U.getRoot()),m={},E=0;E<g.layerIds.length;E++)m[g.layerIds[E]]=
!0;for(E=0;E<Y.length;E++)U.setVisible(Y[E],m[Y[E].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){n(a.toDataURL("image/png"))}),g.width,null,g.background,mxUtils.bind(this,function(){n(null)}),null,null,g.scale,g.transparent,g.shadow,null,R,g.border,null,g.grid,g.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=B?"&pageId="+B:"")+(null!=g.layerIds&&0<g.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):
"")+(null!=g.scale?"&scale="+g.scale:"")+"&base64=1&xml="+encodeURIComponent(I))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?N("data:image/png;base64,"+a.getText()):n(null)}),mxUtils.bind(this,function(){n(null)}))}}else{null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(g.xml),c=!1);A=this.createLoadMessage("export");A.message=g;if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var X=this.getXmlFileData();A.xml=
-mxUtils.getXml(X);A.data=this.getFileData(null,null,!0,null,null,null,X);A.format=g.format}else if("html"==g.format)I=this.editor.getGraphXml(),A.data=this.getHtml(I,this.editor.graph),A.xml=mxUtils.getXml(I),A.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ma=null!=g.background?g.background:this.editor.graph.background;ma==mxConstants.NONE&&(ma=null);A.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);A.format="svg";var pa=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();A.data=Editor.createSvgDataUri(a);l.postMessage(JSON.stringify(A),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(A.xml,this.editor.graph,null,!0,pa,null,null,g.embedImages,ma,g.scale,g.border,g.shadow,g.keepTheme);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);
-var Z=this.editor.graph.getSvg(ma,g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(Z);this.embedFonts(Z,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){pa(mxUtils.getXml(a))})):pa(mxUtils.getXml(a))}))}return}l.postMessage(JSON.stringify(A),"*")}return}if("load"==g.action){d=1==g.autosave;this.hideDialog();
+mxUtils.getXml(X);A.data=this.getFileData(null,null,!0,null,null,null,X);A.format=g.format}else if("html"==g.format)I=this.editor.getGraphXml(),A.data=this.getHtml(I,this.editor.graph),A.xml=mxUtils.getXml(I),A.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var la=null!=g.background?g.background:this.editor.graph.background;la==mxConstants.NONE&&(la=null);A.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);A.format="svg";var pa=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+this.spinner.stop();A.data=Editor.createSvgDataUri(a);l.postMessage(JSON.stringify(A),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(A.xml,this.editor.graph,null,!0,pa,null,null,g.embedImages,la,g.scale,g.border,g.shadow,g.keepTheme);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);
+var Z=this.editor.graph.getSvg(la,g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(Z);this.embedFonts(Z,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){pa(mxUtils.getXml(a))})):pa(mxUtils.getXml(a))}))}return}l.postMessage(JSON.stringify(A),"*")}return}if("load"==g.action){d=1==g.autosave;this.hideDialog();
null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified);null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit);null!=g.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=g.noSaveBtn);null!=g.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=g.noExitBtn);null!=g.title&&null!=this.buttonContainer&&(p=document.createElement("span"),mxUtils.write(p,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop=
"6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(p),this.embedFilenameSpan=p);try{g.libs&&this.sidebar.showEntries(g.libs)}catch(ba){}g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):null!=g.descriptor?g.descriptor:g.xml}else{if("merge"==
g.action){var ha=this.getCurrentFile();null!=ha&&(p=k(g.xml),null!=p&&""!=p&&ha.mergeFile(new LocalFile(this,p),function(){l.postMessage(JSON.stringify({event:"merge",message:g}),"*")},function(a){l.postMessage(JSON.stringify({event:"merge",message:g,error:a}),"*")}))}else"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(l):"remoteInvoke"==g.action?this.handleRemoteInvoke(g,f.origin):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):l.postMessage(JSON.stringify({error:"unknownMessage",
@@ -3601,20 +3602,20 @@ arguments);l.postMessage(JSON.stringify({event:"openLink",href:a,target:b,allowO
d),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b),d=b);d.style.marginRight="20px";this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,
mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),e=0;e<a.length;e++){var f=new window[a[e].layout](c);if(null!=a[e].config)for(var m in a[e].config)f[m]=
a[e].config[m];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var m={},l=null,q=null,u=null,z=null,L=null,M=null,G=null,J=null,H=null,D="",K="auto",I="auto",R=null,N=null,n=40,B=40,C=100,ka=0,E=this.editor.graph;E.getGraphBounds();for(var U=function(){null!=b?b(sa):(E.setSelectionCells(sa),E.scrollCellToVisible(E.getSelectionCell()))},Y=E.getFreeInsertPoint(),
-X=Y.x,ma=Y.y,Y=ma,pa=null,Z="auto",H=null,ha=[],ia=null,fa=null,ba=0;ba<c.length&&"#"==c[ba].charAt(0);){a=c[ba];for(ba++;ba<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ba].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ba].substring(1)),ba++;if("#"!=a.charAt(1)){var na=a.indexOf(":");if(0<na){var V=mxUtils.trim(a.substring(1,na)),Q=mxUtils.trim(a.substring(na+1));"label"==V?pa=E.sanitizeHtml(Q):"labelname"==V&&0<Q.length&&"-"!=Q?L=Q:"labels"==V&&0<Q.length&&"-"!=Q?M=JSON.parse(Q):"style"==
+X=Y.x,la=Y.y,Y=la,pa=null,Z="auto",H=null,ha=[],ia=null,fa=null,ba=0;ba<c.length&&"#"==c[ba].charAt(0);){a=c[ba];for(ba++;ba<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ba].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ba].substring(1)),ba++;if("#"!=a.charAt(1)){var ma=a.indexOf(":");if(0<ma){var V=mxUtils.trim(a.substring(1,ma)),Q=mxUtils.trim(a.substring(ma+1));"label"==V?pa=E.sanitizeHtml(Q):"labelname"==V&&0<Q.length&&"-"!=Q?L=Q:"labels"==V&&0<Q.length&&"-"!=Q?M=JSON.parse(Q):"style"==
V?q=Q:"parentstyle"==V?G=Q:"stylename"==V&&0<Q.length&&"-"!=Q?z=Q:"styles"==V&&0<Q.length&&"-"!=Q?u=JSON.parse(Q):"vars"==V&&0<Q.length&&"-"!=Q?l=JSON.parse(Q):"identity"==V&&0<Q.length&&"-"!=Q?J=Q:"parent"==V&&0<Q.length&&"-"!=Q?H=Q:"namespace"==V&&0<Q.length&&"-"!=Q?D=Q:"width"==V?K=Q:"height"==V?I=Q:"left"==V&&0<Q.length?R=Q:"top"==V&&0<Q.length?N=Q:"ignore"==V?fa=Q.split(","):"connect"==V?ha.push(JSON.parse(Q)):"link"==V?ia=Q:"padding"==V?ka=parseFloat(Q):"edgespacing"==V?n=parseFloat(Q):"nodespacing"==
-V?B=parseFloat(Q):"levelspacing"==V?C=parseFloat(Q):"layout"==V&&(Z=Q)}}}if(null==c[ba])throw Error(mxResources.get("invalidOrMissingFile"));for(var oa=this.editor.csvToArray(c[ba]),V=na=null,Q=[],T=0;T<oa.length;T++)J==oa[T]&&(na=T),H==oa[T]&&(V=T),Q.push(mxUtils.trim(oa[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==pa&&(pa="%"+Q[0]+"%");if(null!=ha)for(var ca=0;ca<ha.length;ca++)null==m[ha[ca].to]&&(m[ha[ca].to]={});J=[];for(T=ba+1;T<c.length;T++){var ja=this.editor.csvToArray(c[T]);
-if(null==ja){var ra=40<c[T].length?c[T].substring(0,40)+"...":c[T];throw Error(ra+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<ja.length&&J.push(ja)}E.model.beginUpdate();try{for(T=0;T<J.length;T++){var ja=J[T],O=null,ga=null!=na?D+ja[na]:null;null!=ga&&(O=E.model.getCell(ga));var c=null!=O,ea=new mxCell(pa,new mxGeometry(X,Y,0,0),q||"whiteSpace=wrap;html=1;");ea.vertex=!0;ea.id=ga;for(var S=0;S<ja.length;S++)E.setAttributeForCell(ea,Q[S],ja[S]);if(null!=L&&null!=M){var ya=M[ea.getAttribute(L)];
-null!=ya&&E.labelChanged(ea,ya)}if(null!=z&&null!=u){var P=u[ea.getAttribute(z)];null!=P&&(ea.style=P)}E.setAttributeForCell(ea,"placeholders","1");ea.style=E.replacePlaceholders(ea,ea.style,l);c&&(E.model.setGeometry(O,ea.geometry),E.model.setStyle(O,ea.style),0>mxUtils.indexOf(e,O)&&e.push(O));O=ea;if(!c)for(ca=0;ca<ha.length;ca++)m[ha[ca].to][O.getAttribute(ha[ca].to)]=O;null!=ia&&"link"!=ia&&(E.setLinkForCell(O,O.getAttribute(ia)),E.setAttributeForCell(O,ia,null));E.fireEvent(new mxEventObject("cellsInserted",
-"cells",[O]));var aa=this.editor.graph.getPreferredSizeForCell(O);O.vertex&&(null!=R&&null!=O.getAttribute(R)&&(O.geometry.x=X+parseFloat(O.getAttribute(R))),null!=N&&null!=O.getAttribute(N)&&(O.geometry.y=ma+parseFloat(O.getAttribute(N))),"@"==K.charAt(0)&&null!=O.getAttribute(K.substring(1))?O.geometry.width=parseFloat(O.getAttribute(K.substring(1))):O.geometry.width="auto"==K?aa.width+ka:parseFloat(K),"@"==I.charAt(0)&&null!=O.getAttribute(I.substring(1))?O.geometry.height=parseFloat(O.getAttribute(I.substring(1))):
+V?B=parseFloat(Q):"levelspacing"==V?C=parseFloat(Q):"layout"==V&&(Z=Q)}}}if(null==c[ba])throw Error(mxResources.get("invalidOrMissingFile"));for(var na=this.editor.csvToArray(c[ba]),V=ma=null,Q=[],T=0;T<na.length;T++)J==na[T]&&(ma=T),H==na[T]&&(V=T),Q.push(mxUtils.trim(na[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==pa&&(pa="%"+Q[0]+"%");if(null!=ha)for(var ca=0;ca<ha.length;ca++)null==m[ha[ca].to]&&(m[ha[ca].to]={});J=[];for(T=ba+1;T<c.length;T++){var ja=this.editor.csvToArray(c[T]);
+if(null==ja){var ra=40<c[T].length?c[T].substring(0,40)+"...":c[T];throw Error(ra+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<ja.length&&J.push(ja)}E.model.beginUpdate();try{for(T=0;T<J.length;T++){var ja=J[T],O=null,ga=null!=ma?D+ja[ma]:null;null!=ga&&(O=E.model.getCell(ga));var c=null!=O,ea=new mxCell(pa,new mxGeometry(X,Y,0,0),q||"whiteSpace=wrap;html=1;");ea.vertex=!0;ea.id=ga;for(var S=0;S<ja.length;S++)E.setAttributeForCell(ea,Q[S],ja[S]);if(null!=L&&null!=M){var za=M[ea.getAttribute(L)];
+null!=za&&E.labelChanged(ea,za)}if(null!=z&&null!=u){var P=u[ea.getAttribute(z)];null!=P&&(ea.style=P)}E.setAttributeForCell(ea,"placeholders","1");ea.style=E.replacePlaceholders(ea,ea.style,l);c&&(E.model.setGeometry(O,ea.geometry),E.model.setStyle(O,ea.style),0>mxUtils.indexOf(e,O)&&e.push(O));O=ea;if(!c)for(ca=0;ca<ha.length;ca++)m[ha[ca].to][O.getAttribute(ha[ca].to)]=O;null!=ia&&"link"!=ia&&(E.setLinkForCell(O,O.getAttribute(ia)),E.setAttributeForCell(O,ia,null));E.fireEvent(new mxEventObject("cellsInserted",
+"cells",[O]));var aa=this.editor.graph.getPreferredSizeForCell(O);O.vertex&&(null!=R&&null!=O.getAttribute(R)&&(O.geometry.x=X+parseFloat(O.getAttribute(R))),null!=N&&null!=O.getAttribute(N)&&(O.geometry.y=la+parseFloat(O.getAttribute(N))),"@"==K.charAt(0)&&null!=O.getAttribute(K.substring(1))?O.geometry.width=parseFloat(O.getAttribute(K.substring(1))):O.geometry.width="auto"==K?aa.width+ka:parseFloat(K),"@"==I.charAt(0)&&null!=O.getAttribute(I.substring(1))?O.geometry.height=parseFloat(O.getAttribute(I.substring(1))):
O.geometry.height="auto"==I?aa.height+ka:parseFloat(I),Y+=O.geometry.height+B);c?(null==f[ga]&&(f[ga]=[]),f[ga].push(O)):(H=null!=V?E.model.getCell(D+ja[V]):null,d.push(O),null!=H?(H.style=E.replacePlaceholders(H,G,l),E.addCell(O,H)):e.push(E.addCell(O)))}for(var qa=e.slice(),sa=e.slice(),ca=0;ca<ha.length;ca++)for(var ta=ha[ca],T=0;T<d.length;T++){var O=d[T],Fa=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d&&(E.setAttributeForCell(b,c.from,null),""!=d))for(var d=d.split(","),
e=0;e<d.length;e++){var f=m[c.to][d[e]];if(null!=f){var g=c.label;null!=c.fromlabel&&(g=(b.getAttribute(c.fromlabel)||"")+(g||""));null!=c.sourcelabel&&(g=E.replacePlaceholders(b,c.sourcelabel,l)+(g||""));null!=c.tolabel&&(g=(g||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(g=(g||"")+E.replacePlaceholders(f,c.targetlabel,l));var k="target"==c.placeholders==!c.invert?f:a,k=null!=c.style?E.replacePlaceholders(k,c.style,l):E.createCurrentEdgeStyle(),g=E.insertEdge(null,null,g||"",c.invert?
f:a,c.invert?a:f,k);if(null!=c.labels)for(k=0;k<c.labels.length;k++){var n=c.labels[k],p=new mxCell(n.label||k,new mxGeometry(null!=n.x?n.x:0,null!=n.y?n.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=n.placeholders&&(p.value=E.replacePlaceholders("target"==n.placeholders==!c.invert?f:a,p.value,l));if(null!=n.dx||null!=n.dy)p.geometry.offset=new mxPoint(null!=n.dx?n.dx:0,null!=n.dy?n.dy:0);g.insert(p)}sa.push(g);mxUtils.remove(c.invert?a:f,qa)}}});Fa(O,O,
ta);if(null!=f[O.id])for(S=0;S<f[O.id].length;S++)Fa(O,f[O.id][S],ta)}if(null!=fa)for(T=0;T<d.length;T++)for(O=d[T],S=0;S<fa.length;S++)E.setAttributeForCell(O,mxUtils.trim(fa[S]),null);if(0<e.length){var Da=new mxParallelEdgeLayout(E);Da.spacing=n;Da.checkOverlap=!0;var Ga=function(){0<Da.spacing&&Da.execute(E.getDefaultParent());for(var a=0;a<e.length;a++){var b=E.getCellGeometry(e[a]);b.x=Math.round(E.snap(b.x));b.y=Math.round(E.snap(b.y));"auto"==K&&(b.width=Math.round(E.snap(b.width)));"auto"==
I&&(b.height=Math.round(E.snap(b.height)))}};if("["==Z.charAt(0)){var Ja=U;E.view.validate();this.executeLayoutList(JSON.parse(Z),function(){Ga();Ja()});U=null}else if("circle"==Z){var xa=new mxCircleLayout(E);xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Ia=xa.isVertexIgnored;xa.isVertexIgnored=function(a){return Ia.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){xa.execute(E.getDefaultParent());Ga()},!0,U);U=null}else if("horizontaltree"==Z||"verticaltree"==Z||"auto"==
-Z&&sa.length==2*e.length-1&&1==qa.length){E.view.validate();var za=new mxCompactTreeLayout(E,"horizontaltree"==Z);za.levelDistance=B;za.edgeRouting=!1;za.resetEdges=!1;this.executeLayout(function(){za.execute(E.getDefaultParent(),0<qa.length?qa[0]:null)},!0,U);U=null}else if("horizontalflow"==Z||"verticalflow"==Z||"auto"==Z&&1==qa.length){E.view.validate();var ua=new mxHierarchicalLayout(E,"horizontalflow"==Z?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ua.intraCellSpacing=B;ua.parallelEdgeSpacing=
-n;ua.interRankCellSpacing=C;ua.disableEdgeStyle=!1;this.executeLayout(function(){ua.execute(E.getDefaultParent(),sa);E.moveCells(sa,X,ma)},!0,U);U=null}else if("organic"==Z||"auto"==Z&&sa.length>e.length){E.view.validate();var wa=new mxFastOrganicLayout(E);wa.forceConstant=3*B;wa.disableEdgeStyle=!1;wa.resetEdges=!1;var W=wa.isVertexIgnored;wa.isVertexIgnored=function(a){return W.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){wa.execute(E.getDefaultParent());Ga()},!0,
-U);U=null}}this.hideDialog()}finally{E.model.endUpdate()}null!=U&&U()}}catch(Aa){this.handleError(Aa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==
+Z&&sa.length==2*e.length-1&&1==qa.length){E.view.validate();var Aa=new mxCompactTreeLayout(E,"horizontaltree"==Z);Aa.levelDistance=B;Aa.edgeRouting=!1;Aa.resetEdges=!1;this.executeLayout(function(){Aa.execute(E.getDefaultParent(),0<qa.length?qa[0]:null)},!0,U);U=null}else if("horizontalflow"==Z||"verticalflow"==Z||"auto"==Z&&1==qa.length){E.view.validate();var ua=new mxHierarchicalLayout(E,"horizontalflow"==Z?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ua.intraCellSpacing=B;ua.parallelEdgeSpacing=
+n;ua.interRankCellSpacing=C;ua.disableEdgeStyle=!1;this.executeLayout(function(){ua.execute(E.getDefaultParent(),sa);E.moveCells(sa,X,la)},!0,U);U=null}else if("organic"==Z||"auto"==Z&&sa.length>e.length){E.view.validate();var va=new mxFastOrganicLayout(E);va.forceConstant=3*B;va.disableEdgeStyle=!1;va.resetEdges=!1;var W=va.isVertexIgnored;va.isVertexIgnored=function(a){return W.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){va.execute(E.getDefaultParent());Ga()},!0,
+U);U=null}}this.hideDialog()}finally{E.model.endUpdate()}null!=U&&U()}}catch(Ba){this.handleError(Ba)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==
urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,d,e,m){a=new LinkDialog(this,a,b,d,!0,e,m);this.showDialog(a.container,560,130,!0,!0);a.init()};var m=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=
m.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&
null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-
@@ -3853,19 +3854,19 @@ q.insertBefore(g,l.statusContainer):q.appendChild(g);null!=f?(g.style.background
"relative";c.style.top="0px";"1"==urlParams.sketch&&(c.style.boxShadow="none");for(var d=0;d<a.length;d++)null!=a[d]&&("1"==urlParams.sketch&&(a[d].style.padding="10px 8px",a[d].style.width="30px"),a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=l.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(c,l.statusContainer):q.appendChild(c);return c}function g(){for(var a=q.firstChild;null!=a;){var b=a.nextSibling;"geMenuItem"!=a.className&&
"geItem"!=a.className||a.parentNode.removeChild(a);a=b}t=q.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(a=1E3>e||"1"==urlParams.sketch)||c("diagram");if("1"!=urlParams.sketch&&(f([a?c("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,d(mxResources.get("shapes"),l.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
null),d(mxResources.get("format"),l.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+l.actions.get("formatPanel").shortcut+")",l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
-null)],a?60:null),b=c("insert",!0,a?E:null),f([b,d(mxResources.get("delete"),l.actions.get("delete").funct,null,mxResources.get("delete"),l.actions.get("delete"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":null)],a?60:null),411<=e&&(f([ea,S],60),520<=e&&(f([ya,640<=e?d("",ba.funct,
-!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ba,na):null,640<=e?d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,Q):null],60),720<=e)))){var g=d("",ca.funct,null,mxResources.get("dark"),ca,Editor.isDarkMode()?ra:ja);g.style.opacity="0.4";l.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ra:ja)+")"}));null!=l.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(g,l.statusContainer):q.appendChild(g)}a=l.menus.get("language");
+null)],a?60:null),b=c("insert",!0,a?E:null),f([b,d(mxResources.get("delete"),l.actions.get("delete").funct,null,mxResources.get("delete"),l.actions.get("delete"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":null)],a?60:null),411<=e&&(f([ea,S],60),520<=e&&(f([za,640<=e?d("",ba.funct,
+!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ba,ma):null,640<=e?d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,Q):null],60),720<=e)))){var g=d("",ca.funct,null,mxResources.get("dark"),ca,Editor.isDarkMode()?ra:ja);g.style.opacity="0.4";l.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ra:ja)+")"}));null!=l.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(g,l.statusContainer):q.appendChild(g)}a=l.menus.get("language");
null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==ta&&(b=u.addMenu("",a.funct),b.setAttribute("title",mxResources.get("language")),b.className="geToolbarButton",b.style.backgroundImage="url("+Editor.globeImage+")",b.style.backgroundPosition="center center",b.style.backgroundRepeat="no-repeat",b.style.backgroundSize="24px 24px",b.style.position="absolute",b.style.height="24px",b.style.width="24px",b.style.zIndex="1",b.style.right="8px",b.style.cursor="pointer",
b.style.top="1"==urlParams.embed?"12px":"11px",q.appendChild(b),ta=b),l.buttonContainer.style.paddingRight="34px"):(l.buttonContainer.style.paddingRight="4px",null!=ta&&(ta.parentNode.removeChild(ta),ta=null))}y.apply(this,arguments);this.doSetDarkMode(mxSettings.settings.darkMode);var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";k.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=
-this.createSidebar(k);"1"==urlParams.sketch&&(this.toggleScratchpad(),this.editor.graph.isZoomWheelEvent=function(a){return!mxEvent.isAltDown(a)&&(!mxEvent.isControlDown(a)||mxClient.IS_MAC)});if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])b(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));this.keyHandler.bindAction(75,
-!0,"toggleShapes",!0);if("1"==urlParams.sketch||1E3<=e)if(a(this,!0),"1"==urlParams.sketch){this.formatWindow.window.setClosable(!1);var m=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){m.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width="240px",this.div.style.left=parseInt(this.div.style.left)-
-150+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(){this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var l=this,p=l.editor.graph;l.toolbar=this.createToolbar(l.createDiv("geToolbar"));l.defaultLibraryName=mxResources.get("untitledLibrary");var q=document.createElement("div");q.className="geMenubarContainer";var t=null,u=new Menubar(l,q);l.statusContainer=l.createStatusContainer();l.statusContainer.style.position=
-"relative";l.statusContainer.style.maxWidth="";l.statusContainer.style.marginTop="7px";l.statusContainer.style.marginLeft="6px";l.statusContainer.style.color="gray";l.statusContainer.style.cursor="default";var n=l.hideCurrentMenu;l.hideCurrentMenu=function(){n.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=l.descriptorChanged;l.descriptorChanged=function(){v.apply(this,arguments);var a=l.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=a.getMode();"google"==b?b="googleDrive":
-"github"==b?b="gitHub":"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);q.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else q.removeAttribute("title")};l.setStatusText(l.editor.getStatus());q.appendChild(l.statusContainer);l.buttonContainer=document.createElement("div");l.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";q.appendChild(l.buttonContainer);l.menubarContainer=
-l.buttonContainer;l.tabContainer=document.createElement("div");l.tabContainer.className="geTabContainer";l.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var k=l.diagramContainer.parentNode,A=document.createElement("div");A.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";l.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var F=l.menus.get("viewZoom"),
-E="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
+this.createSidebar(k);"1"==urlParams.sketch&&(this.toggleScratchpad(),this.editor.graph.isZoomWheelEvent=function(a){return!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)&&(!mxEvent.isControlDown(a)||mxClient.IS_MAC)});if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])b(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),
+this.sidebar.showEntries("search"));this.keyHandler.bindAction(75,!0,"toggleShapes",!0);if("1"==urlParams.sketch||1E3<=e)if(a(this,!0),"1"==urlParams.sketch){this.formatWindow.window.setClosable(!1);var m=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){m.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width=
+"240px",this.div.style.left=parseInt(this.div.style.left)-150+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(){this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var l=this,p=l.editor.graph;l.toolbar=this.createToolbar(l.createDiv("geToolbar"));l.defaultLibraryName=mxResources.get("untitledLibrary");var q=document.createElement("div");q.className="geMenubarContainer";var t=null,u=new Menubar(l,q);l.statusContainer=
+l.createStatusContainer();l.statusContainer.style.position="relative";l.statusContainer.style.maxWidth="";l.statusContainer.style.marginTop="7px";l.statusContainer.style.marginLeft="6px";l.statusContainer.style.color="gray";l.statusContainer.style.cursor="default";var n=l.hideCurrentMenu;l.hideCurrentMenu=function(){n.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=l.descriptorChanged;l.descriptorChanged=function(){v.apply(this,arguments);var a=l.getCurrentFile();if(null!=
+a&&null!=a.getTitle()){var b=a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);q.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else q.removeAttribute("title")};l.setStatusText(l.editor.getStatus());q.appendChild(l.statusContainer);l.buttonContainer=document.createElement("div");l.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";
+q.appendChild(l.buttonContainer);l.menubarContainer=l.buttonContainer;l.tabContainer=document.createElement("div");l.tabContainer.className="geTabContainer";l.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var k=l.diagramContainer.parentNode,A=document.createElement("div");A.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";l.diagramContainer.style.top="1"==urlParams.sketch?
+"0px":"47px";var F=l.menus.get("viewZoom"),E="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
U="1"==urlParams.sketch?document.createElement("div"):null,Y="1"==urlParams.sketch?document.createElement("div"):null,X="1"==urlParams.sketch?document.createElement("div"):null;l.addListener("darkModeChanged",mxUtils.bind(this,function(){if(null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(p.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch)){this.scratchpad=null;this.toggleScratchpad();var a=l.actions.outlineWindow;
-null!=a&&(a.outline.outline.stylesheet.styles=mxUtils.clone(p.stylesheet.styles),l.actions.outlineWindow.update())}p.refresh();p.view.validateBackground()}));if("1"==urlParams.sketch){if(null!=p.freehand){p.freehand.setAutoInsert(!0);p.freehand.setAutoScroll(!0);p.freehand.setOpenFill(!0);var ma=p.freehand.createStyle;p.freehand.createStyle=function(a){return ma.apply(this,arguments)+"sketch=0;"};Graph.touchStyle&&(p.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&
+null!=a&&(a.outline.outline.stylesheet.styles=mxUtils.clone(p.stylesheet.styles),l.actions.outlineWindow.update())}p.refresh();p.view.validateBackground()}));if("1"==urlParams.sketch){if(null!=p.freehand){p.freehand.setAutoInsert(!0);p.freehand.setAutoScroll(!0);p.freehand.setOpenFill(!0);var la=p.freehand.createStyle;p.freehand.createStyle=function(a){return la.apply(this,arguments)+"sketch=0;"};Graph.touchStyle&&(p.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&
!mxEvent.isMouseEvent(b)&&!p.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=l.hoverIcons){var pa=l.hoverIcons.update;l.hoverIcons.update=function(){p.freehand.isDrawing()||pa.apply(this,arguments)}}}Y.className="geToolbarContainer";U.className="geToolbarContainer";X.className="geToolbarContainer";q.className="geToolbarContainer";l.picker=Y;var Z=!1;mxEvent.addListener(q,"mouseenter",function(){l.statusContainer.style.display=
"inline-block"});mxEvent.addListener(q,"mouseleave",function(){Z||(l.statusContainer.style.display="none")});var ha=mxUtils.bind(this,function(a){null!=l.notificationBtn&&(null!=a?l.notificationBtn.setAttribute("title",a):l.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed&&l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus());if(0==l.statusContainer.children.length||1==l.statusContainer.children.length&&null==l.statusContainer.firstChild.getAttribute("class")){null!=
l.statusContainer.firstChild?ha(l.statusContainer.firstChild.getAttribute("title")):ha(l.editor.getStatus());var a=l.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=l.notificationBtn&&l.notificationBtn.getAttribute("title")==mxResources.get(a)+"..."?(l.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',l.statusContainer.style.display="inline-block",Z=!0):(l.statusContainer.style.display="none",
@@ -3877,15 +3878,15 @@ Z=!1)}else l.statusContainer.style.display="inline-block",ha(null),Z=!0}));P=c("
b.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));b.style.borderBottom="1px solid lightgray";b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(l.actions.get("insertFreehand"),mxResources.get("freehand"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTQuNSw4YzEuMDQsMCwyLjM0LTEuNSw0LjI1LTEuNWMxLjUyLDAsMi43NSwxLjIzLDIuNzUsMi43NWMwLDIuMDQtMS45OSwzLjE1LTMuOTEsNC4yMkM1LjQyLDE0LjY3LDQsMTUuNTcsNCwxNyBjMCwxLjEsMC45LDIsMiwydjJjLTIuMjEsMC00LTEuNzktNC00YzAtMi43MSwyLjU2LTQuMTQsNC42Mi01LjI4YzEuNDItMC43OSwyLjg4LTEuNiwyLjg4LTIuNDdjMC0wLjQxLTAuMzQtMC43NS0wLjc1LTAuNzUgQzcuNSw4LjUsNi4yNSwxMCw0LjUsMTBDMy4xMiwxMCwyLDguODgsMiw3LjVDMiw1LjQ1LDQuMTcsMi44Myw1LDJsMS40MSwxLjQxQzUuNDEsNC40Miw0LDYuNDMsNCw3LjVDNCw3Ljc4LDQuMjIsOCw0LjUsOHogTTgsMjEgbDMuNzUsMGw4LjA2LTguMDZsLTMuNzUtMy43NUw4LDE3LjI1TDgsMjF6IE0xMCwxOC4wOGw2LjA2LTYuMDZsMC45MiwwLjkyTDEwLjkyLDE5TDEwLDE5TDEwLDE4LjA4eiBNMjAuMzcsNi4yOSBjLTAuMzktMC4zOS0xLjAyLTAuMzktMS40MSwwbC0xLjgzLDEuODNsMy43NSwzLjc1bDEuODMtMS44M2MwLjM5LTAuMzksMC4zOS0xLjAyLDAtMS40MUwyMC4zNyw2LjI5eiIvPjwvc3ZnPg==");
var c=l.actions.get("toggleShapes");b(c,mxResources.get("shapes")+" ("+c.shortcut+")",E);b(l.actions.get("insertTemplate"),mxResources.get("template"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==")});
ia();l.addListener("darkModeChanged",mxUtils.bind(this,function(){ia()}))}else l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus())}));if(null!=F){var fa=function(){p.popupMenuHandler.hideMenu();var a=p.view.scale,b=p.view.translate.x,c=p.view.translate.y;l.actions.get("resetView").funct();1E-5>Math.abs(a-p.view.scale)&&b==p.view.translate.x&&c==p.view.translate.y&&l.actions.get(p.pageVisible?"fitPage":"fitWindow").funct()},ba=l.actions.get("zoomIn"),
-na="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
+ma="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
V=l.actions.get("zoomOut"),Q="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg==",
-oa=l.actions.get("resetView"),T=l.actions.get("fullscreen"),ca=l.actions.get("toggleDarkMode"),ja="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
+na=l.actions.get("resetView"),T=l.actions.get("fullscreen"),ca=l.actions.get("toggleDarkMode"),ja="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
ra="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiw5YzEuNjUsMCwzLDEuMzUsMywzcy0xLjM1LDMtMywzcy0zLTEuMzUtMy0zUzEwLjM1LDksMTIsOSBNMTIsN2MtMi43NiwwLTUsMi4yNC01LDVzMi4yNCw1LDUsNXM1LTIuMjQsNS01IFMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDBjLTAuNTUsMC0xLDAuNDUtMSwxUzEuNDUsMTMsMiwxM3ogTTIwLDEzbDIsMGMwLjU1LDAsMS0wLjQ1LDEtMSBzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMVYyYzAtMC41NS0wLjQ1LTEtMS0xUzExLDEuNDUsMTEsMnogTTExLDIwdjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMUMxMS40NSwxOSwxMSwxOS40NSwxMSwyMHogTTUuOTksNC41OGMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDAgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBzMC4zOS0xLjAzLDAtMS40MUw1Ljk5LDQuNTh6IE0xOC4zNiwxNi45NSBjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgTDE4LjM2LDE2Ljk1eiBNMTkuNDIsNS45OWMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgczEuMDMsMC4zOSwxLjQxLDBMMTkuNDIsNS45OXogTTcuMDUsMTguMzZjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDFjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwbC0xLjA2LDEuMDYgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDcuMDUsMTguMzZ6Ii8+PC9zdmc+",
O=l.actions.get("undo"),ga=l.actions.get("redo"),ea=d("",O.funct,null,mxResources.get("undo")+" ("+O.shortcut+")",O,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),S=d("",ga.funct,null,mxResources.get("redo")+
-" ("+ga.shortcut+")",ga,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),ya=d("",fa,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",oa,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
-oa=d("",T.funct,null,mxResources.get("fullscreen"),T,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg==");if(null!=U){X.appendChild(ea);X.appendChild(S);F=function(){ea.style.display=0<l.editor.undoManager.history.length||
-p.isEditing()?"inline-block":"none";S.style.display=ea.style.display;ea.style.opacity=O.enabled?"0.4":"0.1";S.style.opacity=ga.enabled?"0.4":"0.1"};O.addListener("stateChanged",F);ga.addListener("stateChanged",F);F();T.visible&&(oa.style.opacity="0.4",U.appendChild(oa));T=d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",V,Q);T.style.opacity="0.4";U.appendChild(T);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+
-"/"+mxResources.get("resetView"));P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";U.appendChild(P);mxEvent.addListener(P,"click",fa);fa=d("",ba.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ba,na);fa.style.opacity="0.4";U.appendChild(fa);
+" ("+ga.shortcut+")",ga,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),za=d("",fa,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",na,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
+na=d("",T.funct,null,mxResources.get("fullscreen"),T,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg==");if(null!=U){X.appendChild(ea);X.appendChild(S);F=function(){ea.style.display=0<l.editor.undoManager.history.length||
+p.isEditing()?"inline-block":"none";S.style.display=ea.style.display;ea.style.opacity=O.enabled?"0.4":"0.1";S.style.opacity=ga.enabled?"0.4":"0.1"};O.addListener("stateChanged",F);ga.addListener("stateChanged",F);F();T.visible&&(na.style.opacity="0.4",U.appendChild(na));T=d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",V,Q);T.style.opacity="0.4";U.appendChild(T);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+
+"/"+mxResources.get("resetView"));P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";U.appendChild(P);mxEvent.addListener(P,"click",fa);fa=d("",ba.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ba,ma);fa.style.opacity="0.4";U.appendChild(fa);
var aa=this.createPageMenuTab(!1);aa.style.display="none";aa.style.position="";aa.style.marginLeft="";aa.style.top="";aa.style.left="";aa.style.height="100%";aa.style.lineHeight="";aa.style.borderStyle="none";aa.style.padding="3px 0";aa.style.margin="0px";aa.style.background="";aa.style.border="";aa.style.boxShadow="none";aa.style.verticalAlign="top";aa.firstChild.style.height="100%";aa.firstChild.style.opacity="0.6";aa.firstChild.style.margin="0px";U.appendChild(aa);var qa=d("",ca.funct,null,mxResources.get("dark"),
ca,Editor.isDarkMode()?ra:ja);qa.style.opacity="0.4";U.appendChild(qa);l.addListener("darkModeChanged",mxUtils.bind(this,function(){qa.style.backgroundImage="url("+(Editor.isDarkMode()?ra:ja)+")"}));l.addListener("fileDescriptorChanged",function(){aa.style.display="1"==urlParams.pages||null!=l.pages&&1<l.pages.length?"inline-block":"none"});l.tabContainer.style.visibility="hidden";q.style.cssText="position:absolute;right:20px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";
X.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";U.style.cssText="position:absolute;right:20px;bottom:20px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;background-color:#fff;";A.appendChild(X);A.appendChild(U);Y.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 10px 6px;white-space:nowrap;background-color:#fff;transform:translate(0, -50%);top:50%;";
diff --git a/src/main/webapp/mxgraph/mxClient.js b/src/main/webapp/mxgraph/mxClient.js
index cdbeba2f..fff2f4d2 100644
--- a/src/main/webapp/mxgraph/mxClient.js
+++ b/src/main/webapp/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"14.6.10",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+var mxClient={VERSION:"14.6.12",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||
0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -310,8 +310,8 @@ mxSvgCanvas2D.prototype.getSvgGradient=function(a,b,c,d,e){var f=this.createGrad
mxSvgCanvas2D.prototype.createSvgGradient=function(a,b,c,d,e){var f=this.createElement("linearGradient");f.setAttribute("x1","0%");f.setAttribute("y1","0%");f.setAttribute("x2","0%");f.setAttribute("y2","0%");null==e||e==mxConstants.DIRECTION_SOUTH?f.setAttribute("y2","100%"):e==mxConstants.DIRECTION_EAST?f.setAttribute("x2","100%"):e==mxConstants.DIRECTION_NORTH?f.setAttribute("y1","100%"):e==mxConstants.DIRECTION_WEST&&f.setAttribute("x1","100%");c=1>c?";stop-opacity:"+c:"";e=this.createElement("stop");
e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f};
mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(null!=c){if("path"==c.nodeName)if(null!=this.path&&0<this.path.length)c.setAttribute("d",this.path.join(" "));else return;a&&null!=d.fillColor?this.updateFill():this.styleEnabled||("ellipse"==c.nodeName&&mxClient.IS_FF?c.setAttribute("fill","transparent"):c.setAttribute("fill","none"),a=!1);b&&null!=d.strokeColor?this.updateStroke():this.styleEnabled||c.setAttribute("stroke","none");null!=d.transform&&0<d.transform.length&&
-c.setAttribute("transform",d.transform);this.pointerEvents?c.setAttribute("pointer-events",this.pointerEventsValue):this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none");d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&!a&&this.addTolerance(c);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=c.getAttribute("pointer-events"))&&
-this.root.appendChild(c);this.node=null}};mxSvgCanvas2D.prototype.addTolerance=function(a){this.root.appendChild(this.createTolerance(a))};
+c.setAttribute("transform",d.transform);this.pointerEvents?c.setAttribute("pointer-events",this.pointerEventsValue):this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none");d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&(!a||null==d.fillColor)&&this.addTolerance(c);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=
+c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};mxSvgCanvas2D.prototype.addTolerance=function(a){this.root.appendChild(this.createTolerance(a))};
mxSvgCanvas2D.prototype.updateFill=function(){var a=this.state;(1>a.alpha||1>a.fillAlpha)&&this.node.setAttribute("fill-opacity",a.alpha*a.fillAlpha);if(null!=a.fillColor)if(null!=a.gradientColor)if(a=this.getSvgGradient(String(a.fillColor),String(a.gradientColor),a.gradientFillAlpha,a.gradientAlpha,a.gradientDirection),this.root.ownerDocument==document&&this.useAbsoluteIds){var b=this.getBaseUrl().replace(/([\(\)])/g,"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",
"url(#"+a+")");else this.node.setAttribute("fill",String(a.fillColor).toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,Math.max(.01,this.format(this.state.strokeWidth*this.state.scale)))};
mxSvgCanvas2D.prototype.updateStroke=function(){var a=this.state;this.node.setAttribute("stroke",String(a.strokeColor).toLowerCase());(1>a.alpha||1>a.strokeAlpha)&&this.node.setAttribute("stroke-opacity",a.alpha*a.strokeAlpha);var b=this.getCurrentStrokeWidth();1!=b&&this.node.setAttribute("stroke-width",b);"path"==this.node.nodeName&&this.updateStrokeAttributes();a.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((a.fixDash?1:a.strokeWidth)*a.scale))};
@@ -372,7 +372,7 @@ mxShape.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,m
mxShape.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height};
mxShape.prototype.redrawShape=function(){var a=this.createCanvas();null!=a&&(a.pointerEvents=this.pointerEvents,this.beforePaint(a),this.paint(a),this.afterPaint(a),this.node!=a.root&&this.node.insertAdjacentHTML("beforeend",a.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(a))};
mxShape.prototype.createCanvas=function(){var a=null;null!=this.node.ownerSVGElement&&(a=this.createSvgCanvas());null!=a&&this.outline&&(a.setStrokeWidth(this.strokewidth),a.setStrokeColor(this.stroke),null!=this.isDashed&&a.setDashed(this.isDashed),a.setStrokeWidth=function(){},a.setStrokeColor=function(){},a.setFillColor=function(){},a.setGradient=function(){},a.setDashed=function(){},a.text=function(){});return a};
-mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");a.minStrokeWidth=this.minSvgStrokeWidth;this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
+mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.svgStrokeTolerance;a.pointerEventsValue=this.svgPointerEvents;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");a.minStrokeWidth=this.minSvgStrokeWidth;this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
mxShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node);this.updateHtmlFilters(this.node);this.updateHtmlColors(this.node)};
mxShape.prototype.updateHtmlFilters=function(a){var b="";100>this.opacity&&(b+="alpha(opacity="+this.opacity+")");this.isShadow&&(b+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.VML_SHADOWCOLOR+"')");if(null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var c=this.fill,d=this.gradient,e="0",f={east:0,south:1,
west:2,north:3},g=null!=this.direction?f[this.direction]:0;null!=this.gradientDirection&&(g=mxUtils.mod(g+f[this.gradientDirection]-1,4));1==g?(e="1",f=c,c=d,d=f):2==g?(f=c,c=d,d=f):3==g&&(e="1");b+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+c+"', endColorStr='"+d+"', gradientType='"+e+"')"}a.style.filter=b};
@@ -511,7 +511,7 @@ a+(c-g)/2:e==mxConstants.ALIGN_RIGHT?a+(c-g-l):a+l;b=f==mxConstants.ALIGN_TOP?b+
mxLabel.prototype.getIndicatorBounds=function(a,b,c,d){var e=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),f=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),g=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_WIDTH,this.indicatorSize),k=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_HEIGHT,this.indicatorSize),l=this.spacing+5;a=e==mxConstants.ALIGN_RIGHT?a+(c-g-l):e==mxConstants.ALIGN_CENTER?a+(c-g)/
2:a+l;b=f==mxConstants.ALIGN_BOTTOM?b+(d-k-l):f==mxConstants.ALIGN_TOP?b+l:b+(d-k)/2;return new mxRectangle(a,b,g,k)};
mxLabel.prototype.redrawHtmlShape=function(){for(mxRectangleShape.prototype.redrawHtmlShape.apply(this,arguments);this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);if(null!=this.image){var a=document.createElement("img");a.style.position="relative";a.setAttribute("border","0");var b=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);b.x-=this.bounds.x;b.y-=this.bounds.y;a.style.left=Math.round(b.x)+"px";a.style.top=Math.round(b.y)+"px";a.style.width=
-Math.round(b.width)+"px";a.style.height=Math.round(b.height)+"px";a.src=this.image;this.node.appendChild(a)}};function mxCylinder(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxCylinder,mxShape);mxCylinder.prototype.maxHeight=40;mxCylinder.prototype.svgStrokeTolerance=0;
+Math.round(b.width)+"px";a.style.height=Math.round(b.height)+"px";a.src=this.image;this.node.appendChild(a)}};function mxCylinder(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxCylinder,mxShape);mxCylinder.prototype.maxHeight=40;
mxCylinder.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();this.redrawPath(a,b,c,d,e,!1);a.fillAndStroke();this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(a.setShadow(!1),a.begin(),this.redrawPath(a,b,c,d,e,!0),a.stroke())};mxCylinder.prototype.getCylinderSize=function(a,b,c,d){return Math.min(this.maxHeight,Math.round(d/5))};
mxCylinder.prototype.redrawPath=function(a,b,c,d,e,f){b=this.getCylinderSize(b,c,d,e);if(f&&null!=this.fill||!f&&null==this.fill)a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin());f||(a.moveTo(0,b),a.curveTo(0,-b/3,d,-b/3,d,b),a.lineTo(d,e-b),a.curveTo(d,e+b/3,0,e+b/3,0,e-b),a.close())};function mxConnector(a,b,c){mxPolyline.call(this,a,b,c)}mxUtils.extend(mxConnector,mxPolyline);
mxConnector.prototype.updateBoundingBox=function(){this.useSvgBoundingBox=null!=this.style&&1==this.style[mxConstants.STYLE_CURVED];mxShape.prototype.updateBoundingBox.apply(this,arguments)};mxConnector.prototype.paintEdgeShape=function(a,b){var c=this.createMarker(a,b,!0),d=this.createMarker(a,b,!1);mxPolyline.prototype.paintEdgeShape.apply(this,arguments);a.setFillColor(this.stroke);a.setShadow(!1);a.setDashed(!1);null!=c&&c();null!=d&&d()};
diff --git a/src/main/webapp/package-lock.json b/src/main/webapp/package-lock.json
new file mode 100644
index 00000000..3f1e624d
--- /dev/null
+++ b/src/main/webapp/package-lock.json
@@ -0,0 +1,2822 @@
+{
+ "name": "draw.io",
+ "version": "14.6.12",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "draw.io",
+ "version": "14.6.12",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "commander": "^7.2.0",
+ "compression": "^1.7.4",
+ "crc": "^3.8.0",
+ "electron-log": "^4.3.5",
+ "electron-progressbar": "^2.0.0",
+ "electron-store": "^8.0.0",
+ "electron-updater": "^4.3.9",
+ "pdf-lib": "^1.16.0"
+ },
+ "devDependencies": {
+ "electron": "^12.0.6"
+ }
+ },
+ "node_modules/@electron/get": {
+ "version": "1.12.4",
+ "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.4.tgz",
+ "integrity": "sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "env-paths": "^2.2.0",
+ "fs-extra": "^8.1.0",
+ "got": "^9.6.0",
+ "progress": "^2.0.3",
+ "semver": "^6.2.0",
+ "sumchecker": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ },
+ "optionalDependencies": {
+ "global-agent": "^2.0.2",
+ "global-tunnel-ng": "^2.7.1"
+ }
+ },
+ "node_modules/@electron/get/node_modules/debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@electron/get/node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/@electron/get/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "license": "MIT",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@electron/get/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@electron/get/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/@pdf-lib/standard-fonts": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz",
+ "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==",
+ "license": "MIT",
+ "dependencies": {
+ "pako": "^1.0.6"
+ }
+ },
+ "node_modules/@pdf-lib/upng": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@pdf-lib/upng/-/upng-1.0.1.tgz",
+ "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==",
+ "license": "MIT",
+ "dependencies": {
+ "pako": "^1.0.10"
+ }
+ },
+ "node_modules/@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "defer-to-connect": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "14.14.44",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.44.tgz",
+ "integrity": "sha512-+gaugz6Oce6ZInfI/tK4Pq5wIIkJMEJUu92RB3Eu93mtj4wjjjz9EB5mLp5s1pSsLXdC/CPut/xF20ZzAQJbTA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-iotVxtCCsPLRAvxMFFgxL8HD2l4mAZ2Oin7/VJ2ooWO0VOK4EGOGmZWZn1uCq7RofR3I/1IOSjCHlFT71eVK0Q==",
+ "license": "MIT"
+ },
+ "node_modules/accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.3.0.tgz",
+ "integrity": "sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ajv-formats": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz",
+ "integrity": "sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "license": "Python-2.0"
+ },
+ "node_modules/atomically": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz",
+ "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/boolean": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.4.tgz",
+ "integrity": "sha512-5pyOr+w2LNN72F2mAq6J0ckHUfJYSgRKma7e/wlcMMhgOLV9OI0ERhERYXxUqo+dPyVxcbXKy9n+wg13+LpNnA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/builder-util-runtime": {
+ "version": "8.7.5",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.5.tgz",
+ "integrity": "sha512-fgUFHKtMNjdvH6PDRFntdIGUPgwZ69sXsAqEulCtoiqgWes5agrMq/Ud274zjJRTbckYh2PHh8/1CpFc6dpsbQ==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.3.2",
+ "sax": "^1.2.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/builder-util-runtime/node_modules/debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": ">= 1.43.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/compression": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+ "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.16",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "engines": [
+ "node >= 0.8"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/conf": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/conf/-/conf-10.0.1.tgz",
+ "integrity": "sha512-QClEoNcruwBL84QgMEPHibL3ERxWIrRKhbjJKG1VsFBadm5QpS0jsu4QjY/maxUvhyAKXeyrs+ws+lC6PajnEg==",
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.1.0",
+ "ajv-formats": "^2.0.2",
+ "atomically": "^1.7.0",
+ "debounce-fn": "^4.0.0",
+ "dot-prop": "^6.0.1",
+ "env-paths": "^2.2.1",
+ "json-schema-typed": "^7.0.3",
+ "onetime": "^5.1.2",
+ "pkg-up": "^3.1.0",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/config-chain": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
+ "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
+ },
+ "node_modules/core-js": {
+ "version": "3.12.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.12.1.tgz",
+ "integrity": "sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/crc": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
+ "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^5.1.0"
+ }
+ },
+ "node_modules/debounce-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz",
+ "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/debounce-fn/node_modules/mimic-fn": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz",
+ "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "license": "MIT"
+ },
+ "node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/defer-to-connect": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "object-keys": "^1.0.12"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/detect-node": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz",
+ "integrity": "sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/dot-prop": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
+ "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/electron": {
+ "version": "12.0.7",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "@electron/get": "^1.0.1",
+ "@types/node": "^14.6.2",
+ "extract-zip": "^1.0.3"
+ },
+ "bin": {
+ "electron": "cli.js"
+ },
+ "engines": {
+ "node": ">= 8.6"
+ }
+ },
+ "node_modules/electron-log": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.3.5.tgz",
+ "integrity": "sha512-J5Ew3axdk7W4jzzxKLSAi1sqbcAoo9CzHuBVsG0tT47j256xKulNrWFf3lZmHJ1KDXOQUcuwOngQF0jjmpEdpw==",
+ "license": "MIT"
+ },
+ "node_modules/electron-progressbar": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/electron-progressbar/-/electron-progressbar-2.0.0.tgz",
+ "integrity": "sha512-FBXR2Ys1nYjOEz2G/tB0q6fnCTHI+Vp1wcblo8E6319etJ5lDX7GiS1gujVterxEH2lsc2BqP+4Eq76v+4VEGw==",
+ "license": "MIT",
+ "dependencies": {
+ "extend": "^3.0.1"
+ }
+ },
+ "node_modules/electron-store": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/electron-store/-/electron-store-8.0.0.tgz",
+ "integrity": "sha512-ZgRPUZkfrrjWSqxZeaxu7lEvmYf6tgl49dLMqxXGnEmliSiwv3u4rJPG+mH3fBQP9PBqgSh4TCuxHZImMMUgWg==",
+ "license": "MIT",
+ "dependencies": {
+ "conf": "^10.0.0",
+ "type-fest": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/electron-updater": {
+ "version": "4.3.9",
+ "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.9.tgz",
+ "integrity": "sha512-LCNfedSwZfS4Hza+pDyPR05LqHtGorCStaBgVpRnfKxOlZcvpYEX0AbMeH5XUtbtGRoH2V8osbbf2qKPNb7AsA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/semver": "^7.3.5",
+ "builder-util-runtime": "8.7.5",
+ "fs-extra": "^10.0.0",
+ "js-yaml": "^4.1.0",
+ "lazy-val": "^1.0.4",
+ "lodash.escaperegexp": "^4.1.2",
+ "lodash.isequal": "^4.5.0",
+ "semver": "^7.3.5"
+ }
+ },
+ "node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/es6-error": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "license": "MIT"
+ },
+ "node_modules/extract-zip": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
+ "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "concat-stream": "^1.6.2",
+ "debug": "^2.6.9",
+ "mkdirp": "^0.5.4",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "license": "MIT"
+ },
+ "node_modules/fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pend": "~1.2.0"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
+ "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/global-agent": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz",
+ "integrity": "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "dependencies": {
+ "boolean": "^3.0.1",
+ "core-js": "^3.6.5",
+ "es6-error": "^4.1.1",
+ "matcher": "^3.0.0",
+ "roarr": "^2.15.3",
+ "semver": "^7.3.2",
+ "serialize-error": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=10.0"
+ }
+ },
+ "node_modules/global-tunnel-ng": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz",
+ "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "dependencies": {
+ "encodeurl": "^1.0.2",
+ "lodash": "^4.17.10",
+ "npm-conf": "^1.1.3",
+ "tunnel": "^0.0.6"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/globalthis": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz",
+ "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
+ "license": "ISC"
+ },
+ "node_modules/http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "license": "MIT"
+ },
+ "node_modules/json-schema-typed": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz",
+ "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "license": "MIT",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "node_modules/lazy-val": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz",
+ "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==",
+ "license": "MIT"
+ },
+ "node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/lodash.escaperegexp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
+ "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
+ "license": "MIT"
+ },
+ "node_modules/lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/matcher": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
+ "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "escape-string-regexp": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.47.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
+ "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.30",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
+ "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.47.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.5"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "license": "MIT"
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/normalize-url": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm-conf": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
+ "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "config-chain": "^1.1.11",
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "license": "(MIT AND Zlib)"
+ },
+ "node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pdf-lib": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.16.0.tgz",
+ "integrity": "sha512-P/1SSmElOBKrPlbc+Sn7UxikRQbzVA64+4Dh6/uczPscvq/NatP9eryoOguyBTpTnzICNiG8EnMH4Ziqp2TnFA==",
+ "license": "MIT",
+ "dependencies": {
+ "@pdf-lib/standard-fonts": "^1.0.0",
+ "@pdf-lib/upng": "^1.0.1",
+ "pako": "^1.0.11",
+ "tslib": "^1.11.1"
+ }
+ },
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pkg-up": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
+ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
+ "dev": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "node_modules/roarr": {
+ "version": "2.15.4",
+ "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz",
+ "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "dependencies": {
+ "boolean": "^3.0.1",
+ "detect-node": "^2.0.4",
+ "globalthis": "^1.0.1",
+ "json-stringify-safe": "^5.0.1",
+ "semver-compare": "^1.0.0",
+ "sprintf-js": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
+ },
+ "node_modules/sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "license": "ISC"
+ },
+ "node_modules/semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/serialize-error": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
+ "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "type-fest": "^0.13.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/serialize-error/node_modules/type-fest": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
+ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "optional": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "optional": true
+ },
+ "node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/sumchecker": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz",
+ "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "debug": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 8.0"
+ }
+ },
+ "node_modules/sumchecker/node_modules/debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/to-readable-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "license": "0BSD"
+ },
+ "node_modules/tunnel": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
+ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.6.11 <=0.7.0 || >=0.7.3"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.1.1.tgz",
+ "integrity": "sha512-RPDKc5KrIyKTP7Fk75LruUagqG6b+OTgXlCR2Z0aQDJFeIvL4/mhahSEtHmmVzXu4gmA0srkF/8FCH3WOWxTWA==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prepend-http": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "license": "ISC"
+ },
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ }
+ },
+ "dependencies": {
+ "@electron/get": {
+ "version": "1.12.4",
+ "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.4.tgz",
+ "integrity": "sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "env-paths": "^2.2.0",
+ "fs-extra": "^8.1.0",
+ "global-agent": "^2.0.2",
+ "global-tunnel-ng": "^2.7.1",
+ "got": "^9.6.0",
+ "progress": "^2.0.3",
+ "semver": "^6.2.0",
+ "sumchecker": "^3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ }
+ }
+ },
+ "@pdf-lib/standard-fonts": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz",
+ "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==",
+ "requires": {
+ "pako": "^1.0.6"
+ }
+ },
+ "@pdf-lib/upng": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@pdf-lib/upng/-/upng-1.0.1.tgz",
+ "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==",
+ "requires": {
+ "pako": "^1.0.10"
+ }
+ },
+ "@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "dev": true
+ },
+ "@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "dev": true,
+ "requires": {
+ "defer-to-connect": "^1.0.1"
+ }
+ },
+ "@types/node": {
+ "version": "14.14.44",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.44.tgz",
+ "integrity": "sha512-+gaugz6Oce6ZInfI/tK4Pq5wIIkJMEJUu92RB3Eu93mtj4wjjjz9EB5mLp5s1pSsLXdC/CPut/xF20ZzAQJbTA==",
+ "dev": true
+ },
+ "@types/semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-iotVxtCCsPLRAvxMFFgxL8HD2l4mAZ2Oin7/VJ2ooWO0VOK4EGOGmZWZn1uCq7RofR3I/1IOSjCHlFT71eVK0Q=="
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "ajv": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.3.0.tgz",
+ "integrity": "sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-formats": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz",
+ "integrity": "sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==",
+ "requires": {}
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "atomically": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz",
+ "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w=="
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+ },
+ "boolean": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.4.tgz",
+ "integrity": "sha512-5pyOr+w2LNN72F2mAq6J0ckHUfJYSgRKma7e/wlcMMhgOLV9OI0ERhERYXxUqo+dPyVxcbXKy9n+wg13+LpNnA==",
+ "dev": true,
+ "optional": true
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
+ "dev": true
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "builder-util-runtime": {
+ "version": "8.7.5",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.5.tgz",
+ "integrity": "sha512-fgUFHKtMNjdvH6PDRFntdIGUPgwZ69sXsAqEulCtoiqgWes5agrMq/Ud274zjJRTbckYh2PHh8/1CpFc6dpsbQ==",
+ "requires": {
+ "debug": "^4.3.2",
+ "sax": "^1.2.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ }
+ }
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
+ },
+ "cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "dev": true,
+ "requires": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true
+ }
+ }
+ },
+ "clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="
+ },
+ "compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "requires": {
+ "mime-db": ">= 1.43.0 < 2"
+ }
+ },
+ "compression": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+ "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+ "requires": {
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.16",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
+ }
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "conf": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/conf/-/conf-10.0.1.tgz",
+ "integrity": "sha512-QClEoNcruwBL84QgMEPHibL3ERxWIrRKhbjJKG1VsFBadm5QpS0jsu4QjY/maxUvhyAKXeyrs+ws+lC6PajnEg==",
+ "requires": {
+ "ajv": "^8.1.0",
+ "ajv-formats": "^2.0.2",
+ "atomically": "^1.7.0",
+ "debounce-fn": "^4.0.0",
+ "dot-prop": "^6.0.1",
+ "env-paths": "^2.2.1",
+ "json-schema-typed": "^7.0.3",
+ "onetime": "^5.1.2",
+ "pkg-up": "^3.1.0",
+ "semver": "^7.3.5"
+ }
+ },
+ "config-chain": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
+ "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
+ },
+ "core-js": {
+ "version": "3.12.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.12.1.tgz",
+ "integrity": "sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw==",
+ "dev": true,
+ "optional": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "crc": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
+ "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
+ "requires": {
+ "buffer": "^5.1.0"
+ }
+ },
+ "debounce-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz",
+ "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==",
+ "requires": {
+ "mimic-fn": "^3.0.0"
+ },
+ "dependencies": {
+ "mimic-fn": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz",
+ "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ=="
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "defer-to-connect": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
+ "dev": true
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "detect-node": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz",
+ "integrity": "sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==",
+ "dev": true,
+ "optional": true
+ },
+ "dot-prop": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
+ "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
+ "requires": {
+ "is-obj": "^2.0.0"
+ }
+ },
+ "duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+ "dev": true
+ },
+ "electron": {
+ "version": "12.0.7",
+ "dev": true,
+ "requires": {
+ "@electron/get": "^1.0.1",
+ "@types/node": "^14.6.2",
+ "extract-zip": "^1.0.3"
+ }
+ },
+ "electron-log": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.3.5.tgz",
+ "integrity": "sha512-J5Ew3axdk7W4jzzxKLSAi1sqbcAoo9CzHuBVsG0tT47j256xKulNrWFf3lZmHJ1KDXOQUcuwOngQF0jjmpEdpw=="
+ },
+ "electron-progressbar": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/electron-progressbar/-/electron-progressbar-2.0.0.tgz",
+ "integrity": "sha512-FBXR2Ys1nYjOEz2G/tB0q6fnCTHI+Vp1wcblo8E6319etJ5lDX7GiS1gujVterxEH2lsc2BqP+4Eq76v+4VEGw==",
+ "requires": {
+ "extend": "^3.0.1"
+ }
+ },
+ "electron-store": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/electron-store/-/electron-store-8.0.0.tgz",
+ "integrity": "sha512-ZgRPUZkfrrjWSqxZeaxu7lEvmYf6tgl49dLMqxXGnEmliSiwv3u4rJPG+mH3fBQP9PBqgSh4TCuxHZImMMUgWg==",
+ "requires": {
+ "conf": "^10.0.0",
+ "type-fest": "^1.0.2"
+ }
+ },
+ "electron-updater": {
+ "version": "4.3.9",
+ "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.9.tgz",
+ "integrity": "sha512-LCNfedSwZfS4Hza+pDyPR05LqHtGorCStaBgVpRnfKxOlZcvpYEX0AbMeH5XUtbtGRoH2V8osbbf2qKPNb7AsA==",
+ "requires": {
+ "@types/semver": "^7.3.5",
+ "builder-util-runtime": "8.7.5",
+ "fs-extra": "^10.0.0",
+ "js-yaml": "^4.1.0",
+ "lazy-val": "^1.0.4",
+ "lodash.escaperegexp": "^4.1.2",
+ "lodash.isequal": "^4.5.0",
+ "semver": "^7.3.5"
+ }
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true,
+ "optional": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="
+ },
+ "es6-error": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
+ "dev": true,
+ "optional": true
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "optional": true
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "extract-zip": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
+ "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.6.2",
+ "debug": "^2.6.9",
+ "mkdirp": "^0.5.4",
+ "yauzl": "^2.10.0"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
+ "fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+ "dev": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "fs-extra": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
+ "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "global-agent": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz",
+ "integrity": "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "boolean": "^3.0.1",
+ "core-js": "^3.6.5",
+ "es6-error": "^4.1.1",
+ "matcher": "^3.0.0",
+ "roarr": "^2.15.3",
+ "semver": "^7.3.2",
+ "serialize-error": "^7.0.1"
+ }
+ },
+ "global-tunnel-ng": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz",
+ "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "encodeurl": "^1.0.2",
+ "lodash": "^4.17.10",
+ "npm-conf": "^1.1.3",
+ "tunnel": "^0.0.6"
+ }
+ },
+ "globalthis": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz",
+ "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "define-properties": "^1.1.3"
+ }
+ },
+ "got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
+ },
+ "http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
+ "dev": true
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true,
+ "optional": true
+ },
+ "is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "json-schema-typed": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz",
+ "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A=="
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true,
+ "optional": true
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "lazy-val": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz",
+ "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q=="
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.escaperegexp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
+ "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c="
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "matcher": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
+ "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "escape-string-regexp": "^4.0.0"
+ }
+ },
+ "mime-db": {
+ "version": "1.47.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
+ "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw=="
+ },
+ "mime-types": {
+ "version": "2.1.30",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
+ "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
+ "requires": {
+ "mime-db": "1.47.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+ },
+ "normalize-url": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
+ "dev": true
+ },
+ "npm-conf": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
+ "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "config-chain": "^1.1.11",
+ "pify": "^3.0.0"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true,
+ "optional": true
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ },
+ "pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ },
+ "pdf-lib": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.16.0.tgz",
+ "integrity": "sha512-P/1SSmElOBKrPlbc+Sn7UxikRQbzVA64+4Dh6/uczPscvq/NatP9eryoOguyBTpTnzICNiG8EnMH4Ziqp2TnFA==",
+ "requires": {
+ "@pdf-lib/standard-fonts": "^1.0.0",
+ "@pdf-lib/upng": "^1.0.1",
+ "pako": "^1.0.11",
+ "tslib": "^1.11.1"
+ }
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true,
+ "optional": true
+ },
+ "pkg-up": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
+ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
+ "requires": {
+ "find-up": "^3.0.0"
+ }
+ },
+ "prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true
+ },
+ "proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
+ "dev": true,
+ "optional": true
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
+ },
+ "responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "dev": true,
+ "requires": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "roarr": {
+ "version": "2.15.4",
+ "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz",
+ "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "boolean": "^3.0.1",
+ "detect-node": "^2.0.4",
+ "globalthis": "^1.0.1",
+ "json-stringify-safe": "^5.0.1",
+ "semver-compare": "^1.0.0",
+ "sprintf-js": "^1.1.2"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
+ "dev": true,
+ "optional": true
+ },
+ "serialize-error": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
+ "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "type-fest": "^0.13.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
+ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "sprintf-js": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
+ "dev": true,
+ "optional": true
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "sumchecker": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz",
+ "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ }
+ }
+ },
+ "to-readable-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+ "dev": true
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "tunnel": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
+ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
+ "dev": true,
+ "optional": true
+ },
+ "type-fest": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.1.1.tgz",
+ "integrity": "sha512-RPDKc5KrIyKTP7Fk75LruUagqG6b+OTgXlCR2Z0aQDJFeIvL4/mhahSEtHmmVzXu4gmA0srkF/8FCH3WOWxTWA=="
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "dev": true,
+ "requires": {
+ "prepend-http": "^2.0.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ }
+ }
+}
diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json
index 447e569d..1cc2f4f5 100644
--- a/src/main/webapp/package.json
+++ b/src/main/webapp/package.json
@@ -1,6 +1,6 @@
{
"name": "draw.io",
- "version": "14.5.1",
+ "version": "14.6.12",
"description": "diagrams.net desktop",
"main": "electron.js",
"scripts": {
@@ -26,13 +26,13 @@
"commander": "^7.2.0",
"compression": "^1.7.4",
"crc": "^3.8.0",
- "electron-log": "^4.3.2",
+ "electron-log": "^4.3.5",
"electron-progressbar": "^2.0.0",
- "electron-store": "^7.0.2",
- "electron-updater": "^4.3.8",
+ "electron-store": "^8.0.0",
+ "electron-updater": "^4.3.9",
"pdf-lib": "^1.16.0"
},
"devDependencies": {
- "electron": "^12.0.1"
+ "electron": "^12.0.6"
}
}
diff --git a/src/main/webapp/resources/dia_ar.txt b/src/main/webapp/resources/dia_ar.txt
index 59b94499..c377699e 100644
--- a/src/main/webapp/resources/dia_ar.txt
+++ b/src/main/webapp/resources/dia_ar.txt
@@ -7,7 +7,7 @@ action=‫فعل‬
actualSize=‫الحجم الحقيقي‬
add=‫إضافة‬
addAccount=‫إضافة حساب‬
-addedFile=‫الملفات المضافة‬
+addedFile=‫تمت إضافة {1}‬
addImages=‫إضافة صور‬
addImageUrl=‫إضافة رابط صورة‬
addLayer=‫إضافة طبقة‬
@@ -25,7 +25,7 @@ allProjects=‫كل المشاريع‬
allSpaces=‫كل المساحات‬
allTags=‫كل الواصفات‬
anchor=‫مرساة‬
-android=‫آلي‬
+android=‫أندرويد‬
angle=‫زاوية‬
arc=Arc
areYouSure=‫هل أنت متأكد؟‬
@@ -33,7 +33,7 @@ ensureDataSaved=‫المرجو التحقق من حفظ البيانات قبل
allChangesSaved=‫تم حفظ جميع التغييرات‬
allChangesSavedInDrive=‫تم حفظ جميع التغييرات إلى Drive‬
allowPopups=‫السماح للنوافذ لتفادي هذه النافذة‬
-allowRelativeUrl=‫اسمح بالوصلات الشقيقة‬
+allowRelativeUrl=‫اسمح بالوصلات النسبية‬
alreadyConnected=‫العقد متصلة مسبقا‬
apply=‫نفذ‬
archiMate21=ArchiMate 2.1
@@ -42,7 +42,7 @@ arrow=‫سهم‬
arrows=‫أسهم‬
asNew=‫كجديد‬
atlas=‫أطلس‬
-author=‫المخول‬
+author=‫المؤلف‬
authorizationRequired=‫الترخيص ضروري‬
authorizeThisAppIn=‫الترخيص لهذا التطبيق في {1}‬
authorize=‫ترخيص‬
@@ -65,20 +65,20 @@ block=‫كتلة‬
blockquote=‫اقتباس‬
blog=‫مدونة‬
bold=‫تغليظ الخط‬
-bootstrap=Bootstrap
+bootstrap=‫التصميم التمهيدي‬
border=‫حد‬
borderColor=‫لون الحد‬
borderWidth=‫عرض الحد‬
bottom=‫أسفل‬
bottomAlign=‫محاذاة إلى الأسفل‬
-bottomLeft=Bottom Left
-bottomRight=Bottom Right
+bottomLeft=‫محاذاة الي يسار الاسفل‬
+bottomRight=‫محاذاة الي يمين الاسفل‬
bpmn=BPMN
browser=‫متصفح‬
bulletedList=‫قائمة ‬
-business=Business
-busy=Operation in progress
-cabinets=Cabinets
+business=‫أعمال‬
+busy=‫العملية قيد التنفيذ‬
+cabinets=‫الكابينة‬
cancel=‫إلغاء‬
center=‫توسيط‬
cannotLoad=‫لقد فشلت محاولات الرفع. المرجو المحاولة لاحقا.‬
@@ -87,28 +87,28 @@ cannotOpenFile=‫تعذر فتح الملف‬
change=‫تغيير‬
changeOrientation=‫تغيير الاتجاه‬
changeUser=‫تغيير المستخدم‬
-changeStorage=Change storage
+changeStorage=‫تغيير مكان التخزين‬
changesNotSaved=‫لم يتم حفظ التغييرات‬
-classDiagram=Class Diagram
+classDiagram=‫مخطط المكون‬
userJoined=‫التحق {1}‬
userLeft=‫غادر {1}‬
chatWindowTitle=‫دردشة‬
chooseAnOption=‫اختر خيارا‬
chromeApp=‫تطبيق Chrome‬
-collaborativeEditingNotice=Important Notice for Collaborative Editing
+collaborativeEditingNotice=‫ملاحظات مهمة عن مشاركة التعديل‬
compare=‫قارن‬
-compressed=Compressed
-commitMessage=Commit Message
-configLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!
-configLinkConfirm=Click OK to configure and restart draw.io.
-csv=CSV
-dark=Dark
-diagramXmlDesc=XML File
-diagramHtmlDesc=HTML File
-diagramPngDesc=Editable Bitmap Image
-diagramSvgDesc=Editable Vector Image
-didYouMeanToExportToPdf=Did you mean to export to PDF?
-draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
+compressed=‫مضغوط‬
+commitMessage=‫أكد علي تسجيل الرسالة‬
+configLinkWarn=‫هذة الوصلة تقوم بتغيرات علي draw.io . اضغط علي موافق لو كنت تثق فيمن ارسله اليك‬
+configLinkConfirm=‫اضغك علي موافق لتعدل و تعيد تشغيل draw.io‬
+csv=‫ملف قيم منفصلة بفاصلة‬
+dark=‫غامق‬
+diagramXmlDesc=‫ملف xml‬
+diagramHtmlDesc=‫ملف html‬
+diagramPngDesc=‫صورة قابلة للتعديل‬
+diagramSvgDesc=‫عنصر مصور قابل للتعديل‬
+didYouMeanToExportToPdf=‫هل تريد حفظه كملف pdf ؟‬
+draftFound=‫تم العثور علي نموذج. قم بتحميله داخل المعدل، أو قم بالغاءه لتكمل.‬
draftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.
selectDraft=Select a draft to continue editing:
dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
diff --git a/src/main/webapp/resources/dia_es.txt b/src/main/webapp/resources/dia_es.txt
index 30ee7fb1..1cbab6c6 100644
--- a/src/main/webapp/resources/dia_es.txt
+++ b/src/main/webapp/resources/dia_es.txt
@@ -960,13 +960,13 @@ confAConfPageDesc=Ésta página contiene un archivo de configuración draw.io (c
confALibPageDesc=Ésta página contiene librerias personalizadas adjuntas
confATempPageDesc=Ésta página contiene plantillas personalizadas adjuntas
working=Trabajando
-confAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates
+confAConfSpaceDesc=Este espacio es usado para almacenar archivos de configuración y librerías/plantillas personalizadas de draw.io
confANoCustLib=Sin Librerias Personalizadas
delFailed=¡La eliminiación falló!
showID=Mostrar ID
confAIncorrectLibFileType=Formato de archivo incorrecto. Las librerias deberían ser archivos XML.
-uploading=Uploading
-confALibExist=This library already exists
+uploading=Subiendo
+confALibExist=Esta librería ya existe
confAUploadSucc=Uploaded successfully
confAUploadFailErr=Upload Failed (Unexpected Error)
hiResPreview=High Res Preview
diff --git a/src/main/webapp/resources/dia_ru.txt b/src/main/webapp/resources/dia_ru.txt
index 4d72abf9..aebefa29 100644
--- a/src/main/webapp/resources/dia_ru.txt
+++ b/src/main/webapp/resources/dia_ru.txt
@@ -6,7 +6,7 @@ accessDenied=Доступ запрещён
action=Действие
actualSize=Фактический размер
add=Добавить
-addAccount=Add account
+addAccount=Добавить аккаунт
addedFile=Добавлено {1}
addImages=Добавить изображения
addImageUrl=Добавить ссылку на изображение
@@ -57,7 +57,7 @@ azure=Azure
back=Назад
background=Фон
backgroundColor=Цвет фона
-backgroundImage=Картинка фона
+backgroundImage=Фоновое изображение
basic=Базовые
blankDrawing=Новый документ
blankDiagram=Пустая диаграмма
@@ -99,22 +99,22 @@ collaborativeEditingNotice=Важное замечание относитель
compare=Compare
compressed=Сжато
commitMessage=Сообщение при коммите
-configLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!
-configLinkConfirm=Click OK to configure and restart draw.io.
+configLinkWarn=Эта ссылка настраивает draw.io. Нажмите ОК только, если Вы доверяете тому, кто её Вам дал!
+configLinkConfirm=Нажмите ОК, чтобы настроить и перезапустить draw.io.
csv=CSV
dark=Темная
-diagramXmlDesc=XML File
-diagramHtmlDesc=HTML File
+diagramXmlDesc=XML файл
+diagramHtmlDesc=HTML файл
diagramPngDesc=Редактируемое растровое изображение
diagramSvgDesc=Редактируемое векторное изображение
-didYouMeanToExportToPdf=Вы хотели экспортирвоать в PDF?
+didYouMeanToExportToPdf=Вы хотели экспортировать в PDF?
draftFound=Был обнаружен черновик '{1}'. Загрузите его в редактор или откажитесь, чтобы продолжить.
-draftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.
-selectDraft=Выберите черновик, чтобы продолжить редактирование
-dragAndDropNotSupported=Перетаскивание изображений не поддерживается. Импортировать изображение?
+draftRevisionMismatch=Существует другая версия этой диаграммы на общем черновике этой страницы. Пожалуйста, отредактируйте диаграмму проекта, чтобы убедиться, что Вы работаете с последней версией.
+selectDraft=Выберите черновик, чтобы продолжить редактирование:
+dragAndDropNotSupported=Перетаскивание изображений не поддерживается. Хотите импортировать изображение?
dropboxCharsNotAllowed=Следующие символы не допускаются: \ / : ? * " |
check=Проверить
-checksum=Checksum
+checksum=Проверочная сумма
circle=Круг
cisco=Cisco
classic=Классический
@@ -122,7 +122,7 @@ clearDefaultStyle=Очистить стиль по умолчанию
clearWaypoints=Очистить опорные точки
clipart=Клипарт
close=Закрыть
-closingFile=Closing file
+closingFile=Закрытие файла
collaborator=Помощник
collaborators=Помощники
collapse=Свернуть
@@ -133,7 +133,7 @@ comic=Рукописный
comment=Комментарий
commentsNotes=Комментарии/Заметки
compress=Сжать
-configuration=Configuration
+configuration=Настройка
connect=Соединить
connecting=Соединение
connectWithDrive=Связать с Google Drive
@@ -145,8 +145,8 @@ containsValidationErrors=Содержит ошибки проверки
copiedToClipboard=Скопировано в буфер обмена
copy=Копировать
copyConnect=Копировать при соединении
-copyCreated=A copy of the file was created.
-copyData=Copy Data
+copyCreated=Копия файла была создана.
+copyData=Скопировать информацию
copyOf=Копия {1}
copyOfDrawing=Копия документа
copySize=Копировать размер
@@ -159,7 +159,7 @@ crop=Обрезать по содержимому
curved=Кривая
custom=Настроить
current=Текущий
-currentPage=Current page
+currentPage=Текущая страница
cut=Вырезать
dashed=Штриховой пунктир
decideLater=Выбрать позже
@@ -191,7 +191,7 @@ discardChanges=Отказаться от изменений
disconnected=Отсоединено
distribute=Распределить
done=Готово
-doNotShowAgain=Do not show again
+doNotShowAgain=Не показывать это снова
dotted=Точки
doubleClickOrientation=Дважды щелкните мышью, чтобы изменить ориентацию
doubleClickTooltip=Дважды щелкните мышью, чтобы вставить текст
@@ -244,7 +244,7 @@ enterName=Введите название
enterPropertyName=Введите название свойства
enterValue=Введите значение
entityRelation=Сущность–связь
-entityRelationshipDiagram=Entity Relationship Diagram
+entityRelationshipDiagram=Диаграмма связей сущностей
error=Ошибка
errorDeletingFile=Ошибка при удалении файла
errorLoadingFile=Ошибка при загрузке файла
@@ -257,7 +257,7 @@ errorSavingFileUnknown=Ошибка авторизации на сервере G
errorSavingFileForbidden=Ошибка сохранения файла. Не хватает прав доступа.
errorSavingFileNameConflict=Невозможно сохранить диаграмму. Страница уже содержит файл с названием '{1}'.
errorSavingFileNotFound=Ошибка при сохранении файла. Файл не найден.
-errorSavingFileReadOnlyMode=Невозможно сохранить диаграмму. Выйдите из режима "только для чтения"
+errorSavingFileReadOnlyMode=Невозможно сохранить диаграмму пока Вы находитесь в режиме "только для чтения".
errorSavingFileSessionTimeout=Ваша сессия истекла. Для сохранения, пожалуйста, <a target='_blank' href='{1}'>{2}</a> и вернитесь на эту закладку.
errorSendingFeedback=Ошибка при отправке сообщения обратной связи.
errorUpdatingPreview=Ошибка при обновлении предварительного просмотра.
@@ -285,7 +285,7 @@ overwrite=Заменить
synchronize=Объединить
filename=Имя файла
fileExists=Файл уже существует
-fileMovedToTrash=File was moved to trash
+fileMovedToTrash=Файл был помещён в корзину
fileNearlyFullSeeFaq=Файл почти заполнен, пожалуйста, ознакомьтесь с FAQ
fileNotFound=Файл не найден
repositoryNotFound=Репозиторий не найден
@@ -353,14 +353,14 @@ github=GitHub
gitlab=GitLab
gliffy=Gliffy
global=Глобальный
-googleDocs=Google Docs
-googleDrive=Google Drive
-googleGadget=Google Gadget
+googleDocs=Google Документы
+googleDrive=Google Диск
+googleGadget=Google Гаджет
googlePlus=Google+
-googleSharingNotAvailable=Совместный доступ к документу возможен только с использованием Google Drive. Щелкните по ссылке Открыть и используйте команды меню чтобы открыть доступ
-googleSlides=Google Slides
-googleSites=Google Sites
-googleSheets=Google Sheets
+googleSharingNotAvailable=Совместный доступ к документу возможен только с использованием Google Диск. Пожайлуста, нажмите по ссылке "Открыть" внизу и используйте команды меню, чтобы открыть доступ:
+googleSlides=Google Презентации
+googleSites=Google Сайты
+googleSheets=Google Таблицы
gradient=Градиент
gradientColor=Цвет
grid=Сетка
@@ -383,7 +383,7 @@ horizontalTree=Горизонтальное дерево
howTranslate=Насколько хорошо приложение переведено на ваш язык?
html=HTML
htmlText=HTML текст
-id=ID
+id=Идентификатор
iframe=IFrame
ignore=Игнорировать
image=Изображение
@@ -411,7 +411,7 @@ insertRowBefore=Вставить строку сверху
insertRowAfter=Вставить строку снизу
insertText=Добавить текст
inserting=Вставка
-installApp=Install App
+installApp=Установить приложение
invalidFilename=Название диаграммы не может содержать следующие символы: \ / | : ; { < & + ? = "
invalidLicenseSeeThisPage=Ваша лицензия недействительна. Пожалуйста, посетите эту<a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">страницу</a>.
invalidInput=Некорректное значение
@@ -431,9 +431,9 @@ lastChange=Последнее изменение {1} назад
lessThanAMinute=меньше минуты
licensingError=Ошибка лицензирования
licenseHasExpired=Лицензия на {1} истекла {2}. Нажмите здесь.
-licenseRequired=This feature requires draw.io to be licensed.
+licenseRequired=Эта функция требует лицензированного draw.io.
licenseWillExpire=Лицензия на {1} истекает {2}. Нажмите здесь.
-lineJumps=Line jumps
+lineJumps=Строковые прыжки
linkAccountRequired=Если диаграмма не доступна для общего доступа, для просмотра понадобится войти в учетную запись Google.
linkText=Текст ссылки
list=Список
@@ -469,7 +469,7 @@ maps=Карты
mathematicalTypesetting=Математический набор
makeCopy=Создать копию
manual=Вручную
-merge=Merge
+merge=Объеденить
mermaid=Mermaid
microsoftOffice=Microsoft Office
microsoftExcel=Microsoft Excel
@@ -520,8 +520,8 @@ notAvailable=Недоступно
notAUtf8File=Кодировка файла отличается от UTF-8
notConnected=Не подключен
note=Заметка
-notion=Notion
-notSatisfiedWithImport=Not satisfied with the import?
+notion=Упоминание
+notSatisfiedWithImport=Не довольны импортом?
notUsingService=Не хотите использовать {1}?
numberedList=Нумерованный список
offline=Оффлайн
@@ -544,7 +544,7 @@ openRecent=Последние документы
openSupported=Поддерживаются файлы, созданные в этой программе (.xml), файлы .vsdx, .gliffy
options=Параметры
organic=Сетевая
-orgChart=Org Chart
+orgChart=Организационная диаграмма
orthogonal=Прямые углы
otherViewer=также просматривает
otherViewers=также просматривают
@@ -562,9 +562,9 @@ pan=Панорама
panTooltip=Удерживайте нажатой клавишу "пробел" и перемещайте курсор для прокрутки диаграммы
paperSize=Размер бумаги
pattern=Шаблон
-parallels=Parallels
+parallels=Параллели
paste=Вставить
-pasteData=Paste Data
+pasteData=Вставить данные
pasteHere=Вставить сюда
pasteSize=Вставить размер
pasteStyle=Вставить стиль
@@ -673,14 +673,14 @@ sendMessage=Отправить
sendYourFeedback=Отправьте ваш отзыв
serviceUnavailableOrBlocked=Служба недоступна или заблокирована
sessionExpired=Время вашей сессии истекло. Пожалуйста, обновите окно браузера.
-sessionTimeoutOnSave=Время вашей сессии истекло и вы были отключены от Google Drive. Нажмите ОК, чтобы войти снова и сохранить изменения.
+sessionTimeoutOnSave=Время вашей сессии истекло и вы были отключены от Google Диск. Нажмите ОК, чтобы войти снова и сохранить изменения.
setAsDefaultStyle=Установить как стиль по умолчанию
shadow=Тень
shape=Фигура
shapes=Фигуры
share=Общий доступ
shareLink=Ссылка для совместного редактирования
-sharingAvailable=Sharing available for Google Drive and OneDrive files.
+sharingAvailable=Совместное использование доступно только для файлов Google Диск и OneDrive.
sharp=Острые углы
show=Показать
showStartScreen=Показать начальный экран
@@ -689,9 +689,9 @@ signs=Знаки и пиктограммы
signOut=Выйти
simple=Простой
simpleArrow=Простая стрелка
-simpleViewer=Simple Viewer
+simpleViewer=Простой зритель
size=Размер
-sketch=Sketch
+sketch=Набросок
solid=Сплошная
sourceSpacing=Отступ от начального узла
south=Юг
@@ -700,23 +700,23 @@ space=Пространство
spacing=Поля
specialLink=Специальная ссылка
standard=Стандарт
-startDrawing=Start drawing
-stopDrawing=Stop drawing
+startDrawing=Начать рисовать
+stopDrawing=Прекратить рисовать
starting=Запуск
straight=Прямая
-strikethrough=Strikethrough
+strikethrough=Перечеркивание
strokeColor=Цвет линии
style=Стиль
subscript=Нижний индекс
summary=Сводка
superscript=Верхний индекс
support=Поддержка
-swimlaneDiagram=Swimlane Diagram
+swimlaneDiagram=Диаграмма "плавательной дорожки"
sysml=SysML
tags=Метки
table=Таблица
tables=Таблицы
-takeOver=Take Over
+takeOver=Перенять
targetSpacing=Отступ от конечного узла
template=Шаблон
templates=Шаблоны
@@ -729,7 +729,7 @@ title=Название
to=по
toBack=На задний план
toFront=На передний план
-tooLargeUseDownload=Too large, use download instead.
+tooLargeUseDownload=Слишком большой, вместо этого используйте загрузку.
toolbar=Панель инструментов
tooltips=Подсказки
top=Сверху
@@ -775,11 +775,11 @@ warning=Внимание
waypoints=Опорные точки
west=Запад
width=Ширина
-wiki=Wiki
+wiki=Вики
wordWrap=Перенос по словам
writingDirection=Направление текста
yes=Да
-yourEmailAddress=Ваш e-mail адрес
+yourEmailAddress=Ваш адрес электронной почты
zoom=Масштаб
zoomIn=Увеличить
zoomOut=Уменьшить
@@ -831,51 +831,51 @@ errorAuthOD=Ошибка при входе в OneDrive
officeMainHeader=Draw.io загружает диаграммы из OneDrive в ваш документ
officeStepsHeader=Это расширение выполняет следующие действия:
officeStep1=Подключается к OneDrive
-officeStep2=Select a draw.io diagram.
-officeStep3=Insert the diagram into the document.
-officeAuthPopupInfo=Please complete the authentication in the pop-up window.
-officeSelDiag=Select draw.io Diagram:
+officeStep2=Выберать диаграмму draw.io.
+officeStep3=Вставить диаграмму в документ
+officeAuthPopupInfo=Пожалуйста, закончите аутентификацию во всплывающем окне.
+officeSelDiag=Выбрать диаграмму draw.io:
files=Файлы
-shared=Shared
-sharepoint=Sharepoint
-officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
+shared=Общие
+sharepoint=SharePoint
+officeManualUpdateInst=Инструкция:скопируйте диаграмму draw.io из документа. Затем, в области ниже, нажмите правой кнопкой мыши и выберите "Вставить" из контекстного меню.
officeClickToEdit=Нажмите на значок, чтобы начать редактирование
pasteDiagram=Вставьте диаграмму draw.io здесь
connectOD=Соединить с OneDrive
-selectChildren=Select Children
-selectSiblings=Select Siblings
-selectParent=Select Parent
-selectDescendants=Select Descendants
-lastSaved=Last saved {1} ago
-resolve=Resolve
+selectChildren=Выбрать дочерний
+selectSiblings=Выбрать родственные
+selectParent=Выбрать родительский
+selectDescendants=Выбрать потомственные
+lastSaved=Последний {1} сохраненный назад
+resolve=Разрешить
reopen=Переоткрыть
-showResolved=Show Resolved
+showResolved=Показать разрешенные
reply=Ответить
objectNotFound=Объект не найден
reOpened=Переоткрыт
-markedAsResolved=Marked as resolved
-noCommentsFound=No comments found
+markedAsResolved=Отметить как разрешенный
+noCommentsFound=Комментариев не найдено
comments=Комментарии
timeAgo={1} назад
confluenceCloud=Confluence Cloud
libraries=Библиотеки
-confAnchor=Confluence Page Anchor
+confAnchor=Якорь страницы Confluence
confTimeout=The connection has timed out
confSrvTakeTooLong=The server at {1} is taking too long to respond.
confCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page
confSaveTry=Please save the page and try again.
confCannotGetID=Unable to determine page ID
confContactAdmin=Please contact your Confluence administrator.
-readErr=Read Error
-editingErr=Editing Error
+readErr=Ошибка чтения
+editingErr=Ошибка редактирования
confExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page
confEditedExt=Diagram/Page edited externally
diagNotFound=Диаграмма не найдена
confEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.
confCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.
-retBack=Вернуться
+retBack=Вернуться назад
confDiagNotPublished=The diagram does not belong to a published page
-createdByDraw=Created by draw.io
+createdByDraw=Создано draw.io
filenameShort=Filename too short
invalidChars=Недопустимые символы
alreadyExst={1} already exists
@@ -887,12 +887,12 @@ confDuplName=Имя диаграммы уже используется. Пожа
confSessionExpired=Кажется, время вашей сессии истекло. Войдите снова, чтобы продолжить работу
login=Войти
drawPrev=draw.io preview
-drawDiag=draw.io diagram
+drawDiag=диаграмма draw.io
invalidCallFnNotFound=Invalid Call: {1} not found
invalidCallErrOccured=Invalid Call: An error occurred, {1}
-anonymous=Anonymous
+anonymous=Аноним
confGotoPage=Go to containing page
-showComments=Show Comments
+showComments=Показать комментарии
confError=Ошибка: {1}
gliffyImport=Gliffy Import
gliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.
@@ -900,7 +900,7 @@ gliffyImportInst2=Please note that the import procedure will take some time and
startImport=Начать импорт
drawConfig=draw.io Configuration
customLib=Custom Libraries
-customTemp=Custom Templates
+customTemp=Пользовательские шаблоны
pageIdsExp=Page IDs Export
drawReindex=draw.io re-indexing (beta)
working=Working
@@ -908,29 +908,29 @@ drawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist
createConfSp=Create Config Space
unexpErrRefresh=Unexpected error, please refresh the page and try again.
configJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to
-thisPage=this page
+thisPage=эта страница
curCustLib=Current Custom Libraries
-libName=Library Name
+libName=Имя библиотеки
action=Action
drawConfID=draw.io Config ID
addLibInst=Click the "Add Library" button to upload a new library.
addLib=Add Library
customTempInst1=Custom templates are draw.io diagrams saved in children pages of
-customTempInst2=For more details, please refer to
-tempsPage=Templates page
+customTempInst2=Для больших подробностей пожалуйста, обратитесь к
+tempsPage=Страница шаблонов
pageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.
pageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.
-startExp=Start Export
+startExp=Начало экспорта
refreshDrawIndex=Refresh draw.io Diagrams Index
reindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.
reindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.
-startIndexing=Start Indexing
+startIndexing=Начало индексации
confAPageFoundFetch=Page "{1}" found. Fetching
confAAllDiagDone=All {1} diagrams processed. Process finished.
confAStartedProcessing=Started processing page "{1}"
confAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.
confAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.
-confAUpdatePageFailed=Updating page "{1}" failed.
+confAUpdatePageFailed=Обновление страницы "{1}" не выполнено.
confANoDiagFoundInPage=No {1} diagrams found in page "{2}".
confAFetchPageFailed=Fetching the page failed.
confANoDiagFound=No {1} diagrams found. Process finished.
@@ -938,44 +938,44 @@ confASearchFailed=Searching for {1} diagrams failed. Please try again later.
confAGliffyDiagFound={2} diagram "{1}" found. Importing
confAGliffyDiagImported={2} diagram "{1}" imported successfully.
confASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.
-confAImportedFromByDraw=Imported from "{1}" by draw.io
+confAImportedFromByDraw=Импортирование из "{1}" draw.io
confAImportGliffyFailed=Importing {2} diagram "{1}" failed.
confAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.
-confACheckBrokenDiagLnk=Checking for broken diagrams links.
+confACheckBrokenDiagLnk=Проверка на сломанные ссылки на диаграммы
confADelDiagLinkOf=Deleting diagram link of "{1}"
-confADupLnk=(duplicate link)
+confADupLnk=(дублирование ссылки)
confADelDiagLnkFailed=Deleting diagram link of "{1}" failed.
confAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}
-confADiagFoundIndex=Diagram "{1}" found. Indexing
-confADiagIndexSucc=Diagram "{1}" indexed successfully.
-confAIndexDiagFailed=Indexing diagram "{1}" failed.
+confADiagFoundIndex=Диаграмма "{1}" найдена. Индексация
+confADiagIndexSucc=Индексирование диаграммы "{1}" выполнено.
+confAIndexDiagFailed=Индексирование диаграммы "{1}" не выполнено.
confASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!
confADiagUptoDate=Diagram "{1}" is up to date.
confACheckPagesWDraw=Checking pages having draw.io diagrams.
confAErrOccured=Обнаружена ошибка!
savedSucc=Сохранение выполнено
-confASaveFailedErr=Saving Failed (Unexpected Error)
+confASaveFailedErr=Сохранение не выполнено (непредвиденная ошибка)
character=Character
-confAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment
-confALibPageDesc=This page contains draw.io custom libraries as attachments
-confATempPageDesc=This page contains draw.io custom templates as attachments
+confAConfPageDesc=Эта страница содержит файл настроек draw.io (настроичный .json) как вложение
+confALibPageDesc=Эта страница содержит пользовательские библиотеки draw.io как вложение
+confATempPageDesc=Эта страница содержит пользовательские шаблоны draw.io как вложение
working=Working
-confAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates
-confANoCustLib=No Custom Libraries
+confAConfSpaceDesc=Это пространство используется как хранилище настроичных файлов и пользовательских библиотек/шаблонов draw.io
+confANoCustLib=Нет пользовательских библиотек
delFailed=Ошибка при удалении!
-showID=Вывести ID
+showID=Вывести идентификатор
confAIncorrectLibFileType=Неправильный тип файла. Для библиотек используется формат XML
uploading=Идет загрузка
confALibExist=Библиотека уже существует
confAUploadSucc=Загрузка выполнена
-confAUploadFailErr=Неизвестная ошибка при загрузке
+confAUploadFailErr=Загрузка не выполнена (непредвиденная ошибка)
hiResPreview=Предварительный просмотр — высокое разрешение
-officeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.
+officeNotLoggedGD=Вы не вошли в Google Диск. Пожалуйста, сперва откройте панель draw.io, а затем войдите.
officePopupInfo=Пожалуйста, завершите действия во всплывающем окне
pickODFile=Выбрать файл из OneDrive
-pickGDriveFile=Выбрать файл из Google Drive
+pickGDriveFile=Выбрать файл из Google Диск
pickDeviceFile=Выбрать файл на устройстве
-vsdNoConfig="vsdurl" is not configured
+vsdNoConfig="ссылка vsd" не настроена
ruler=Ruler
units=Единицы измерения
points=Пункты (pt)
@@ -992,7 +992,7 @@ confAProcessDrawDiagDone=Finished processing imported draw.io diagrams
confAProcessImpPages=Started processing imported pages
confAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"
confAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"
-confAImpDiagram=Importing diagram "{1}"
+confAImpDiagram=Импортирование диаграммы "{1}"
confAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported.
confAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.
confAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.
@@ -1012,8 +1012,8 @@ pageIdsExpTrg=Export target
confALucidDiagImgImported={2} diagram "{1}" image extracted successfully
confASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed
confGetInfoFailed=Fetching file info from {1} failed.
-confCheckCacheFailed=Cannot get cached file info.
-confReadFileErr=Cannot read "{1}" file from {2}.
+confCheckCacheFailed=Невозможно получить информацию о кэшированном файле
+confReadFileErr=Невозможно прочесть файл "{1}" из {2}.
confSaveCacheFailed=Неизвестная ошибка. Невозможно сохранить файл из кэша
orgChartType=Org Chart Type
linear=Linear
@@ -1027,54 +1027,54 @@ smart=Smart
parentChildSpacing=Parent Child Spacing
siblingSpacing=Sibling Spacing
confNoPermErr=Sorry, you don't have enough permissions to view this embedded diagram from page {1}
-copyAsImage=Copy as Image
+copyAsImage=Копировать как изображение
lucidImport=Lucidchart Import
lucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.
-installFirst=Please install {1} first
-drawioChromeExt=draw.io Chrome Extension
-loginFirstThen=Please login to {1} first, then {2}
+installFirst=Пожалуйста, сначала установите {1}
+drawioChromeExt=Расширение draw.io для Chrome
+loginFirstThen=Пожалуйста, сначала войдите в {1}, затем в {2}
errFetchDocList=Error: Couldn't fetch documents list
-builtinPlugins=Built-in Plugins
-extPlugins=External Plugins
-backupFound=Backup file found
+builtinPlugins=Встроенные расширения
+extPlugins=Внешние расширения
+backupFound=Файл резервной копии найден
chromeOnly=This feature only works in Google Chrome
-msgDeleted=This message has been deleted
+msgDeleted=Это сообщение было удалено
confAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.
-confAErrCheckDrawDiag=Cannot check diagram {1}
+confAErrCheckDrawDiag=Невозможно проверить диаграмму {1}
confAErrFetchPageList=Error fetching pages list
confADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes
-invalidSel=Invalid selection
-diagNameEmptyErr=Diagram name cannot be empty
-openDiagram=Open Diagram
-newDiagram=New diagram
+invalidSel=Неверный выбор
+diagNameEmptyErr=Имя диаграммы не должно быть пустым
+openDiagram=Открыть диаграмму
+newDiagram=Новая диаграмма
editable=Editable
confAReimportStarted=Re-import {1} diagrams started...
spaceFilter=Filter by spaces
curViewState=Current Viewer State
-pageLayers=Page and Layers
-customize=Customize
+pageLayers=Страница и слои
+customize=Изменить
firstPage=First Page (All Layers)
curEditorState=Current Editor State
-noAnchorsFound=No anchors found
+noAnchorsFound=Якорей не найдено
attachment=Attachment
-curDiagram=Current Diagram
+curDiagram=Текущая диаграмма
recentDiags=Recent Diagrams
csvImport=CSV Import
chooseFile=Choose a file...
-choose=Choose
+choose=Выбрать
gdriveFname=Google Drive filename
widthOfViewer=Width of the viewer (px)
heightOfViewer=Height of the viewer (px)
autoSetViewerSize=Automatically set the size of the viewer
thumbnail=Thumbnail
prevInDraw=Preview in draw.io
-onedriveFname=OneDrive filename
-diagFname=Diagram filename
+onedriveFname=Имя файла в OneDrive
+diagFname=Имя файла диаграммы
diagUrl=Diagram URL
-showDiag=Show Diagram
+showDiag=Показать диаграмму
diagPreview=Diagram Preview
-csvFileUrl=CSV File URL
-generate=Generate
+csvFileUrl=Ссылка на CSV файл
+generate=Сгенерировать
selectDiag2Insert=Please select a diagram to insert it.
errShowingDiag=Unexpected error. Cannot show diagram
noRecentDiags=No recent diagrams found
@@ -1082,42 +1082,42 @@ fetchingRecentFailed=Failed to fetch recent diagrams
useSrch2FindDiags=Use the search box to find draw.io diagrams
cantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.
cantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.
-searchFailed=Searching failed. Please try again later.
+searchFailed=Поиск не выполнен. Пожайлуста, попробуйте снова позже.
plsTypeStr=Please type a search string.
unsupportedFileChckUrl=Unsupported file. Please check the specified URL
diagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL
csvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL
-cantReadUpload=Cannot read the uploaded diagram
-select=Select
+cantReadUpload=Не возможно прочесть загруженную диаграмму
+select=Выбрать
errCantGetIdType=Unexpected Error: Cannot get content id or type.
errGAuthWinBlocked=Error: Google Authentication window blocked
authDrawAccess=Authorize draw.io to access {1}
connTimeout=The connection has timed out
errAuthSrvc=Error authenticating to {1}
-plsSelectFile=Please select a file
+plsSelectFile=Пожалуйста, выберите файл
mustBgtZ={1} must be greater than zero
cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
errSavingTryLater=Error occured during saving, please try again later.
-plsEnterFld=Please enter {1}
-invalidDiagUrl=Invalid Diagram URL
-unsupportedVsdx=Unsupported vsdx file
-unsupportedImg=Unsupported image file
-unsupportedFormat=Unsupported file format
+plsEnterFld=Пожалуйста, введите {1}
+invalidDiagUrl=Неправильная ссылка на диаграмму
+unsupportedVsdx=Неподдерживаемый vsdx файл
+unsupportedImg=Неподдерживаемый формат изображения
+unsupportedFormat=Неподдерживаемый формат файла
plsSelectSingleFile=Please select a single file only
attCorrupt=Attachment file "'{1}" is corrupted
loadAttFailed=Failed to load attachment "{1}"
embedDrawDiag=Embed draw.io Diagram
-addDiagram=Add Diagram
+addDiagram=Добавить диаграмму
embedDiagram=Embed Diagram
editOwningPg=Edit owning page
deepIndexing=Deep Indexing (Index diagrams that aren't used in any page also)
-confADeepIndexStarted=Deep Indexing Started
-confADeepIndexDone=Deep Indexing Done
-officeNoDiagramsSelected=No diagrams found in the selection
-officeNoDiagramsInDoc=No diagrams found in the document
+confADeepIndexStarted=Глубокое индексирование начато
+confADeepIndexDone=Глубокое индексировани закончено
+officeNoDiagramsSelected=Диаграмм в этой секции не найдено
+officeNoDiagramsInDoc=Диаграмм в этом документе не найдено
officeNotSupported=This feature is not supported in this host application
someImagesFailed={1} out of {2} failed due to the following errors
importingNoUsedDiagrams=Importing {1} Diagrams not used in pages
@@ -1125,17 +1125,17 @@ importingDrafts=Importing {1} Diagrams in drafts
processingDrafts=Processing drafts
updatingDrafts=Updating drafts
updateDrafts=Update drafts
-notifications=Notifications
-drawioImp=draw.io Import
-confALibsImp=Importing draw.io Libraries
+notifications=Уведомления
+drawioImp=Импортировать draw.io
+confALibsImp=Импортирование библиотек draw.io
confALibsImpFailed=Importing {1} library failed
-contributors=Contributors
-drawDiagrams=draw.io Diagrams
+contributors=Участники
+drawDiagrams=Диаграммы draw.io
errFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.
confACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.
confADelBrokenEmbedDiagLnk=Removing broken embedded diagram links
-replaceWith=Replace with
-replaceAll=Replace All
+replaceWith=Заменит с
+replaceAll=Заменить всё
confASkipDiagModified=Skipped "{1}" as it was modified after initial import
-replFind=Replace/Find
+replFind=Заменить/Найти
matchesRepl={1} matches replaced
diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js
index 4862a8cf..472a1a0b 100644
--- a/src/main/webapp/service-worker.js
+++ b/src/main/webapp/service-worker.js
@@ -1,2 +1,2 @@
-if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let i=Promise.resolve();return r[e]||(i=new Promise((async i=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=i}else importScripts(e),i()}))),i.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},i=(i,r)=>{Promise.all(i.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(i)};self.define=(i,a,c)=>{r[i]||(r[i]=Promise.resolve().then((()=>{let r={};const s={uri:location.origin+i.slice(1)};return Promise.all(a.map((i=>{switch(i){case"exports":return r;case"module":return s;default:return e(i)}}))).then((e=>{const i=c(...e);return r.default||(r.default=i),r}))})))}}define("./service-worker.js",["./workbox-f163abaa"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"js/app.min.js",revision:"69b98d82c1dff6131c20bbca8b49512e"},{url:"js/extensions.min.js",revision:"63cd63b173d18730929fb832c396e2ce"},{url:"js/stencils.min.js",revision:"4e7448cd52e7be7804236973ff1c37b0"},{url:"js/shapes-14-6-5.min.js",revision:"2a45abd06dfe78e69135e9f87f9b78d3"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"6d4fee0a8111a8faf43063d25ceea2dc"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"b83ab40a56fdf706d7e633e7c30db289"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"87d5d01385c5d0f0c4c4f5d0f3532826"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"d82b9c14d7a069efabef719a8a5f3975"},{url:"js/viewer-static.min.js",revision:"67e27e7bc8a6d9f267b224520fd7ac68"},{url:"connect/jira/editor-1-3-3.html",revision:"fb7e91ab8890425d55f0122a01cc5b20"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"9020fb8d69a51d0162b8dfd938315259"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"c58a7c55a335f49d84bc4b1aac9885aa"},{url:"connect/jira/viewerPanel.js",revision:"32763e62c3a7498a8ee479fee8a55bb7"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"435d01373a459c134b05b6640c88c327"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{url:"connect/jira/fullscreen-viewer.js",revision:"bd97b40b9dc692b1b696b188263799ff"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"159835ebab73810cc3f4fea9d904fab6"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"e88b96bfc81ee9278c804f67b5f96b04"},{url:"connect/new_common/cac.js",revision:"b1eb16ac1824f26824c748e8b8028e30"},{url:"connect/gdrive_common/gac.js",revision:"06a30c8936357c186240e9a18a1cd34c"},{url:"connect/onedrive_common/ac.js",revision:"994c3113d437180945c51e63e6a9b106"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"8527f67e207375c0654e19df4cb977cc"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c154ee66bab65cd0e476c1d64c64cb8d"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"689fa63fd3a384662b4199f6e4a5b5c1"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"259248f0077c6506703d5b4ecaff36dc"},{url:"connect/confluence/includeDiagram.html",revision:"9f0658477ece6384b7fb75eb769e54bc"},{url:"connect/confluence/macro-editor.js",revision:"9b1c5395a3c3ee9b7d41873f37fc7875"},{url:"math/MathJax.js",revision:"b2c103388b71bb3d11cbf9aa45fe9b68"},{url:"math/config/TeX-MML-AM_SVG-full.js",revision:"d5cb8ac04050983170ae4af145bc66ff"},{url:"math/jax/output/SVG/fonts/TeX/fontdata.js",revision:"495e5a410955d1b6178870e605890ede"},{url:"math/jax/element/mml/optable/BasicLatin.js",revision:"cac9b2e71382e62270baa55fab07cc13"},{url:"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js",revision:"e3e5e4d5924beed29f0844550b5c8f46"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js",revision:"0767cbad7275b53da128e7e5e1109f7c"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js",revision:"346302a5c5ee00e01c302148c56dbfe3"},{url:"resources/dia.txt",revision:"de246c361e16f1912e18183e3a4920f2"},{url:"resources/dia_am.txt",revision:"319cda81e8094a9c7c5c71a575412878"},{url:"resources/dia_ar.txt",revision:"51b81c0e5be37b236fbad205bd705e28"},{url:"resources/dia_bg.txt",revision:"3fcebf558a853aa5525df756d14c911e"},{url:"resources/dia_bn.txt",revision:"112e4e442c4c5e106f56f20916df0991"},{url:"resources/dia_bs.txt",revision:"9aadd9262e43328c24c39e10fb9e07b8"},{url:"resources/dia_ca.txt",revision:"8e27654b5bccb25fd64bd5ca25dd457d"},{url:"resources/dia_cs.txt",revision:"ff23418a1fc72c3dc823c8a36ef045cb"},{url:"resources/dia_da.txt",revision:"2d595423e7cae28aa40c5fb446f6c607"},{url:"resources/dia_de.txt",revision:"67811638a22c88cadbeb70888ee70c97"},{url:"resources/dia_el.txt",revision:"b7874896dc88731e1a4539e2692e25eb"},{url:"resources/dia_eo.txt",revision:"ad3e60c28997ac53d81668657c270658"},{url:"resources/dia_es.txt",revision:"6573b9fc17d5790e3657f1951d6c1401"},{url:"resources/dia_et.txt",revision:"b5deb9abd85d94ac3e46277417f35759"},{url:"resources/dia_eu.txt",revision:"dbb688e823a11c189d1e303208367ee4"},{url:"resources/dia_fa.txt",revision:"3b20a335c50dbe4a47ea8af0128d0073"},{url:"resources/dia_fi.txt",revision:"806b7c2722ba3cacd4cd3c2df50628a6"},{url:"resources/dia_fil.txt",revision:"afa78012fb16c8047e6bb3b125e7e3f8"},{url:"resources/dia_fr.txt",revision:"2fcf905f2477fe678174f59fc4566386"},{url:"resources/dia_gl.txt",revision:"40c344f29c0c7549293726ea2a32e43e"},{url:"resources/dia_gu.txt",revision:"3455765ac051d47f0d6cef77e6275021"},{url:"resources/dia_he.txt",revision:"c4ca85c6f25ef6988c368c604c577571"},{url:"resources/dia_hi.txt",revision:"40daf9d70cafafcccad4bdb2c87f45ea"},{url:"resources/dia_hr.txt",revision:"3d5d2e46e04888fe98a675e7fff45b8c"},{url:"resources/dia_hu.txt",revision:"6675468a6d69212cc91ca93868040757"},{url:"resources/dia_id.txt",revision:"5f205ce5f703ac8ea5a698bd56c51f93"},{url:"resources/dia_it.txt",revision:"e81fb84f34d06de17610143daa6a3429"},{url:"resources/dia_ja.txt",revision:"ea686c92f9d42f908a4488a9d5814a1f"},{url:"resources/dia_kn.txt",revision:"78d66867fb8ffd7003f73bbd62334bb8"},{url:"resources/dia_ko.txt",revision:"6362bcb7a531ba3bde5e52d61b4336f8"},{url:"resources/dia_lt.txt",revision:"1b55f2713d7492ff703016ce0d90058b"},{url:"resources/dia_lv.txt",revision:"b79c9f33c8192f4b30926705706095ed"},{url:"resources/dia_ml.txt",revision:"ed7251d27f886385f1e5245fb58a1675"},{url:"resources/dia_mr.txt",revision:"811a4568743ea874ee2f72337c76b6cb"},{url:"resources/dia_ms.txt",revision:"1f4491f409b4863abf97682f1a141c18"},{url:"resources/dia_my.txt",revision:"de246c361e16f1912e18183e3a4920f2"},{url:"resources/dia_nl.txt",revision:"a74e5a89ad9b7aa6cdd18ed906376b11"},{url:"resources/dia_no.txt",revision:"9e4f174a779f84547eab04845b10959c"},{url:"resources/dia_pl.txt",revision:"892b36582564c1c5f0a58900ef06c0ff"},{url:"resources/dia_pt-br.txt",revision:"f259a247d5bc5ff41b12350311d2a1ba"},{url:"resources/dia_pt.txt",revision:"0d587498ac46c75f71ad3344e671efd4"},{url:"resources/dia_ro.txt",revision:"e4061120e72f2ce7cd2e42b0d804e2ef"},{url:"resources/dia_ru.txt",revision:"4eda1973968106bf8b8d2ddb6146b265"},{url:"resources/dia_si.txt",revision:"de246c361e16f1912e18183e3a4920f2"},{url:"resources/dia_sk.txt",revision:"23fe3b51393d6215ce1d1cec197013cf"},{url:"resources/dia_sl.txt",revision:"06ef097b79b01e95d63229ca54d6121b"},{url:"resources/dia_sr.txt",revision:"a9b05944d2b1dc81b45dbf81ccbe43dc"},{url:"resources/dia_sv.txt",revision:"23cc1ef6bdd68e8ffa7a22be808dcfcb"},{url:"resources/dia_sw.txt",revision:"a10933a009fabc446dd1a73b7b3ee5d6"},{url:"resources/dia_ta.txt",revision:"161437618c5c5178ff4f37cf7a41cc43"},{url:"resources/dia_te.txt",revision:"7348773221051ac18ad4d7bc10a1b7f6"},{url:"resources/dia_th.txt",revision:"d8fbd10e5331b2fb11401ebdd3c0a09b"},{url:"resources/dia_tr.txt",revision:"6e5deb8e8e688794155ed347ce31128f"},{url:"resources/dia_uk.txt",revision:"8d6dad2deb405bc51eda95a24e25a07c"},{url:"resources/dia_vi.txt",revision:"4a1991dcd8eb6a5fbe29f340a3be529e"},{url:"resources/dia_zh-tw.txt",revision:"33a98fb737c582518c6c1a762b715f45"},{url:"resources/dia_zh.txt",revision:"df7266a624e3a967e9bcd09c94dfbba3"},{url:"favicon.ico",revision:"fab2d88b37c72d83607527573de45281"},{url:"images/manifest.json",revision:"c6236bde53ed79aaaec60a1aca8ee2ef"},{url:"images/logo.png",revision:"89630b64b911ebe0daa3dfe442087cfa"},{url:"images/drawlogo.svg",revision:"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},{url:"images/drawlogo48.png",revision:"8b13428373aca67b895364d025f42417"},{url:"images/drawlogo-gray.svg",revision:"0aabacbc0873816e1e09e4736ae44c7d"},{url:"images/drawlogo-text-bottom.svg",revision:"f6c438823ab31f290940bd4feb8dd9c2"},{url:"images/logo-flat-small.png",revision:"4b178e59ff499d6dd1894fc498b59877"},{url:"images/apple-touch-icon.png",revision:"73da7989a23ce9a4be565ec65658a239"},{url:"images/favicon-16x16.png",revision:"1a79d5461a5d2bf21f6652e0ac20d6e5"},{url:"images/favicon-32x32.png",revision:"e3b92da2febe70bad5372f6f3474b034"},{url:"images/android-chrome-196x196.png",revision:"38b32aefe5d1456144ae00d2c67aab46"},{url:"images/android-chrome-512x512.png",revision:"959b5fac2453963ff6d60fb85e4b73fd"},{url:"images/delete.png",revision:"5f2350f2fd20f1a229637aed32ed8f29"},{url:"images/droptarget.png",revision:"bbf7f563fb6784de1ce96f329519b043"},{url:"images/help.png",revision:"9266c6c3915bd33c243d80037d37bf61"},{url:"images/download.png",revision:"35418dd7bd48d87502c71b578cc6c37f"},{url:"images/logo-flat.png",revision:"038070ab43aee6e54a791211859fc67b"},{url:"images/google-drive-logo.svg",revision:"5d9f2f5bbc7dcc252730a0072bb23059"},{url:"images/onedrive-logo.svg",revision:"3645b344ec0634c1290dd58d7dc87b97"},{url:"images/dropbox-logo.svg",revision:"e6be408c77cf9c82d41ac64fa854280a"},{url:"images/github-logo.svg",revision:"a1a999b69a275eac0cb918360ac05ae1"},{url:"images/gitlab-logo.svg",revision:"0faea8c818899e58533e153c44b10517"},{url:"images/trello-logo.svg",revision:"006fd0d7d70d7e95dc691674cb12e044"},{url:"images/osa_drive-harddisk.png",revision:"b954e1ae772087c5b4c6ae797e1f9649"},{url:"images/osa_database.png",revision:"c350d9d9b95f37b6cfe798b40ede5fb0"},{url:"images/google-drive-logo-white.svg",revision:"f329d8b1be7778515a85b93fc35d9f26"},{url:"images/dropbox-logo-white.svg",revision:"4ea8299ac3bc31a16f199ee3aec223bf"},{url:"images/onedrive-logo-white.svg",revision:"b3602fa0fc947009cff3f33a581cff4d"},{url:"images/github-logo-white.svg",revision:"537b1127b3ca0f95b45782d1304fb77a"},{url:"images/gitlab-logo-white.svg",revision:"5fede9ac2f394c716b8c23e3fddc3910"},{url:"images/trello-logo-white-orange.svg",revision:"e2a0a52ba3766682f138138d10a75eb5"},{url:"images/logo-confluence.png",revision:"ed1e55d44ae5eba8f999aba2c93e8331"},{url:"images/logo-jira.png",revision:"f8d460555a0d1f87cfd901e940666629"},{url:"images/clear.gif",revision:"db13c778e4382e0b55258d0f811d5d70"},{url:"images/spin.gif",revision:"487cbb40b9ced439aa1ad914e816d773"},{url:"images/checkmark.gif",revision:"ba764ce62f2bf952df5bbc2bb4d381c5"},{url:"images/hs.png",revision:"fefa1a03d92ebad25c88dca94a0b63db"},{url:"images/aui-wait.gif",revision:"5a474bcbd8d2f2826f03d10ea44bf60e"},{url:"mxgraph/css/common.css",revision:"b5b7280ec98671bb6c3847a36bc7ea12"},{url:"mxgraph/images/expanded.gif",revision:"2b67c2c035af1e9a5cc814f0d22074cf"},{url:"mxgraph/images/collapsed.gif",revision:"73cc826da002a3d740ca4ce6ec5c1f4a"},{url:"mxgraph/images/maximize.gif",revision:"5cd13d6925493ab51e876694cc1c2ec2"},{url:"mxgraph/images/minimize.gif",revision:"8957741b9b0f86af9438775f2aadbb54"},{url:"mxgraph/images/close.gif",revision:"8b84669812ac7382984fca35de8da48b"},{url:"mxgraph/images/resize.gif",revision:"a6477612b3567a34033f9cac6184eed3"},{url:"mxgraph/images/separator.gif",revision:"7819742ff106c97da7a801c2372bbbe5"},{url:"mxgraph/images/window.gif",revision:"fd9a21dd4181f98052a202a0a01f18ab"},{url:"mxgraph/images/window-title.gif",revision:"3fb1d6c43246cdf991a11dfe826dfe99"},{url:"mxgraph/images/button.gif",revision:"00759bdc3ad218fa739f584369541809"},{url:"mxgraph/images/point.gif",revision:"83a43717b284902442620f61bc4e9fa6"}],{ignoreURLParametersMatching:[/.*/]})}));
+if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let i=Promise.resolve();return r[e]||(i=new Promise((async i=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=i}else importScripts(e),i()}))),i.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},i=(i,r)=>{Promise.all(i.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(i)};self.define=(i,a,c)=>{r[i]||(r[i]=Promise.resolve().then((()=>{let r={};const s={uri:location.origin+i.slice(1)};return Promise.all(a.map((i=>{switch(i){case"exports":return r;case"module":return s;default:return e(i)}}))).then((e=>{const i=c(...e);return r.default||(r.default=i),r}))})))}}define("./service-worker.js",["./workbox-f163abaa"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"js/app.min.js",revision:"47d10cfb5fc761cba7d522bb3113349c"},{url:"js/extensions.min.js",revision:"63cd63b173d18730929fb832c396e2ce"},{url:"js/stencils.min.js",revision:"4e7448cd52e7be7804236973ff1c37b0"},{url:"js/shapes-14-6-5.min.js",revision:"2a45abd06dfe78e69135e9f87f9b78d3"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"6d4fee0a8111a8faf43063d25ceea2dc"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"b83ab40a56fdf706d7e633e7c30db289"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"87d5d01385c5d0f0c4c4f5d0f3532826"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"d82b9c14d7a069efabef719a8a5f3975"},{url:"js/viewer-static.min.js",revision:"111194926603529b6ccf2f5ce37f7041"},{url:"connect/jira/editor-1-3-3.html",revision:"fb7e91ab8890425d55f0122a01cc5b20"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"9020fb8d69a51d0162b8dfd938315259"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"c58a7c55a335f49d84bc4b1aac9885aa"},{url:"connect/jira/viewerPanel.js",revision:"32763e62c3a7498a8ee479fee8a55bb7"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"435d01373a459c134b05b6640c88c327"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{url:"connect/jira/fullscreen-viewer.js",revision:"bd97b40b9dc692b1b696b188263799ff"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"159835ebab73810cc3f4fea9d904fab6"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"e88b96bfc81ee9278c804f67b5f96b04"},{url:"connect/new_common/cac.js",revision:"b1eb16ac1824f26824c748e8b8028e30"},{url:"connect/gdrive_common/gac.js",revision:"06a30c8936357c186240e9a18a1cd34c"},{url:"connect/onedrive_common/ac.js",revision:"994c3113d437180945c51e63e6a9b106"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"8527f67e207375c0654e19df4cb977cc"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c154ee66bab65cd0e476c1d64c64cb8d"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"689fa63fd3a384662b4199f6e4a5b5c1"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"259248f0077c6506703d5b4ecaff36dc"},{url:"connect/confluence/includeDiagram.html",revision:"9f0658477ece6384b7fb75eb769e54bc"},{url:"connect/confluence/macro-editor.js",revision:"9b1c5395a3c3ee9b7d41873f37fc7875"},{url:"math/MathJax.js",revision:"b2c103388b71bb3d11cbf9aa45fe9b68"},{url:"math/config/TeX-MML-AM_SVG-full.js",revision:"d5cb8ac04050983170ae4af145bc66ff"},{url:"math/jax/output/SVG/fonts/TeX/fontdata.js",revision:"495e5a410955d1b6178870e605890ede"},{url:"math/jax/element/mml/optable/BasicLatin.js",revision:"cac9b2e71382e62270baa55fab07cc13"},{url:"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js",revision:"e3e5e4d5924beed29f0844550b5c8f46"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js",revision:"0767cbad7275b53da128e7e5e1109f7c"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js",revision:"346302a5c5ee00e01c302148c56dbfe3"},{url:"resources/dia.txt",revision:"de246c361e16f1912e18183e3a4920f2"},{url:"resources/dia_am.txt",revision:"319cda81e8094a9c7c5c71a575412878"},{url:"resources/dia_ar.txt",revision:"af5ae20cf47270d896a6cc554da0bb16"},{url:"resources/dia_bg.txt",revision:"3fcebf558a853aa5525df756d14c911e"},{url:"resources/dia_bn.txt",revision:"112e4e442c4c5e106f56f20916df0991"},{url:"resources/dia_bs.txt",revision:"9aadd9262e43328c24c39e10fb9e07b8"},{url:"resources/dia_ca.txt",revision:"8e27654b5bccb25fd64bd5ca25dd457d"},{url:"resources/dia_cs.txt",revision:"ff23418a1fc72c3dc823c8a36ef045cb"},{url:"resources/dia_da.txt",revision:"2d595423e7cae28aa40c5fb446f6c607"},{url:"resources/dia_de.txt",revision:"67811638a22c88cadbeb70888ee70c97"},{url:"resources/dia_el.txt",revision:"b7874896dc88731e1a4539e2692e25eb"},{url:"resources/dia_eo.txt",revision:"ad3e60c28997ac53d81668657c270658"},{url:"resources/dia_es.txt",revision:"ebe9a0534b72b4a8056ec9789916877b"},{url:"resources/dia_et.txt",revision:"b5deb9abd85d94ac3e46277417f35759"},{url:"resources/dia_eu.txt",revision:"dbb688e823a11c189d1e303208367ee4"},{url:"resources/dia_fa.txt",revision:"3b20a335c50dbe4a47ea8af0128d0073"},{url:"resources/dia_fi.txt",revision:"806b7c2722ba3cacd4cd3c2df50628a6"},{url:"resources/dia_fil.txt",revision:"afa78012fb16c8047e6bb3b125e7e3f8"},{url:"resources/dia_fr.txt",revision:"2fcf905f2477fe678174f59fc4566386"},{url:"resources/dia_gl.txt",revision:"40c344f29c0c7549293726ea2a32e43e"},{url:"resources/dia_gu.txt",revision:"3455765ac051d47f0d6cef77e6275021"},{url:"resources/dia_he.txt",revision:"c4ca85c6f25ef6988c368c604c577571"},{url:"resources/dia_hi.txt",revision:"40daf9d70cafafcccad4bdb2c87f45ea"},{url:"resources/dia_hr.txt",revision:"3d5d2e46e04888fe98a675e7fff45b8c"},{url:"resources/dia_hu.txt",revision:"6675468a6d69212cc91ca93868040757"},{url:"resources/dia_id.txt",revision:"5f205ce5f703ac8ea5a698bd56c51f93"},{url:"resources/dia_it.txt",revision:"e81fb84f34d06de17610143daa6a3429"},{url:"resources/dia_ja.txt",revision:"ea686c92f9d42f908a4488a9d5814a1f"},{url:"resources/dia_kn.txt",revision:"78d66867fb8ffd7003f73bbd62334bb8"},{url:"resources/dia_ko.txt",revision:"6362bcb7a531ba3bde5e52d61b4336f8"},{url:"resources/dia_lt.txt",revision:"1b55f2713d7492ff703016ce0d90058b"},{url:"resources/dia_lv.txt",revision:"b79c9f33c8192f4b30926705706095ed"},{url:"resources/dia_ml.txt",revision:"ed7251d27f886385f1e5245fb58a1675"},{url:"resources/dia_mr.txt",revision:"811a4568743ea874ee2f72337c76b6cb"},{url:"resources/dia_ms.txt",revision:"1f4491f409b4863abf97682f1a141c18"},{url:"resources/dia_my.txt",revision:"de246c361e16f1912e18183e3a4920f2"},{url:"resources/dia_nl.txt",revision:"a74e5a89ad9b7aa6cdd18ed906376b11"},{url:"resources/dia_no.txt",revision:"9e4f174a779f84547eab04845b10959c"},{url:"resources/dia_pl.txt",revision:"892b36582564c1c5f0a58900ef06c0ff"},{url:"resources/dia_pt-br.txt",revision:"f259a247d5bc5ff41b12350311d2a1ba"},{url:"resources/dia_pt.txt",revision:"0d587498ac46c75f71ad3344e671efd4"},{url:"resources/dia_ro.txt",revision:"e4061120e72f2ce7cd2e42b0d804e2ef"},{url:"resources/dia_ru.txt",revision:"9b04ae7aeb6dbf5ce07c690e3e4b8ec9"},{url:"resources/dia_si.txt",revision:"de246c361e16f1912e18183e3a4920f2"},{url:"resources/dia_sk.txt",revision:"23fe3b51393d6215ce1d1cec197013cf"},{url:"resources/dia_sl.txt",revision:"06ef097b79b01e95d63229ca54d6121b"},{url:"resources/dia_sr.txt",revision:"a9b05944d2b1dc81b45dbf81ccbe43dc"},{url:"resources/dia_sv.txt",revision:"23cc1ef6bdd68e8ffa7a22be808dcfcb"},{url:"resources/dia_sw.txt",revision:"a10933a009fabc446dd1a73b7b3ee5d6"},{url:"resources/dia_ta.txt",revision:"161437618c5c5178ff4f37cf7a41cc43"},{url:"resources/dia_te.txt",revision:"7348773221051ac18ad4d7bc10a1b7f6"},{url:"resources/dia_th.txt",revision:"d8fbd10e5331b2fb11401ebdd3c0a09b"},{url:"resources/dia_tr.txt",revision:"6e5deb8e8e688794155ed347ce31128f"},{url:"resources/dia_uk.txt",revision:"8d6dad2deb405bc51eda95a24e25a07c"},{url:"resources/dia_vi.txt",revision:"4a1991dcd8eb6a5fbe29f340a3be529e"},{url:"resources/dia_zh-tw.txt",revision:"33a98fb737c582518c6c1a762b715f45"},{url:"resources/dia_zh.txt",revision:"df7266a624e3a967e9bcd09c94dfbba3"},{url:"favicon.ico",revision:"fab2d88b37c72d83607527573de45281"},{url:"images/manifest.json",revision:"c6236bde53ed79aaaec60a1aca8ee2ef"},{url:"images/logo.png",revision:"89630b64b911ebe0daa3dfe442087cfa"},{url:"images/drawlogo.svg",revision:"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},{url:"images/drawlogo48.png",revision:"8b13428373aca67b895364d025f42417"},{url:"images/drawlogo-gray.svg",revision:"0aabacbc0873816e1e09e4736ae44c7d"},{url:"images/drawlogo-text-bottom.svg",revision:"f6c438823ab31f290940bd4feb8dd9c2"},{url:"images/logo-flat-small.png",revision:"4b178e59ff499d6dd1894fc498b59877"},{url:"images/apple-touch-icon.png",revision:"73da7989a23ce9a4be565ec65658a239"},{url:"images/favicon-16x16.png",revision:"1a79d5461a5d2bf21f6652e0ac20d6e5"},{url:"images/favicon-32x32.png",revision:"e3b92da2febe70bad5372f6f3474b034"},{url:"images/android-chrome-196x196.png",revision:"38b32aefe5d1456144ae00d2c67aab46"},{url:"images/android-chrome-512x512.png",revision:"959b5fac2453963ff6d60fb85e4b73fd"},{url:"images/delete.png",revision:"5f2350f2fd20f1a229637aed32ed8f29"},{url:"images/droptarget.png",revision:"bbf7f563fb6784de1ce96f329519b043"},{url:"images/help.png",revision:"9266c6c3915bd33c243d80037d37bf61"},{url:"images/download.png",revision:"35418dd7bd48d87502c71b578cc6c37f"},{url:"images/logo-flat.png",revision:"038070ab43aee6e54a791211859fc67b"},{url:"images/google-drive-logo.svg",revision:"5d9f2f5bbc7dcc252730a0072bb23059"},{url:"images/onedrive-logo.svg",revision:"3645b344ec0634c1290dd58d7dc87b97"},{url:"images/dropbox-logo.svg",revision:"e6be408c77cf9c82d41ac64fa854280a"},{url:"images/github-logo.svg",revision:"a1a999b69a275eac0cb918360ac05ae1"},{url:"images/gitlab-logo.svg",revision:"0faea8c818899e58533e153c44b10517"},{url:"images/trello-logo.svg",revision:"006fd0d7d70d7e95dc691674cb12e044"},{url:"images/osa_drive-harddisk.png",revision:"b954e1ae772087c5b4c6ae797e1f9649"},{url:"images/osa_database.png",revision:"c350d9d9b95f37b6cfe798b40ede5fb0"},{url:"images/google-drive-logo-white.svg",revision:"f329d8b1be7778515a85b93fc35d9f26"},{url:"images/dropbox-logo-white.svg",revision:"4ea8299ac3bc31a16f199ee3aec223bf"},{url:"images/onedrive-logo-white.svg",revision:"b3602fa0fc947009cff3f33a581cff4d"},{url:"images/github-logo-white.svg",revision:"537b1127b3ca0f95b45782d1304fb77a"},{url:"images/gitlab-logo-white.svg",revision:"5fede9ac2f394c716b8c23e3fddc3910"},{url:"images/trello-logo-white-orange.svg",revision:"e2a0a52ba3766682f138138d10a75eb5"},{url:"images/logo-confluence.png",revision:"ed1e55d44ae5eba8f999aba2c93e8331"},{url:"images/logo-jira.png",revision:"f8d460555a0d1f87cfd901e940666629"},{url:"images/clear.gif",revision:"db13c778e4382e0b55258d0f811d5d70"},{url:"images/spin.gif",revision:"487cbb40b9ced439aa1ad914e816d773"},{url:"images/checkmark.gif",revision:"ba764ce62f2bf952df5bbc2bb4d381c5"},{url:"images/hs.png",revision:"fefa1a03d92ebad25c88dca94a0b63db"},{url:"images/aui-wait.gif",revision:"5a474bcbd8d2f2826f03d10ea44bf60e"},{url:"mxgraph/css/common.css",revision:"b5b7280ec98671bb6c3847a36bc7ea12"},{url:"mxgraph/images/expanded.gif",revision:"2b67c2c035af1e9a5cc814f0d22074cf"},{url:"mxgraph/images/collapsed.gif",revision:"73cc826da002a3d740ca4ce6ec5c1f4a"},{url:"mxgraph/images/maximize.gif",revision:"5cd13d6925493ab51e876694cc1c2ec2"},{url:"mxgraph/images/minimize.gif",revision:"8957741b9b0f86af9438775f2aadbb54"},{url:"mxgraph/images/close.gif",revision:"8b84669812ac7382984fca35de8da48b"},{url:"mxgraph/images/resize.gif",revision:"a6477612b3567a34033f9cac6184eed3"},{url:"mxgraph/images/separator.gif",revision:"7819742ff106c97da7a801c2372bbbe5"},{url:"mxgraph/images/window.gif",revision:"fd9a21dd4181f98052a202a0a01f18ab"},{url:"mxgraph/images/window-title.gif",revision:"3fb1d6c43246cdf991a11dfe826dfe99"},{url:"mxgraph/images/button.gif",revision:"00759bdc3ad218fa739f584369541809"},{url:"mxgraph/images/point.gif",revision:"83a43717b284902442620f61bc4e9fa6"}],{ignoreURLParametersMatching:[/.*/]})}));
//# sourceMappingURL=service-worker.js.map
diff --git a/src/main/webapp/service-worker.js.map b/src/main/webapp/service-worker.js.map
index ba15e71f..9dbd6d94 100644
--- a/src/main/webapp/service-worker.js.map
+++ b/src/main/webapp/service-worker.js.map
@@ -1 +1 @@
-{"version":3,"file":"service-worker.js","sources":["../../../../../../private/var/folders/cv/_wml09cx4cd5ryt_r7z2tjjm0000gn/T/dd9a2bc3b0ee87fa7ea17d8d3d558337/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/usr/local/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/app.min.js\",\n \"revision\": \"69b98d82c1dff6131c20bbca8b49512e\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"63cd63b173d18730929fb832c396e2ce\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"4e7448cd52e7be7804236973ff1c37b0\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"2a45abd06dfe78e69135e9f87f9b78d3\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"6d4fee0a8111a8faf43063d25ceea2dc\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"b83ab40a56fdf706d7e633e7c30db289\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"87d5d01385c5d0f0c4c4f5d0f3532826\"\n },\n {\n \"url\": \"js/croppie/croppie.min.css\",\n \"revision\": \"fc297c9002c79c15a132f13ee3ec427e\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"d82b9c14d7a069efabef719a8a5f3975\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"67e27e7bc8a6d9f267b224520fd7ac68\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"fb7e91ab8890425d55f0122a01cc5b20\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"9020fb8d69a51d0162b8dfd938315259\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"c58a7c55a335f49d84bc4b1aac9885aa\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"32763e62c3a7498a8ee479fee8a55bb7\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"435d01373a459c134b05b6640c88c327\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"bd97b40b9dc692b1b696b188263799ff\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"c787357209cff2986dcca567b599e2ef\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"159835ebab73810cc3f4fea9d904fab6\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"e88b96bfc81ee9278c804f67b5f96b04\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"b1eb16ac1824f26824c748e8b8028e30\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"06a30c8936357c186240e9a18a1cd34c\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"994c3113d437180945c51e63e6a9b106\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"8527f67e207375c0654e19df4cb977cc\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c154ee66bab65cd0e476c1d64c64cb8d\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"689fa63fd3a384662b4199f6e4a5b5c1\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"259248f0077c6506703d5b4ecaff36dc\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"9f0658477ece6384b7fb75eb769e54bc\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"9b1c5395a3c3ee9b7d41873f37fc7875\"\n },\n {\n \"url\": \"math/MathJax.js\",\n \"revision\": \"b2c103388b71bb3d11cbf9aa45fe9b68\"\n },\n {\n \"url\": \"math/config/TeX-MML-AM_SVG-full.js\",\n \"revision\": \"d5cb8ac04050983170ae4af145bc66ff\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/fontdata.js\",\n \"revision\": \"495e5a410955d1b6178870e605890ede\"\n },\n {\n \"url\": \"math/jax/element/mml/optable/BasicLatin.js\",\n \"revision\": \"cac9b2e71382e62270baa55fab07cc13\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js\",\n \"revision\": \"e3e5e4d5924beed29f0844550b5c8f46\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js\",\n \"revision\": \"0767cbad7275b53da128e7e5e1109f7c\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js\",\n \"revision\": \"346302a5c5ee00e01c302148c56dbfe3\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"de246c361e16f1912e18183e3a4920f2\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"319cda81e8094a9c7c5c71a575412878\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"51b81c0e5be37b236fbad205bd705e28\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"3fcebf558a853aa5525df756d14c911e\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"112e4e442c4c5e106f56f20916df0991\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"9aadd9262e43328c24c39e10fb9e07b8\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"8e27654b5bccb25fd64bd5ca25dd457d\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"ff23418a1fc72c3dc823c8a36ef045cb\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"2d595423e7cae28aa40c5fb446f6c607\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"67811638a22c88cadbeb70888ee70c97\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"b7874896dc88731e1a4539e2692e25eb\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"ad3e60c28997ac53d81668657c270658\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"6573b9fc17d5790e3657f1951d6c1401\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"b5deb9abd85d94ac3e46277417f35759\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"dbb688e823a11c189d1e303208367ee4\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"3b20a335c50dbe4a47ea8af0128d0073\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"806b7c2722ba3cacd4cd3c2df50628a6\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"afa78012fb16c8047e6bb3b125e7e3f8\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"2fcf905f2477fe678174f59fc4566386\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"40c344f29c0c7549293726ea2a32e43e\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"3455765ac051d47f0d6cef77e6275021\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"c4ca85c6f25ef6988c368c604c577571\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"40daf9d70cafafcccad4bdb2c87f45ea\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"3d5d2e46e04888fe98a675e7fff45b8c\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"6675468a6d69212cc91ca93868040757\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"5f205ce5f703ac8ea5a698bd56c51f93\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"e81fb84f34d06de17610143daa6a3429\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"ea686c92f9d42f908a4488a9d5814a1f\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"78d66867fb8ffd7003f73bbd62334bb8\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"6362bcb7a531ba3bde5e52d61b4336f8\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"1b55f2713d7492ff703016ce0d90058b\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"b79c9f33c8192f4b30926705706095ed\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"ed7251d27f886385f1e5245fb58a1675\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"811a4568743ea874ee2f72337c76b6cb\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"1f4491f409b4863abf97682f1a141c18\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"de246c361e16f1912e18183e3a4920f2\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"a74e5a89ad9b7aa6cdd18ed906376b11\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"9e4f174a779f84547eab04845b10959c\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"892b36582564c1c5f0a58900ef06c0ff\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"f259a247d5bc5ff41b12350311d2a1ba\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"0d587498ac46c75f71ad3344e671efd4\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"e4061120e72f2ce7cd2e42b0d804e2ef\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"4eda1973968106bf8b8d2ddb6146b265\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"de246c361e16f1912e18183e3a4920f2\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"23fe3b51393d6215ce1d1cec197013cf\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"06ef097b79b01e95d63229ca54d6121b\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"a9b05944d2b1dc81b45dbf81ccbe43dc\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"23cc1ef6bdd68e8ffa7a22be808dcfcb\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"a10933a009fabc446dd1a73b7b3ee5d6\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"161437618c5c5178ff4f37cf7a41cc43\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"7348773221051ac18ad4d7bc10a1b7f6\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"d8fbd10e5331b2fb11401ebdd3c0a09b\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"6e5deb8e8e688794155ed347ce31128f\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"8d6dad2deb405bc51eda95a24e25a07c\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"4a1991dcd8eb6a5fbe29f340a3be529e\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"33a98fb737c582518c6c1a762b715f45\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"df7266a624e3a967e9bcd09c94dfbba3\"\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"fab2d88b37c72d83607527573de45281\"\n },\n {\n \"url\": \"images/manifest.json\",\n \"revision\": \"c6236bde53ed79aaaec60a1aca8ee2ef\"\n },\n {\n \"url\": \"images/logo.png\",\n \"revision\": \"89630b64b911ebe0daa3dfe442087cfa\"\n },\n {\n \"url\": \"images/drawlogo.svg\",\n \"revision\": \"4bf4d14ebcf072d8bd4c5a1c89e88fc6\"\n },\n {\n \"url\": \"images/drawlogo48.png\",\n \"revision\": \"8b13428373aca67b895364d025f42417\"\n },\n {\n \"url\": \"images/drawlogo-gray.svg\",\n \"revision\": \"0aabacbc0873816e1e09e4736ae44c7d\"\n },\n {\n \"url\": \"images/drawlogo-text-bottom.svg\",\n \"revision\": \"f6c438823ab31f290940bd4feb8dd9c2\"\n },\n {\n \"url\": \"images/logo-flat-small.png\",\n \"revision\": \"4b178e59ff499d6dd1894fc498b59877\"\n },\n {\n \"url\": \"images/apple-touch-icon.png\",\n \"revision\": \"73da7989a23ce9a4be565ec65658a239\"\n },\n {\n \"url\": \"images/favicon-16x16.png\",\n \"revision\": \"1a79d5461a5d2bf21f6652e0ac20d6e5\"\n },\n {\n \"url\": \"images/favicon-32x32.png\",\n \"revision\": \"e3b92da2febe70bad5372f6f3474b034\"\n },\n {\n \"url\": \"images/android-chrome-196x196.png\",\n \"revision\": \"38b32aefe5d1456144ae00d2c67aab46\"\n },\n {\n \"url\": \"images/android-chrome-512x512.png\",\n \"revision\": \"959b5fac2453963ff6d60fb85e4b73fd\"\n },\n {\n \"url\": \"images/delete.png\",\n \"revision\": \"5f2350f2fd20f1a229637aed32ed8f29\"\n },\n {\n \"url\": \"images/droptarget.png\",\n \"revision\": \"bbf7f563fb6784de1ce96f329519b043\"\n },\n {\n \"url\": \"images/help.png\",\n \"revision\": \"9266c6c3915bd33c243d80037d37bf61\"\n },\n {\n \"url\": \"images/download.png\",\n \"revision\": \"35418dd7bd48d87502c71b578cc6c37f\"\n },\n {\n \"url\": \"images/logo-flat.png\",\n \"revision\": \"038070ab43aee6e54a791211859fc67b\"\n },\n {\n \"url\": \"images/google-drive-logo.svg\",\n \"revision\": \"5d9f2f5bbc7dcc252730a0072bb23059\"\n },\n {\n \"url\": \"images/onedrive-logo.svg\",\n \"revision\": \"3645b344ec0634c1290dd58d7dc87b97\"\n },\n {\n \"url\": \"images/dropbox-logo.svg\",\n \"revision\": \"e6be408c77cf9c82d41ac64fa854280a\"\n },\n {\n \"url\": \"images/github-logo.svg\",\n \"revision\": \"a1a999b69a275eac0cb918360ac05ae1\"\n },\n {\n \"url\": \"images/gitlab-logo.svg\",\n \"revision\": \"0faea8c818899e58533e153c44b10517\"\n },\n {\n \"url\": \"images/trello-logo.svg\",\n \"revision\": \"006fd0d7d70d7e95dc691674cb12e044\"\n },\n {\n \"url\": \"images/osa_drive-harddisk.png\",\n \"revision\": \"b954e1ae772087c5b4c6ae797e1f9649\"\n },\n {\n \"url\": \"images/osa_database.png\",\n \"revision\": \"c350d9d9b95f37b6cfe798b40ede5fb0\"\n },\n {\n \"url\": \"images/google-drive-logo-white.svg\",\n \"revision\": \"f329d8b1be7778515a85b93fc35d9f26\"\n },\n {\n \"url\": \"images/dropbox-logo-white.svg\",\n \"revision\": \"4ea8299ac3bc31a16f199ee3aec223bf\"\n },\n {\n \"url\": \"images/onedrive-logo-white.svg\",\n \"revision\": \"b3602fa0fc947009cff3f33a581cff4d\"\n },\n {\n \"url\": \"images/github-logo-white.svg\",\n \"revision\": \"537b1127b3ca0f95b45782d1304fb77a\"\n },\n {\n \"url\": \"images/gitlab-logo-white.svg\",\n \"revision\": \"5fede9ac2f394c716b8c23e3fddc3910\"\n },\n {\n \"url\": \"images/trello-logo-white-orange.svg\",\n \"revision\": \"e2a0a52ba3766682f138138d10a75eb5\"\n },\n {\n \"url\": \"images/logo-confluence.png\",\n \"revision\": \"ed1e55d44ae5eba8f999aba2c93e8331\"\n },\n {\n \"url\": \"images/logo-jira.png\",\n \"revision\": \"f8d460555a0d1f87cfd901e940666629\"\n },\n {\n \"url\": \"images/clear.gif\",\n \"revision\": \"db13c778e4382e0b55258d0f811d5d70\"\n },\n {\n \"url\": \"images/spin.gif\",\n \"revision\": \"487cbb40b9ced439aa1ad914e816d773\"\n },\n {\n \"url\": \"images/checkmark.gif\",\n \"revision\": \"ba764ce62f2bf952df5bbc2bb4d381c5\"\n },\n {\n \"url\": \"images/hs.png\",\n \"revision\": \"fefa1a03d92ebad25c88dca94a0b63db\"\n },\n {\n \"url\": \"images/aui-wait.gif\",\n \"revision\": \"5a474bcbd8d2f2826f03d10ea44bf60e\"\n },\n {\n \"url\": \"mxgraph/css/common.css\",\n \"revision\": \"b5b7280ec98671bb6c3847a36bc7ea12\"\n },\n {\n \"url\": \"mxgraph/images/expanded.gif\",\n \"revision\": \"2b67c2c035af1e9a5cc814f0d22074cf\"\n },\n {\n \"url\": \"mxgraph/images/collapsed.gif\",\n \"revision\": \"73cc826da002a3d740ca4ce6ec5c1f4a\"\n },\n {\n \"url\": \"mxgraph/images/maximize.gif\",\n \"revision\": \"5cd13d6925493ab51e876694cc1c2ec2\"\n },\n {\n \"url\": \"mxgraph/images/minimize.gif\",\n \"revision\": \"8957741b9b0f86af9438775f2aadbb54\"\n },\n {\n \"url\": \"mxgraph/images/close.gif\",\n \"revision\": \"8b84669812ac7382984fca35de8da48b\"\n },\n {\n \"url\": \"mxgraph/images/resize.gif\",\n \"revision\": \"a6477612b3567a34033f9cac6184eed3\"\n },\n {\n \"url\": \"mxgraph/images/separator.gif\",\n \"revision\": \"7819742ff106c97da7a801c2372bbbe5\"\n },\n {\n \"url\": \"mxgraph/images/window.gif\",\n \"revision\": \"fd9a21dd4181f98052a202a0a01f18ab\"\n },\n {\n \"url\": \"mxgraph/images/window-title.gif\",\n \"revision\": \"3fb1d6c43246cdf991a11dfe826dfe99\"\n },\n {\n \"url\": \"mxgraph/images/button.gif\",\n \"revision\": \"00759bdc3ad218fa739f584369541809\"\n },\n {\n \"url\": \"mxgraph/images/point.gif\",\n \"revision\": \"83a43717b284902442620f61bc4e9fa6\"\n }\n], {\n \"ignoreURLParametersMatching\": [/.*/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,yBACK,oCAEd,KACS,gCACK,oCAEd,KACS,8BACK,oCAEd,KACS,mCACK,oCAEd,KACS,4BACK,oCAEd,KACS,sBACK,oCAEd,KACS,qBACK,oCAEd,KACS,kCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,sCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,mCACK,oCAEd,KACS,0CACK,oCAEd,KACS,gDACK,oCAEd,KACS,oDACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kDACK,oCAEd,KACS,6CACK,oCAEd,KACS,kCACK,oCAEd,KACS,qCACK,oCAEd,KACS,kCACK,oCAEd,KACS,oDACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,yCACK,oCAEd,KACS,6CACK,oCAEd,KACS,wCACK,oCAEd,KACS,iDACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,kDACK,oCAEd,KACS,8CACK,oCAEd,KACS,2BACK,oCAEd,KACS,8CACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,+DACK,oCAEd,KACS,2EACK,oCAEd,KACS,wEACK,oCAEd,KACS,6BACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,iCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,uBACK,oCAEd,KACS,gCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,iCACK,oCAEd,KACS,oCACK,oCAEd,KACS,2CACK,oCAEd,KACS,sCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,oCACK,oCAEd,KACS,6CACK,oCAEd,KACS,6CACK,oCAEd,KACS,6BACK,oCAEd,KACS,iCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,gCACK,oCAEd,KACS,wCACK,oCAEd,KACS,oCACK,oCAEd,KACS,mCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,8CACK,oCAEd,KACS,yCACK,oCAEd,KACS,0CACK,oCAEd,KACS,wCACK,oCAEd,KACS,wCACK,oCAEd,KACS,+CACK,oCAEd,KACS,sCACK,oCAEd,KACS,gCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,oCAEd,KACS,yBACK,oCAEd,KACS,+BACK,oCAEd,KACS,kCACK,oCAEd,KACS,uCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,qCACK,oCAEd,KACS,2CACK,oCAEd,KACS,qCACK,oCAEd,KACS,oCACK,qCAEb,6BAC8B,CAAC"} \ No newline at end of file
+{"version":3,"file":"service-worker.js","sources":["../../../../../../private/var/folders/cv/_wml09cx4cd5ryt_r7z2tjjm0000gn/T/a8327b50148134782bd9e4f6dfedde61/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/usr/local/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/app.min.js\",\n \"revision\": \"47d10cfb5fc761cba7d522bb3113349c\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"63cd63b173d18730929fb832c396e2ce\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"4e7448cd52e7be7804236973ff1c37b0\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"2a45abd06dfe78e69135e9f87f9b78d3\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"6d4fee0a8111a8faf43063d25ceea2dc\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"b83ab40a56fdf706d7e633e7c30db289\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"87d5d01385c5d0f0c4c4f5d0f3532826\"\n },\n {\n \"url\": \"js/croppie/croppie.min.css\",\n \"revision\": \"fc297c9002c79c15a132f13ee3ec427e\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"d82b9c14d7a069efabef719a8a5f3975\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"111194926603529b6ccf2f5ce37f7041\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"fb7e91ab8890425d55f0122a01cc5b20\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"9020fb8d69a51d0162b8dfd938315259\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"c58a7c55a335f49d84bc4b1aac9885aa\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"32763e62c3a7498a8ee479fee8a55bb7\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"435d01373a459c134b05b6640c88c327\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"bd97b40b9dc692b1b696b188263799ff\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"c787357209cff2986dcca567b599e2ef\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"159835ebab73810cc3f4fea9d904fab6\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"e88b96bfc81ee9278c804f67b5f96b04\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"b1eb16ac1824f26824c748e8b8028e30\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"06a30c8936357c186240e9a18a1cd34c\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"994c3113d437180945c51e63e6a9b106\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"8527f67e207375c0654e19df4cb977cc\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c154ee66bab65cd0e476c1d64c64cb8d\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"689fa63fd3a384662b4199f6e4a5b5c1\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"259248f0077c6506703d5b4ecaff36dc\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"9f0658477ece6384b7fb75eb769e54bc\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"9b1c5395a3c3ee9b7d41873f37fc7875\"\n },\n {\n \"url\": \"math/MathJax.js\",\n \"revision\": \"b2c103388b71bb3d11cbf9aa45fe9b68\"\n },\n {\n \"url\": \"math/config/TeX-MML-AM_SVG-full.js\",\n \"revision\": \"d5cb8ac04050983170ae4af145bc66ff\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/fontdata.js\",\n \"revision\": \"495e5a410955d1b6178870e605890ede\"\n },\n {\n \"url\": \"math/jax/element/mml/optable/BasicLatin.js\",\n \"revision\": \"cac9b2e71382e62270baa55fab07cc13\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js\",\n \"revision\": \"e3e5e4d5924beed29f0844550b5c8f46\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js\",\n \"revision\": \"0767cbad7275b53da128e7e5e1109f7c\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js\",\n \"revision\": \"346302a5c5ee00e01c302148c56dbfe3\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"de246c361e16f1912e18183e3a4920f2\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"319cda81e8094a9c7c5c71a575412878\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"af5ae20cf47270d896a6cc554da0bb16\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"3fcebf558a853aa5525df756d14c911e\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"112e4e442c4c5e106f56f20916df0991\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"9aadd9262e43328c24c39e10fb9e07b8\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"8e27654b5bccb25fd64bd5ca25dd457d\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"ff23418a1fc72c3dc823c8a36ef045cb\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"2d595423e7cae28aa40c5fb446f6c607\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"67811638a22c88cadbeb70888ee70c97\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"b7874896dc88731e1a4539e2692e25eb\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"ad3e60c28997ac53d81668657c270658\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"ebe9a0534b72b4a8056ec9789916877b\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"b5deb9abd85d94ac3e46277417f35759\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"dbb688e823a11c189d1e303208367ee4\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"3b20a335c50dbe4a47ea8af0128d0073\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"806b7c2722ba3cacd4cd3c2df50628a6\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"afa78012fb16c8047e6bb3b125e7e3f8\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"2fcf905f2477fe678174f59fc4566386\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"40c344f29c0c7549293726ea2a32e43e\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"3455765ac051d47f0d6cef77e6275021\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"c4ca85c6f25ef6988c368c604c577571\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"40daf9d70cafafcccad4bdb2c87f45ea\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"3d5d2e46e04888fe98a675e7fff45b8c\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"6675468a6d69212cc91ca93868040757\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"5f205ce5f703ac8ea5a698bd56c51f93\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"e81fb84f34d06de17610143daa6a3429\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"ea686c92f9d42f908a4488a9d5814a1f\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"78d66867fb8ffd7003f73bbd62334bb8\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"6362bcb7a531ba3bde5e52d61b4336f8\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"1b55f2713d7492ff703016ce0d90058b\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"b79c9f33c8192f4b30926705706095ed\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"ed7251d27f886385f1e5245fb58a1675\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"811a4568743ea874ee2f72337c76b6cb\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"1f4491f409b4863abf97682f1a141c18\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"de246c361e16f1912e18183e3a4920f2\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"a74e5a89ad9b7aa6cdd18ed906376b11\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"9e4f174a779f84547eab04845b10959c\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"892b36582564c1c5f0a58900ef06c0ff\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"f259a247d5bc5ff41b12350311d2a1ba\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"0d587498ac46c75f71ad3344e671efd4\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"e4061120e72f2ce7cd2e42b0d804e2ef\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"9b04ae7aeb6dbf5ce07c690e3e4b8ec9\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"de246c361e16f1912e18183e3a4920f2\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"23fe3b51393d6215ce1d1cec197013cf\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"06ef097b79b01e95d63229ca54d6121b\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"a9b05944d2b1dc81b45dbf81ccbe43dc\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"23cc1ef6bdd68e8ffa7a22be808dcfcb\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"a10933a009fabc446dd1a73b7b3ee5d6\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"161437618c5c5178ff4f37cf7a41cc43\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"7348773221051ac18ad4d7bc10a1b7f6\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"d8fbd10e5331b2fb11401ebdd3c0a09b\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"6e5deb8e8e688794155ed347ce31128f\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"8d6dad2deb405bc51eda95a24e25a07c\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"4a1991dcd8eb6a5fbe29f340a3be529e\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"33a98fb737c582518c6c1a762b715f45\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"df7266a624e3a967e9bcd09c94dfbba3\"\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"fab2d88b37c72d83607527573de45281\"\n },\n {\n \"url\": \"images/manifest.json\",\n \"revision\": \"c6236bde53ed79aaaec60a1aca8ee2ef\"\n },\n {\n \"url\": \"images/logo.png\",\n \"revision\": \"89630b64b911ebe0daa3dfe442087cfa\"\n },\n {\n \"url\": \"images/drawlogo.svg\",\n \"revision\": \"4bf4d14ebcf072d8bd4c5a1c89e88fc6\"\n },\n {\n \"url\": \"images/drawlogo48.png\",\n \"revision\": \"8b13428373aca67b895364d025f42417\"\n },\n {\n \"url\": \"images/drawlogo-gray.svg\",\n \"revision\": \"0aabacbc0873816e1e09e4736ae44c7d\"\n },\n {\n \"url\": \"images/drawlogo-text-bottom.svg\",\n \"revision\": \"f6c438823ab31f290940bd4feb8dd9c2\"\n },\n {\n \"url\": \"images/logo-flat-small.png\",\n \"revision\": \"4b178e59ff499d6dd1894fc498b59877\"\n },\n {\n \"url\": \"images/apple-touch-icon.png\",\n \"revision\": \"73da7989a23ce9a4be565ec65658a239\"\n },\n {\n \"url\": \"images/favicon-16x16.png\",\n \"revision\": \"1a79d5461a5d2bf21f6652e0ac20d6e5\"\n },\n {\n \"url\": \"images/favicon-32x32.png\",\n \"revision\": \"e3b92da2febe70bad5372f6f3474b034\"\n },\n {\n \"url\": \"images/android-chrome-196x196.png\",\n \"revision\": \"38b32aefe5d1456144ae00d2c67aab46\"\n },\n {\n \"url\": \"images/android-chrome-512x512.png\",\n \"revision\": \"959b5fac2453963ff6d60fb85e4b73fd\"\n },\n {\n \"url\": \"images/delete.png\",\n \"revision\": \"5f2350f2fd20f1a229637aed32ed8f29\"\n },\n {\n \"url\": \"images/droptarget.png\",\n \"revision\": \"bbf7f563fb6784de1ce96f329519b043\"\n },\n {\n \"url\": \"images/help.png\",\n \"revision\": \"9266c6c3915bd33c243d80037d37bf61\"\n },\n {\n \"url\": \"images/download.png\",\n \"revision\": \"35418dd7bd48d87502c71b578cc6c37f\"\n },\n {\n \"url\": \"images/logo-flat.png\",\n \"revision\": \"038070ab43aee6e54a791211859fc67b\"\n },\n {\n \"url\": \"images/google-drive-logo.svg\",\n \"revision\": \"5d9f2f5bbc7dcc252730a0072bb23059\"\n },\n {\n \"url\": \"images/onedrive-logo.svg\",\n \"revision\": \"3645b344ec0634c1290dd58d7dc87b97\"\n },\n {\n \"url\": \"images/dropbox-logo.svg\",\n \"revision\": \"e6be408c77cf9c82d41ac64fa854280a\"\n },\n {\n \"url\": \"images/github-logo.svg\",\n \"revision\": \"a1a999b69a275eac0cb918360ac05ae1\"\n },\n {\n \"url\": \"images/gitlab-logo.svg\",\n \"revision\": \"0faea8c818899e58533e153c44b10517\"\n },\n {\n \"url\": \"images/trello-logo.svg\",\n \"revision\": \"006fd0d7d70d7e95dc691674cb12e044\"\n },\n {\n \"url\": \"images/osa_drive-harddisk.png\",\n \"revision\": \"b954e1ae772087c5b4c6ae797e1f9649\"\n },\n {\n \"url\": \"images/osa_database.png\",\n \"revision\": \"c350d9d9b95f37b6cfe798b40ede5fb0\"\n },\n {\n \"url\": \"images/google-drive-logo-white.svg\",\n \"revision\": \"f329d8b1be7778515a85b93fc35d9f26\"\n },\n {\n \"url\": \"images/dropbox-logo-white.svg\",\n \"revision\": \"4ea8299ac3bc31a16f199ee3aec223bf\"\n },\n {\n \"url\": \"images/onedrive-logo-white.svg\",\n \"revision\": \"b3602fa0fc947009cff3f33a581cff4d\"\n },\n {\n \"url\": \"images/github-logo-white.svg\",\n \"revision\": \"537b1127b3ca0f95b45782d1304fb77a\"\n },\n {\n \"url\": \"images/gitlab-logo-white.svg\",\n \"revision\": \"5fede9ac2f394c716b8c23e3fddc3910\"\n },\n {\n \"url\": \"images/trello-logo-white-orange.svg\",\n \"revision\": \"e2a0a52ba3766682f138138d10a75eb5\"\n },\n {\n \"url\": \"images/logo-confluence.png\",\n \"revision\": \"ed1e55d44ae5eba8f999aba2c93e8331\"\n },\n {\n \"url\": \"images/logo-jira.png\",\n \"revision\": \"f8d460555a0d1f87cfd901e940666629\"\n },\n {\n \"url\": \"images/clear.gif\",\n \"revision\": \"db13c778e4382e0b55258d0f811d5d70\"\n },\n {\n \"url\": \"images/spin.gif\",\n \"revision\": \"487cbb40b9ced439aa1ad914e816d773\"\n },\n {\n \"url\": \"images/checkmark.gif\",\n \"revision\": \"ba764ce62f2bf952df5bbc2bb4d381c5\"\n },\n {\n \"url\": \"images/hs.png\",\n \"revision\": \"fefa1a03d92ebad25c88dca94a0b63db\"\n },\n {\n \"url\": \"images/aui-wait.gif\",\n \"revision\": \"5a474bcbd8d2f2826f03d10ea44bf60e\"\n },\n {\n \"url\": \"mxgraph/css/common.css\",\n \"revision\": \"b5b7280ec98671bb6c3847a36bc7ea12\"\n },\n {\n \"url\": \"mxgraph/images/expanded.gif\",\n \"revision\": \"2b67c2c035af1e9a5cc814f0d22074cf\"\n },\n {\n \"url\": \"mxgraph/images/collapsed.gif\",\n \"revision\": \"73cc826da002a3d740ca4ce6ec5c1f4a\"\n },\n {\n \"url\": \"mxgraph/images/maximize.gif\",\n \"revision\": \"5cd13d6925493ab51e876694cc1c2ec2\"\n },\n {\n \"url\": \"mxgraph/images/minimize.gif\",\n \"revision\": \"8957741b9b0f86af9438775f2aadbb54\"\n },\n {\n \"url\": \"mxgraph/images/close.gif\",\n \"revision\": \"8b84669812ac7382984fca35de8da48b\"\n },\n {\n \"url\": \"mxgraph/images/resize.gif\",\n \"revision\": \"a6477612b3567a34033f9cac6184eed3\"\n },\n {\n \"url\": \"mxgraph/images/separator.gif\",\n \"revision\": \"7819742ff106c97da7a801c2372bbbe5\"\n },\n {\n \"url\": \"mxgraph/images/window.gif\",\n \"revision\": \"fd9a21dd4181f98052a202a0a01f18ab\"\n },\n {\n \"url\": \"mxgraph/images/window-title.gif\",\n \"revision\": \"3fb1d6c43246cdf991a11dfe826dfe99\"\n },\n {\n \"url\": \"mxgraph/images/button.gif\",\n \"revision\": \"00759bdc3ad218fa739f584369541809\"\n },\n {\n \"url\": \"mxgraph/images/point.gif\",\n \"revision\": \"83a43717b284902442620f61bc4e9fa6\"\n }\n], {\n \"ignoreURLParametersMatching\": [/.*/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,yBACK,oCAEd,KACS,gCACK,oCAEd,KACS,8BACK,oCAEd,KACS,mCACK,oCAEd,KACS,4BACK,oCAEd,KACS,sBACK,oCAEd,KACS,qBACK,oCAEd,KACS,kCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,sCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,mCACK,oCAEd,KACS,0CACK,oCAEd,KACS,gDACK,oCAEd,KACS,oDACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kDACK,oCAEd,KACS,6CACK,oCAEd,KACS,kCACK,oCAEd,KACS,qCACK,oCAEd,KACS,kCACK,oCAEd,KACS,oDACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,yCACK,oCAEd,KACS,6CACK,oCAEd,KACS,wCACK,oCAEd,KACS,iDACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,kDACK,oCAEd,KACS,8CACK,oCAEd,KACS,2BACK,oCAEd,KACS,8CACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,+DACK,oCAEd,KACS,2EACK,oCAEd,KACS,wEACK,oCAEd,KACS,6BACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,iCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,uBACK,oCAEd,KACS,gCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,iCACK,oCAEd,KACS,oCACK,oCAEd,KACS,2CACK,oCAEd,KACS,sCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,oCACK,oCAEd,KACS,6CACK,oCAEd,KACS,6CACK,oCAEd,KACS,6BACK,oCAEd,KACS,iCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,gCACK,oCAEd,KACS,wCACK,oCAEd,KACS,oCACK,oCAEd,KACS,mCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,8CACK,oCAEd,KACS,yCACK,oCAEd,KACS,0CACK,oCAEd,KACS,wCACK,oCAEd,KACS,wCACK,oCAEd,KACS,+CACK,oCAEd,KACS,sCACK,oCAEd,KACS,gCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,oCAEd,KACS,yBACK,oCAEd,KACS,+BACK,oCAEd,KACS,kCACK,oCAEd,KACS,uCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,qCACK,oCAEd,KACS,2CACK,oCAEd,KACS,qCACK,oCAEd,KACS,oCACK,qCAEb,6BAC8B,CAAC"} \ No newline at end of file
diff --git a/src/main/webapp/stencils/LICENSE b/src/main/webapp/stencils/LICENSE
new file mode 100644
index 00000000..2c9703f8
--- /dev/null
+++ b/src/main/webapp/stencils/LICENSE
@@ -0,0 +1,95 @@
+Creative Commons Attribution 4.0 International Public License
+
+By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
+
+Section 1 – Definitions.
+
+ Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
+ Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
+ Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
+ Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
+ Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
+ Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
+ Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
+ Licensor means the individual(s) or entity(ies) granting rights under this Public License.
+ Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
+ Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
+ You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
+
+Section 2 – Scope.
+
+ License grant.
+ Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
+ reproduce and Share the Licensed Material, in whole or in part; and
+ produce, reproduce, and Share Adapted Material.
+ Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
+ Term. The term of this Public License is specified in Section 6(a).
+ Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
+ Downstream recipients.
+ Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
+ No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
+ No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
+
+ Other rights.
+ Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
+ Patent and trademark rights are not licensed under this Public License.
+ To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
+
+Section 3 – License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the following conditions.
+
+ Attribution.
+
+ If You Share the Licensed Material (including in modified form), You must:
+ retain the following if it is supplied by the Licensor with the Licensed Material:
+ identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
+ a copyright notice;
+ a notice that refers to this Public License;
+ a notice that refers to the disclaimer of warranties;
+ a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
+ indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
+ indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
+ You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
+ If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
+ If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License.
+
+Section 4 – Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
+
+ for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
+ if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and
+ You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
+
+Section 5 – Disclaimer of Warranties and Limitation of Liability.
+
+ Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
+ To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
+
+ The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
+
+Section 6 – Term and Termination.
+
+ This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
+
+ Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
+ automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
+ upon express reinstatement by the Licensor.
+ For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
+ For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
+ Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
+
+Section 7 – Other Terms and Conditions.
+
+ The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
+ Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
+
+Section 8 – Interpretation.
+
+ For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
+ To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
+ No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
+ Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
diff --git a/src/main/webapp/templates/LICENSE b/src/main/webapp/templates/LICENSE
new file mode 100644
index 00000000..2c9703f8
--- /dev/null
+++ b/src/main/webapp/templates/LICENSE
@@ -0,0 +1,95 @@
+Creative Commons Attribution 4.0 International Public License
+
+By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
+
+Section 1 – Definitions.
+
+ Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
+ Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
+ Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
+ Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
+ Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
+ Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
+ Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
+ Licensor means the individual(s) or entity(ies) granting rights under this Public License.
+ Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
+ Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
+ You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
+
+Section 2 – Scope.
+
+ License grant.
+ Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
+ reproduce and Share the Licensed Material, in whole or in part; and
+ produce, reproduce, and Share Adapted Material.
+ Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
+ Term. The term of this Public License is specified in Section 6(a).
+ Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
+ Downstream recipients.
+ Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
+ No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
+ No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
+
+ Other rights.
+ Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
+ Patent and trademark rights are not licensed under this Public License.
+ To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
+
+Section 3 – License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the following conditions.
+
+ Attribution.
+
+ If You Share the Licensed Material (including in modified form), You must:
+ retain the following if it is supplied by the Licensor with the Licensed Material:
+ identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
+ a copyright notice;
+ a notice that refers to this Public License;
+ a notice that refers to the disclaimer of warranties;
+ a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
+ indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
+ indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
+ You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
+ If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
+ If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License.
+
+Section 4 – Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
+
+ for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
+ if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and
+ You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
+
+Section 5 – Disclaimer of Warranties and Limitation of Liability.
+
+ Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
+ To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
+
+ The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
+
+Section 6 – Term and Termination.
+
+ This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
+
+ Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
+ automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
+ upon express reinstatement by the Licensor.
+ For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
+ For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
+ Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
+
+Section 7 – Other Terms and Conditions.
+
+ The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
+ Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
+
+Section 8 – Interpretation.
+
+ For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
+ To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
+ No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
+ Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
diff --git a/src/main/webapp/templates/index.xml b/src/main/webapp/templates/index.xml
index 58ff710c..701f722a 100644
--- a/src/main/webapp/templates/index.xml
+++ b/src/main/webapp/templates/index.xml
@@ -161,6 +161,9 @@
<template url="software/database_3.xml" libs="general;uml"/>
<template url="software/eip.xml" libs="general;eip"/>
<template url="software/entity_relationship.xml" libs="general;uml;er"/>
+<template url="software/git_flow_1.xml" libs="general"/>
+<template url="software/git_flow_2.xml" libs="general"/>
+<template url="software/git_flow_3.xml" libs="general"/>
<template url="tables/authority_matrix.xml" libs="general"/>
<template url="tables/gantt_1.xml" libs="general"/>
<template url="tables/gantt_2.xml" libs="general"/>
diff --git a/src/main/webapp/templates/software/git_flow_1.png b/src/main/webapp/templates/software/git_flow_1.png
new file mode 100644
index 00000000..66f3f264
--- /dev/null
+++ b/src/main/webapp/templates/software/git_flow_1.png
Binary files differ
diff --git a/src/main/webapp/templates/software/git_flow_1.xml b/src/main/webapp/templates/software/git_flow_1.xml
new file mode 100644
index 00000000..109298ba
--- /dev/null
+++ b/src/main/webapp/templates/software/git_flow_1.xml
@@ -0,0 +1 @@
+<mxfile><diagram id="yPxyJZ8AM_hMuL3Unpa9" name="gitflow">7V1bd5s4EP41ec1BXCR4bJymfWj39LQP230kRo7pYssHk9v++oUYYZCELbAkZCfpQ40sMGhmvhmNPg1X3mz18iWPN8vvJMHZleskL1fe7ZXrAhT55X9Vy2vd4oR1y0OeJnXbvuFX+h+mHevWxzTB207HgpCsSDfdxjlZr/G86LTFeU6eu90WJOv+6iZ+wFzDr3mc8a1/p0mx3LWGgbNv/4rThyX9ZeDU36xi2rlu2C7jhDy3mrzPV94sJ6TYfVq9zHBWjR4dl915dz3fNjeW43Uhc4K3O+Epzh7rZ6vvq3ilD4vXyadqzMqjNVmXjTdJvF3i6gKgPFgWq6z+uEizbEYykr+d6CUxDhfzsn1b5ORf3PoGzkN8vyi/4W+3foIteczndLTreyri/AHX3dCuCScdQdXP+AWTFS7y17LD8148VDrLlmRoW46zuEifuuKNay15aC7X/MIPkpY37Dq1Svv1ZWp9Rk73AruHqc9pC4O5DHIPX2c3ANx1yg+tZ943vYlaLHaRmMuh/FUfkrxYkgeyjrPP+9abnDyuk0bu+z7fCNnUjX9wUbzW9ho/FqSrHx294dWqbLlLq1u+dQTKFOAw8UXKFLr3HoSyyuTzukS7HVWmYVpSPl382uqwqeS2lVYiEDqMkHcXHCtyn7N0cO3wWpBlJYhW0nhepgX+tYnfBu65BPKuLOPtZoesi/SlkukI41+QdUE1rrpkFt/j7AfZpkVK1mXbvJQjLk+6ecJ5kZbo+43pUFR6dxNn6YOw+6f6i3tSFGRV/2DrRhwHwtnskOJUV8IvB3Wi/tbrCg/Why34cQXw4zr9OtSx7gNyRZxcv8fbaiBY0ZZPUnRleEA0PcI8OtarNEmyPvXZA4ijZtRD9+iwR5qGPdToOBfhHM+FtnMfBn7gvGFleb+/65F8O/inOrgO6OHtS/vL29fmqI2xUogZ8YhJPbKd7hcEI/0vdJgLUaEeccBDkR4B5ncc5+B9sf2RWs8QefYHA5Wr2F2p1D0Oye/ubgI0LmgYbUgvafF737M8+oc+S/l5f1J1QM+RMjdhtBtaEaEgT2+IEklgqqr4RAJjFTgoiPzOiEXm4gKqR63RdK+BvgF9ZwEfO1czGPGBc5i0Q+ujhkDoVIdP2p3D11E3aQfRFH56OG4O8uxjlSmywiPC4GAkd7JHpHDRMvWvpCgRmNMEidldI6A+kVo+uxM4T12zO/cMQmI9+TEaanYSZL4WYzsKpTS+1ICl6AwE3Jrz0GOJOQ8GpSogkSJEEHmxtCI0CystRQjsyJRGjJpEakEXIEE8ZbFyDJgQ61QO6NmoHDQ5pMwjUzdmYpJ6CqgP8LOMOSFzUxnBqsRf1S9kr2MCnGZQ+obR8gBHNPLaIpzg4vQYQHgdoel0GdrvNfTEjCJvQPVLd8wIWfSSjBm5CwE2Kc9eqCchMCbAAL79qqItwBibcZdTRSQITPSo4tDAhPWzyiMTfiX43BHdhdGkiB7ab6aaED0QILos58oWRO9j1GhAdP+8AH1AOmGxwFCc701QdO/IA7OARuDZkcT12bSTpxiYTa5rmgFmL5wUmOk6tM3mpgmYBfGNprUQfcDsIXOhNkJTqMrYGLejYmPILJoW21wrgJpbbVPMP4EcTrsfFFlljAnIhGMGGROeTLJrasaEgJkOJc3OEM2y9Pn7P9B1/2PpE5DJ10vSJ/qh45Qo/mIXBVVF8Z7AOcgqqWbfwHITu0H80f6KObUAChDGYl06lOIbG8wY1EEQ2DGVDFgtDNSqlceHKD9nSmeTDL7oDzgGK0mfmioIUQJ2Qc41F6P4Am6uxYAxhfMRpZCUex/pmJLP6vycKeVXv2tT9IF/DYNWvMlkm0xapstLGmc4LqXKSluCpLAfvJ7hVklSYF28AsFwpAWBJHSRFtDFptlVEbMoQ6/D2lOevZHeqeBPkn3TEgX/eVxt6H3H+Zy27M48ST7QjtgVMLGrqzi7hs6AH6PNeLWSHqiBG1itHUx6YFK2tIRL75qt5hQvHSpNa3Gs/qgD+QGkCYdbm3Mdc9ESCAQjarGdH8J8KeujvOe29YWWQDrDafOAWmuCMjsRz9uaAEMOaNaeDZhSNMmGP0tognK2J+ApIeWbVOSh77xCnAECWwTVP5HA4NvfKQKL7NhV5DmawVIv494GsHR5WpBJvARgEsImLQVCP7ci+95SIEoIImbDHEH2NVRel0RW1PRuDBlTd+B2f2pBckBE4vFGZpB71wREl+fkpp7HI0FyyBS5jyPBRoyuKKp95R3eBXG0v+qEAB3zC/bKnh9M6ZXDM8gHaCLrClymJiqloLoNYzdQzp55YIBHLqSOrBvyEfIdjovHHFeDiONV+R+/wiqx5tZYU5/9Wb4xWJS/01bYkqeYcELgLfo9CEGAmbqEAAJez60DzdELZ1qDqFBQwEb9Cui4xRA2lxgejn24/oozEqFMEdsLnUQhZ9JJVHBeVOOTswehKBRyVFultI97x9kDxGUPPKOrg+dF4TlZ8amS6014S68oOe9W8V3fuXbaf96ERnA5tCitsVwkSIipX94bl8didrN5R4gtbH/V1T/oUL1Dy/ZoYeEpTBlejj/TRNuPBEu+wFFeLFDaBU65DHvKmA7gznv+NYQdmwC+QZug+aHWEN/iJ5yRzQrXScKhL6ahcNEHMKpJ8yJwUyAZLqdksKYxcM6gnJE2qNIapzRwpndrUk+Cni2H6zDKomjlLmAL5AWHIx6uv+KyOs2gXzKSs7I1CuOXM0sxuCMxMlT4klMNj5G5bAWGgKXos6/PUoQfPi0qp2lvNIAXy75URZeli8+dUNyS8pgQddVD9WIHoJSxD/UYph52vHuMUw/V+RN+zmIumDBTtA9Cf8qifQB84POIrUSa4JnfKxTwtFJJqo9g4fr4tRS+F0tQy77ZoO/clSa45RTvPW7UF8wdtG3UN8YscKdCU8TuVDUJpf4ZQKkeTqUoRtH0elT+/VTHqJCynErIFkCVBFotVe8AnISLYtUOGE35gaYsWTeinoz30tzPBafM2HSG0ZQZFW2nKJTAvCYcYtMlZFUWheJf0G5SthebDlU1fQGi3b2h8vmLvMSMLfUKolAze3tgxKRFTHIfaBTzYRH9FiFgo4eT1SwE0xRQOyakjkTHjytAdryBEjldm6R8JHWZ7Cln1xPhmsENi3TvzQVvCQVg2hpRNJlvseeQwyEkyNg2/KcpAN4sJ8ImGihi1pdF3CpFCl0e5oQUbQQvB2/5nSS46vE/</diagram></mxfile> \ No newline at end of file
diff --git a/src/main/webapp/templates/software/git_flow_2.png b/src/main/webapp/templates/software/git_flow_2.png
new file mode 100644
index 00000000..6d181ebf
--- /dev/null
+++ b/src/main/webapp/templates/software/git_flow_2.png
Binary files differ
diff --git a/src/main/webapp/templates/software/git_flow_2.xml b/src/main/webapp/templates/software/git_flow_2.xml
new file mode 100644
index 00000000..470bee65
--- /dev/null
+++ b/src/main/webapp/templates/software/git_flow_2.xml
@@ -0,0 +1 @@
+<mxfile><diagram id="yPxyJZ8AM_hMuL3Unpa9" name="complex gitflow">7V1dm6I2FP41c6kP4ZvL0dHd7bbbbWf7tNubPhmJSheJhTjj7K9vwpdoIkYExFn2YlYCBMj7no+ccyB32ni1fRfC9fIX7CL/TlXc7Z32cKeqACgm/Y+1vCYtNttiDYvQc9ODdg2P3neUNipp68ZzUbR3IMHYJ956v3GGgwDNyF4bDEP8sn/YHPv7V13DBeIaHmfQ51v/9FyyzJ9L2e14j7zFMr20baQ7VjA7OG2IltDFL4UmbXKnjUOMSfJrtR0jnw1eNi7JedMje/MbC1FAZE7Y/PlH8GnyYL6f+Cr8aMxd+OFpYCW9PEN/kz7we0zm3pa2jfFq5ZH03slrNiAEbenlRkuy8mkDoD8jEuJvaIx9HNKWAAf0yNHc8/2DJuh7i4BuzugNI9o+ekYh8ehQ36c7Vp7rssuMXpYeQY9rOGPXfKHEom2YHj334wFc0uMQPWHED0E6KqxntC00pUPyDuEVIuErPSTdq6vWUDWSs1KKqmrK2Zcd4HYK4rIAtZa2wZRii7zzHQr0RwrEGaDYHCgcCsilLE03cUiWeIED6E92raMQbwIXscso+3D9iwh5TQUNbghmY5v38DPG6/S4tQ+9YPAU38MIBe49k6YdmrRl6rHnivtPOJBJiM6x4o6OVvwvPpMO0l/pifHGV7YxNLLNh21x58NrceszCj06yow/ceNRCkR4E85QyShnGobAcIHSc53l6OPnh+/YIy/rDyP3+/ThN2sAUjqwMZehlOqoHKUAOM6VtKPP2KOPsCOmfrqX5NbTEw9Il99XdR46FWg324TPMetAGQfR1iN/FX4XCEC3DjE+SRj+hHK2yooAz+o5Dkh6IjBqp5/4QEOSfiHyIfGe9w1X7copu+8y7ZQp9p/hE/I/48gjHmYK/gkTglcCzU/YkPM2ZU+fLOGadb/aLpinMWS2YLaEIRniYMCs8D8hmiOKAxv1feVFT3A9ClCJiaL6aWRMtCkq1Vw12BvV5MQaOLy90Vq1NxKQXiT5QuESCGFRQ5xtcLpiVjIv9aRcK07dgi22JJamD3Vn9++6RgUoxvXJVWp+djxhG6+FjbMN0zmUO5/xzBhN4crzWb9jSkyPdqYqn9BLunNPhzlOuQ6rk9l6t0xWpqVv3mQdN00iYzapx2SZavdMVq483yCmGkUV3DeLqW2C7mGq1uGGXDzvFXkW5Zr5KB4SmlJSUWag1jK1BFmM6lgXiSlozgXQOKBXVE44sLsUaipO/PKJYHqr4JQtrkNgtQNhVThhNQTCqqtNCaterxd3QXDgBub6hqw+sLrlOBm3Y2TXm3Dt1+E6PRgTO76LGqRW05yhdaCvbXBlM2t2RnLfYljPkhX12mf/l7GCzwT1on5WIkk3uyfqdi/qDYq6IyvqoFuifkNT506KuqF3z6qrfAwfDMFQGVBOIRihBiZXPpqTNzG1snk0+VCIqgvgVJuC05IIWZ4bC2klC1NdnZqy6tSSDZq0o06tKvmMGpBJLWq+0WrqYc9JaAHzjiXBnZqjH30Oq6UcljThbLVThDN7n+3C6RngpmeaeWWfzaql0O/adRfVhdGSLYGyuhUWtW6oBKqTwmgAvXPCmGU/b1sYWzanlmy00+mW/2b10c4LJdjpngQDpeZw5yXTsh/Cm3ak85qKbA19S/O3PrF5YU2Y00F3mrfgLnpGPoWlD34eDX5aPI46h6MDeBwbi31mofQfKPaZRRtOhyW6VVmb3XevR6v6UYpyKH+6zpd2tTsTsq7vRvXBzSpaRJfUIh2bjWX33WuRqt4YAJ3TIjbvjf304ff7gWYMBmgLV2wUVWWOINmEfXa61EE7RNbgkG03OW3z0ZMvS4Zm6m6vUFxtjtk4ROswqT1/CmEwW94o0EoVfX0GxgbnhNu8E94yyHxy4itld1Fme0zPwlQ3ry64fBYxEdy8SKiHtPSlKU5MlWsXCjl8LiqBNHmjJsfT9NnoP1H5NRckH44eYa4UjPsYDO9HgUKpbzsgy0REdrOTmQ+jyJuVub8nPZezB/nkXOLEm0pZ24Uvu1OJ5PSuoWcu1IkX3PiPsBiC3g76avojLBIhlh775ASBgrb0ashr1um+mkaef02yR16MlspX96hZQv9c5FU+tcH11fg3MniF/wUu7rR72haXdTdgvpt7V7YGw2w4Cve+uiWwzKBN3wsovIQWYFJ+PJhU/qNlIpisdlGSKPboK3uOfcPl5nL7+Z334eSKUixI7l/9/SYAqrxm0Rf3XKIBTGkN0LF3mRWJWs5eA5RoAIufSXVAA/CoFrwt9cfztmzAe1umfW2nWOZLAi1NW7Mygl3pwNe7QuWAsIxASmHOH4O/jefg65fIHxufYPhxFf4zkE2qtzMltgD3hS9TM6oGwgS96Upj4RDh8PYxUFnobYUrB9CsisCL+lIbi4AKgRe580k6I1rDYI8B5n8b9jn9EVP8g1SHM/OQqvF8f5YFmaJ4uYJ5iFjKhPp79KFcl/4NMEFRjE6c6IRPeMMGhcSplXWIZyhiu/Gc/lmhcOEFC/YYQdwFEebUhqIkTNJChyV5lJvKzagyuZn6vpxsiSKyfEYVmFquqYqyZZrHxUjW4JWpfQE9Xe9ZyE6eh/uEboSbh1l7FA2P0i9vjp+gJ2VZ/aY6NPc/zafbPCl1YAtJqTVFSonXhVsooRYBU+eKENV9tdRLlpjaapKm/dIMhuAju/aBj37EzlKXB74WDluzA6JKlzqaEzl5Cv2R3Eetpl/0gnQ108/IojD+DaKYkPGkEay3QnU8gaxkgrJjEQO7DlGE4iFVYKJi3c0sDhfkVv64Lr0JrQna1ZqOflDTCAzBtFUVRRfssxXmHxEKf336ly0OpSo+i/Ykp07yIlTXg4sQrmKChCnILzj8Fo8YRc+j8wMYZkZ4R5d3Hhkkx+wIpMTUYrfoe8G35EpLQthqVffsDtVp8Oyh4QzTy03XOGKsmsJBtJkxsz3f+IMF7TUx0dRwD1bJilrTpM9MWITr1KiFMU+FiyeeiB2HGvugujUjiVlT1IJTJYJv2bJlmWoqsaGbBQqUUiITYkaAZYjme4qlHhQPVU1NvWa6B+4rntY5qNXAwRo4lmcLXg+2i8FLo3V+PSJ0PfVgdQMaXvyF4KgNij/ne4iX/ZJII/YBpwRTi19E79B5lQ44CfrS5RzhCl6nGPnjU/q3EnHqY1DVlJfBr78gyIsBU+y92CWSJTvdF7t+3Xhl+vDburewiFfpko9X+LSvWCsaJlf/1uDCXaVjcgtJ9SMr7lBtMLk3R6bJaS+2vI5t6IYgrz61x5PxuB79ofP6o81ld4S4mrzu2CtiBBzKbzytrqv2YXiiuRpGurlbAjoR1d1C2trkfw==</diagram></mxfile> \ No newline at end of file
diff --git a/src/main/webapp/templates/software/git_flow_3.png b/src/main/webapp/templates/software/git_flow_3.png
new file mode 100644
index 00000000..b9ba8132
--- /dev/null
+++ b/src/main/webapp/templates/software/git_flow_3.png
Binary files differ
diff --git a/src/main/webapp/templates/software/git_flow_3.xml b/src/main/webapp/templates/software/git_flow_3.xml
new file mode 100644
index 00000000..10882c75
--- /dev/null
+++ b/src/main/webapp/templates/software/git_flow_3.xml
@@ -0,0 +1 @@
+<mxfile><diagram id="yPxyJZ8AM_hMuL3Unpa9" name="simple gitflow">7Vxbd5s4EP41ebQPiIvhMXbstnvNbnbPtk97ZJBBLUZeIcd2f/1KRmBABJMGbCdxc3qCBkmI+eYbzUgiN8Zkuf1A4Sr8lfgougGav70x7m4A0HXN5r+EZJdKHFESgoBiX1Y6CB7wdySFmpSusY+SUkVGSMTwqiz0SBwjj5VkkFKyKVdbkKj81BUMkCJ48GCkSv/BPgvz99IONz4iHITy0Y4lbyxhVlkKkhD6ZFMQGdMbY0IJYenVcjtBkVBeppe03eyJu/nAKIpZTYO/E0R/n38VOgFaBOccl32l6RYuV/ztOCQYBhQu91qhQl38/4bQb4uID5NfYv4CqTTBoomoM6cw9kIcB+IN92Abt+lAIhx/S58QMibAuRVDAbP4EaOhR/hjZiuSsIT/hoNk7XkoSRbraBBgNsh7HaR9ioag8K5uOP75/u47wWyz+jT2v8/u/hgN7FyHuW4StstwY2jLtTLehJihhxX0hHjDTZTLQrYUutD55YLE7EE2ysupDeojXlZ1LNX+iCh/QkEkB/IBkSVidMeryLuuhF/avy2Lm4MxWSYYAisVhwVTMmRVKE04yPs+oMwv5NtnxQLujXZwA+xIaEjgG1K02Evt/9bCHMdlCAOcsCHHKVzPJZJf5yhGvMMZQrbnQs90NNtxHHeuuTo4dMOvgi66i9LOZjDrsNnknv2Ao7bmdGBrHdiSDszcUnZl8yrYE3Ad1ZhAr8b0gND5HIGuXQY6rj48io0BhqMaqneDjjJH1KoLGPLFYLRGmS8AZZ0hn0+CskgoC0lAYhhND9IxJevYR+I5WlmRXxFjO+lD4ZoRLjr08AshK1lvFUEcD+b7MYxR7N+KyZrfi0ksJTMs3nXff8Io+ZZPwGYumZCIT11iyIa2/9eEZELW1ENNmpHIMEgDxJoqyqBGqKmNZRiaWTEN3Xk+4i3hNX8ATW9NH/dg6k3Qoi1mnwvXX0QV/mJp6R5RzF8BUdmQq5/uPhcLhfqiqDZoNoK2lqUaS3Fat05jItnkfdREKIogw4/lcLN7q7COk154Oswj31+EX78nCWaYxPzWnDDG3bYxzircRjgQNxipONEamoZwJbpfbgORHwxFbOmFkLIhiQcidv6Xhx6I4yC0XvYJvIGPOUAZx6VNLLhBFGg/tqbGDP2YQ2jv2sFIIbBtqc5d6ySIa4eoqR9H9EXEr+VWDQeLDuLZblwwcwaXOBJqnXD24X2a8RvaVGhrv4y2dkvamhdGW/ut0LZXelr25dGzkyjrndAzY91xeoKLoqcF3h3IR6O6u23x5t2uWKpGfCewGKtzhy6b3hMcs4MLsh234oJAluhlnaRjle0qlpcP5AUeR7vOFS3mCtspL8idfaawWszxb8yJvID3oC3vrYuaKbJxX8nZSM7RyL0wcr6ZvLlX3JyRXl2YPjt0YNSFX33xOqeK7THn+iQex9cl2zq9bFnjeeuS9ZGPbmvNXaROvbe4BzgKzktOBwVruQ+g0K5hfUmKoOStxwERsatC6CX2/b211G0yEF57v6Vq3IW8HoorE2K+QFnZh3xyNu2Ar5VNSX1UsytZw9Uf2KZoiaHbbchzXbSuW4s+vmh9Wem18YoymtWarqJzTb+GOaomn+aZZ19DV6C6Mro7RrdNgwzzshj9itKgszLa1JXlpLMz2rgyukdGm21j/LZnD07EaPPK6HaMdsHFMVpd3Pjp05+3XD4YoPSY6GCBIFtT1EM2FaEFexO5lBJ7WWo2BcxTplOGuvTxVyiO/KaJsTzFmx2snNPyscpXh7ImyyXmum5XzHUtZW2r5mSfbtSf4u0PZHXd4wu3bi7JOZsDfYW1Bla7Cmu+Y1ckrnZqWF2VuzDYn6LV9KE21HpAs7+FrQ5wApYzzGw945+p8m90SgdrqlFPAST9/YFkW8pKcn8YdfBJw2azGfIkgCwiHKN5RAJ5Mp2rXGhrAOuOow9g7A8OX8g0f+XQyROe+eFDF88ER23fKljCGY/bm4rJ1czKpm70eOD+KUMUn1M14dTbpxBmFx9FdYGNoQ1tcAwcXR/aRl/YtNzfbZG+vrHDFxdygstquynR/UmO+n1MtxDpZQGhXTHFno9wWa9ow+OJ0wY8SJ/e2mPbrltPGTuWaWmVMIfLZ85kOpl043qqR0jOvspiqXnaR8IWeMtlE7JcYnbRwWIXkFjq2Uh1NnBOCkpjlsV/LhqTHgL4kWXngVIGEjhzlmWr7rAAEnh/WZZjK1NUj2kWLx7+OkE6xR3+xoMx/R8=</diagram></mxfile> \ No newline at end of file
diff --git a/src/main/webapp/yarn.lock b/src/main/webapp/yarn.lock
index 396e8430..718bea86 100644
--- a/src/main/webapp/yarn.lock
+++ b/src/main/webapp/yarn.lock
@@ -3,21 +3,35 @@
"@electron/get@^1.0.1":
- version "1.12.2"
- resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3"
- integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==
+ version "1.12.4"
+ resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz#a5971113fc1bf8fa12a8789dc20152a7359f06ab"
+ integrity sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg==
dependencies:
debug "^4.1.1"
env-paths "^2.2.0"
fs-extra "^8.1.0"
got "^9.6.0"
progress "^2.0.3"
- sanitize-filename "^1.6.2"
+ semver "^6.2.0"
sumchecker "^3.0.1"
optionalDependencies:
global-agent "^2.0.2"
global-tunnel-ng "^2.7.1"
+"@pdf-lib/standard-fonts@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz#8ba691c4421f71662ed07c9a0294b44528af2d7f"
+ integrity sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==
+ dependencies:
+ pako "^1.0.6"
+
+"@pdf-lib/upng@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@pdf-lib/upng/-/upng-1.0.1.tgz#7dc9c636271aca007a9df4deaf2dd7e7960280cb"
+ integrity sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==
+ dependencies:
+ pako "^1.0.10"
+
"@sindresorhus/is@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
@@ -30,15 +44,15 @@
dependencies:
defer-to-connect "^1.0.1"
-"@types/node@^12.0.12":
- version "12.19.11"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-12.19.11.tgz#9220ab4b20d91169eb78f456dbfcbabee89dfb50"
- integrity sha512-bwVfNTFZOrGXyiQ6t4B9sZerMSShWNsGRw8tC5DY1qImUNczS9SjT4G6PnzjCnxsu5Ubj6xjL2lgwddkxtQl5w==
+"@types/node@^14.6.2":
+ version "14.14.44"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.44.tgz#df7503e6002847b834371c004b372529f3f85215"
+ integrity sha512-+gaugz6Oce6ZInfI/tK4Pq5wIIkJMEJUu92RB3Eu93mtj4wjjjz9EB5mLp5s1pSsLXdC/CPut/xF20ZzAQJbTA==
-"@types/semver@^7.3.1":
- version "7.3.4"
- resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.4.tgz#43d7168fec6fa0988bb1a513a697b29296721afb"
- integrity sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==
+"@types/semver@^7.3.5":
+ version "7.3.5"
+ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.5.tgz#74deebbbcb1e86634dbf10a5b5e8798626f5a597"
+ integrity sha512-iotVxtCCsPLRAvxMFFgxL8HD2l4mAZ2Oin7/VJ2ooWO0VOK4EGOGmZWZn1uCq7RofR3I/1IOSjCHlFT71eVK0Q==
accepts@~1.3.5:
version "1.3.7"
@@ -48,29 +62,29 @@ accepts@~1.3.5:
mime-types "~2.1.24"
negotiator "0.6.2"
-ajv@^6.12.2:
- version "6.12.6"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
- integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ajv-formats@^2.0.2:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.0.tgz#96eaf83e38d32108b66d82a9cb0cfa24886cdfeb"
+ integrity sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==
dependencies:
- fast-deep-equal "^3.1.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
+ ajv "^8.0.0"
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ajv@^8.0.0, ajv@^8.1.0:
+ version "8.3.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.3.0.tgz#25ee7348e32cdc4a1dbb38256bf6bdc451dd577c"
+ integrity sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q==
dependencies:
- sprintf-js "~1.0.2"
+ fast-deep-equal "^3.1.1"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+ uri-js "^4.2.2"
-at-least-node@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
- integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
-atomically@^1.3.1:
+atomically@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe"
integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==
@@ -81,9 +95,9 @@ base64-js@^1.3.1:
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
boolean@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.2.tgz#df1baa18b6a2b0e70840475e1d93ec8fe75b2570"
- integrity sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.4.tgz#aa1df8749af41d7211b66b4eee584722ff428c27"
+ integrity sha512-5pyOr+w2LNN72F2mAq6J0ckHUfJYSgRKma7e/wlcMMhgOLV9OI0ERhERYXxUqo+dPyVxcbXKy9n+wg13+LpNnA==
buffer-crc32@~0.2.3:
version "0.2.13"
@@ -103,12 +117,12 @@ buffer@^5.1.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
-builder-util-runtime@8.7.2:
- version "8.7.2"
- resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz#d93afc71428a12789b437e13850e1fa7da956d72"
- integrity sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==
+builder-util-runtime@8.7.5:
+ version "8.7.5"
+ resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.5.tgz#fbe59e274818885e0d2e358d5b7017c34ae6b0f5"
+ integrity sha512-fgUFHKtMNjdvH6PDRFntdIGUPgwZ69sXsAqEulCtoiqgWes5agrMq/Ud274zjJRTbckYh2PHh8/1CpFc6dpsbQ==
dependencies:
- debug "^4.1.1"
+ debug "^4.3.2"
sax "^1.2.4"
bytes@3.0.0:
@@ -136,10 +150,10 @@ clone-response@^1.0.2:
dependencies:
mimic-response "^1.0.0"
-commander@^6.1.0:
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
- integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
+commander@^7.2.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
+ integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
compressible@~2.0.16:
version "2.0.18"
@@ -171,21 +185,21 @@ concat-stream@^1.6.2:
readable-stream "^2.2.2"
typedarray "^0.0.6"
-conf@^7.1.2:
- version "7.1.2"
- resolved "https://registry.yarnpkg.com/conf/-/conf-7.1.2.tgz#d9678a9d8f04de8bf5cd475105da8fdae49c2ec4"
- integrity sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg==
+conf@^10.0.0:
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/conf/-/conf-10.0.1.tgz#038093e5cbddc0e59bc14f63382c4ce732a4781d"
+ integrity sha512-QClEoNcruwBL84QgMEPHibL3ERxWIrRKhbjJKG1VsFBadm5QpS0jsu4QjY/maxUvhyAKXeyrs+ws+lC6PajnEg==
dependencies:
- ajv "^6.12.2"
- atomically "^1.3.1"
+ ajv "^8.1.0"
+ ajv-formats "^2.0.2"
+ atomically "^1.7.0"
debounce-fn "^4.0.0"
- dot-prop "^5.2.0"
- env-paths "^2.2.0"
+ dot-prop "^6.0.1"
+ env-paths "^2.2.1"
json-schema-typed "^7.0.3"
- make-dir "^3.1.0"
- onetime "^5.1.0"
+ onetime "^5.1.2"
pkg-up "^3.1.0"
- semver "^7.3.2"
+ semver "^7.3.5"
config-chain@^1.1.11:
version "1.1.12"
@@ -196,9 +210,9 @@ config-chain@^1.1.11:
proto-list "~1.2.1"
core-js@^3.6.5:
- version "3.8.1"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.1.tgz#f51523668ac8a294d1285c3b9db44025fda66d47"
- integrity sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==
+ version "3.12.1"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.12.1.tgz#6b5af4ff55616c08a44d386f1f510917ff204112"
+ integrity sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw==
core-util-is@~1.0.0:
version "1.0.2"
@@ -233,6 +247,13 @@ debug@^4.1.0, debug@^4.1.1:
dependencies:
ms "2.1.2"
+debug@^4.3.2:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
+ integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
+ dependencies:
+ ms "2.1.2"
+
decompress-response@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
@@ -253,14 +274,14 @@ define-properties@^1.1.3:
object-keys "^1.0.12"
detect-node@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
- integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79"
+ integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==
-dot-prop@^5.2.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
- integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+dot-prop@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083"
+ integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==
dependencies:
is-obj "^2.0.0"
@@ -269,46 +290,47 @@ duplexer3@^0.1.4:
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
-electron-log@^4.3.0:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.3.1.tgz#1405fef9d4e6964a5fdb8790a69163aa237ffe91"
- integrity sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w==
+electron-log@^4.3.5:
+ version "4.3.5"
+ resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.3.5.tgz#2aad5f93842b9b5214a1b4a10e47b5ac5c9ec104"
+ integrity sha512-J5Ew3axdk7W4jzzxKLSAi1sqbcAoo9CzHuBVsG0tT47j256xKulNrWFf3lZmHJ1KDXOQUcuwOngQF0jjmpEdpw==
-electron-progressbar@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/electron-progressbar/-/electron-progressbar-1.2.0.tgz#3628ee759da5c4b6ae08887843b54d7364477310"
- integrity sha512-I89HaI61SF5wl8c4p62UU3RXhL0xByzl4XH/miwb1e/VNUtRj5WCe/wJ5pNikfC01+/4aAOlNsbmkfsvQjtW6Q==
+electron-progressbar@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/electron-progressbar/-/electron-progressbar-2.0.0.tgz#2a87779a04f7b478475938750ec4716635961008"
+ integrity sha512-FBXR2Ys1nYjOEz2G/tB0q6fnCTHI+Vp1wcblo8E6319etJ5lDX7GiS1gujVterxEH2lsc2BqP+4Eq76v+4VEGw==
dependencies:
extend "^3.0.1"
-electron-store@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-6.0.1.tgz#2178b9dc37aeb749d99cf9d1d1bc090890b922dc"
- integrity sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ==
+electron-store@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-8.0.0.tgz#81a4e687958e2dae1c5c84cc099a8148be776337"
+ integrity sha512-ZgRPUZkfrrjWSqxZeaxu7lEvmYf6tgl49dLMqxXGnEmliSiwv3u4rJPG+mH3fBQP9PBqgSh4TCuxHZImMMUgWg==
dependencies:
- conf "^7.1.2"
- type-fest "^0.16.0"
+ conf "^10.0.0"
+ type-fest "^1.0.2"
-electron-updater@^4.3.5:
- version "4.3.5"
- resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.5.tgz#4fb36f593a031c87ea07ee141c9f064d5deffb15"
- integrity sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ==
+electron-updater@^4.3.9:
+ version "4.3.9"
+ resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.9.tgz#247c660bafad7c07935e1b81acd3e9a5fd733154"
+ integrity sha512-LCNfedSwZfS4Hza+pDyPR05LqHtGorCStaBgVpRnfKxOlZcvpYEX0AbMeH5XUtbtGRoH2V8osbbf2qKPNb7AsA==
dependencies:
- "@types/semver" "^7.3.1"
- builder-util-runtime "8.7.2"
- fs-extra "^9.0.1"
- js-yaml "^3.14.0"
+ "@types/semver" "^7.3.5"
+ builder-util-runtime "8.7.5"
+ fs-extra "^10.0.0"
+ js-yaml "^4.1.0"
lazy-val "^1.0.4"
+ lodash.escaperegexp "^4.1.2"
lodash.isequal "^4.5.0"
- semver "^7.3.2"
+ semver "^7.3.5"
-electron@^11.1.0:
- version "11.1.1"
- resolved "https://registry.yarnpkg.com/electron/-/electron-11.1.1.tgz#188f036f8282798398dca9513e9bb3b10213e3aa"
- integrity sha512-tlbex3xosJgfileN6BAQRotevPRXB/wQIq48QeQ08tUJJrXwE72c8smsM/hbHx5eDgnbfJ2G3a60PmRjHU2NhA==
+electron@^12.0.6:
+ version "12.0.7"
+ resolved "https://registry.yarnpkg.com/electron/-/electron-12.0.7.tgz#e0fca2c8be34cb7da48c4d15cfb1d2ad666d2718"
+ integrity sha512-722TZNKDuLpEmj96AzTYFKHaJEH98xgOBH0aldStaPXI1xDFfb9SJQQuirvwFlkwG5OqQdz6Ne3OwwJ7Dbs5nQ==
dependencies:
"@electron/get" "^1.0.1"
- "@types/node" "^12.0.12"
+ "@types/node" "^14.6.2"
extract-zip "^1.0.3"
encodeurl@^1.0.2:
@@ -323,10 +345,10 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
-env-paths@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43"
- integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==
+env-paths@^2.2.0, env-paths@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
+ integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
es6-error@^4.1.1:
version "4.1.1"
@@ -338,11 +360,6 @@ escape-string-regexp@^4.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-esprima@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
- integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
extend@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
@@ -363,11 +380,6 @@ fast-deep-equal@^3.1.1:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-fast-json-stable-stringify@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
- integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-
fd-slicer@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
@@ -382,6 +394,15 @@ find-up@^3.0.0:
dependencies:
locate-path "^3.0.0"
+fs-extra@^10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1"
+ integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -391,16 +412,6 @@ fs-extra@^8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-extra@^9.0.1:
- version "9.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc"
- integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==
- dependencies:
- at-least-node "^1.0.0"
- graceful-fs "^4.2.0"
- jsonfile "^6.0.1"
- universalify "^1.0.0"
-
get-stream@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
@@ -416,9 +427,9 @@ get-stream@^5.1.0:
pump "^3.0.0"
global-agent@^2.0.2:
- version "2.1.12"
- resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz#e4ae3812b731a9e81cbf825f9377ef450a8e4195"
- integrity sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc"
+ integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==
dependencies:
boolean "^3.0.1"
core-js "^3.6.5"
@@ -439,9 +450,9 @@ global-tunnel-ng@^2.7.1:
tunnel "^0.0.6"
globalthis@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9"
- integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b"
+ integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==
dependencies:
define-properties "^1.1.3"
@@ -463,9 +474,9 @@ got@^9.6.0:
url-parse-lax "^3.0.0"
graceful-fs@^4.1.6, graceful-fs@^4.2.0:
- version "4.2.4"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
- integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
+ version "4.2.6"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
+ integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
http-cache-semantics@^4.0.0:
version "4.1.0"
@@ -497,23 +508,22 @@ isarray@~1.0.0:
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
-js-yaml@^3.14.0:
- version "3.14.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
- integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
+js-yaml@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+ integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
+ argparse "^2.0.1"
json-buffer@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
-json-schema-traverse@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
- integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+json-schema-traverse@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+ integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
json-schema-typed@^7.0.3:
version "7.0.3"
@@ -561,15 +571,20 @@ locate-path@^3.0.0:
p-locate "^3.0.0"
path-exists "^3.0.0"
+lodash.escaperegexp@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347"
+ integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=
+
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
lodash@^4.17.10:
- version "4.17.20"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
- integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
version "1.0.1"
@@ -588,13 +603,6 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
-make-dir@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
- integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
- dependencies:
- semver "^6.0.0"
-
matcher@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca"
@@ -602,22 +610,17 @@ matcher@^3.0.0:
dependencies:
escape-string-regexp "^4.0.0"
-mime-db@1.44.0:
- version "1.44.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
- integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
-
-"mime-db@>= 1.43.0 < 2":
- version "1.45.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
- integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
+mime-db@1.47.0, "mime-db@>= 1.43.0 < 2":
+ version "1.47.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c"
+ integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==
mime-types@~2.1.24:
- version "2.1.27"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
- integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
+ version "2.1.30"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d"
+ integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==
dependencies:
- mime-db "1.44.0"
+ mime-db "1.47.0"
mimic-fn@^2.1.0:
version "2.1.0"
@@ -691,7 +694,7 @@ once@^1.3.1, once@^1.4.0:
dependencies:
wrappy "1"
-onetime@^5.1.0:
+onetime@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
@@ -722,11 +725,26 @@ p-try@^2.0.0:
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+pako@^1.0.10, pako@^1.0.11, pako@^1.0.6:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+ integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
+
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+pdf-lib@^1.16.0:
+ version "1.16.0"
+ resolved "https://registry.yarnpkg.com/pdf-lib/-/pdf-lib-1.16.0.tgz#63cacec0d6139bf7a670dea8bad747ebf4c1fb42"
+ integrity sha512-P/1SSmElOBKrPlbc+Sn7UxikRQbzVA64+4Dh6/uczPscvq/NatP9eryoOguyBTpTnzICNiG8EnMH4Ziqp2TnFA==
+ dependencies:
+ "@pdf-lib/standard-fonts" "^1.0.0"
+ "@pdf-lib/upng" "^1.0.1"
+ pako "^1.0.11"
+ tslib "^1.11.1"
+
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -790,6 +808,11 @@ readable-stream@^2.2.2:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
+require-from-string@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+ integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
responselike@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
@@ -814,13 +837,6 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-sanitize-filename@^1.6.2:
- version "1.6.3"
- resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378"
- integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==
- dependencies:
- truncate-utf8-bytes "^1.0.0"
-
sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@@ -831,15 +847,15 @@ semver-compare@^1.0.0:
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
-semver@^6.0.0:
+semver@^6.2.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
-semver@^7.3.2:
- version "7.3.4"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
- integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
+semver@^7.3.2, semver@^7.3.5:
+ version "7.3.5"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+ integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
dependencies:
lru-cache "^6.0.0"
@@ -855,11 +871,6 @@ sprintf-js@^1.1.2:
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-
string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
@@ -879,12 +890,10 @@ to-readable-stream@^1.0.0:
resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
-truncate-utf8-bytes@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b"
- integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys=
- dependencies:
- utf8-byte-length "^1.0.1"
+tslib@^1.11.1:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+ integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tunnel@^0.0.6:
version "0.0.6"
@@ -896,10 +905,10 @@ type-fest@^0.13.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
-type-fest@^0.16.0:
- version "0.16.0"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860"
- integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==
+type-fest@^1.0.2:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.1.1.tgz#210251e7f57357a1457269e6b34837fed067ac2c"
+ integrity sha512-RPDKc5KrIyKTP7Fk75LruUagqG6b+OTgXlCR2Z0aQDJFeIvL4/mhahSEtHmmVzXu4gmA0srkF/8FCH3WOWxTWA==
typedarray@^0.0.6:
version "0.0.6"
@@ -911,20 +920,15 @@ universalify@^0.1.0:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
-universalify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d"
- integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==
-
universalify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
uri-js@^4.2.2:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
- integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
dependencies:
punycode "^2.1.0"
@@ -935,11 +939,6 @@ url-parse-lax@^3.0.0:
dependencies:
prepend-http "^2.0.0"
-utf8-byte-length@^1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
- integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=
-
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"