7.0.8 release

Former-commit-id: 618eff1544
This commit is contained in:
Gaudenz Alder 2017-08-11 12:12:05 +02:00
parent 09b545c2f1
commit e463c32564
18 changed files with 1863 additions and 1738 deletions

View file

@ -1,3 +1,7 @@
11-AUG-2017: 7.0.8
- Fixes error handling in Confluence Cloud add-on
10-AUG-2017: 7.0.7
- Adds anonymize plugin (p=anon)

View file

@ -1 +1 @@
7.0.7
7.0.8

View file

@ -1,7 +1,7 @@
CACHE MANIFEST
# THIS FILE WAS GENERATED. DO NOT MODIFY!
# 08/10/2017 11:05 AM
# 08/11/2017 12:06 PM
app.html
index.html?offline=1

View file

@ -57,7 +57,7 @@ function createWindow (opt = {}) {
mainWindow.loadURL(wurl)
// Open the DevTools.
//if (__DEV__)
if (__DEV__)
{
mainWindow.webContents.openDevTools()
}

479
war/js/app.min.js vendored
View file

@ -2533,9 +2533,9 @@ a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultV
this.canvas.curveTo=mxUtils.bind(this,t.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,t.prototype.arcTo)}function r(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function u(){mxActor.call(this)}function y(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function A(){mxCylinder.call(this)}function F(){mxShape.call(this)}function G(){mxShape.call(this)}function w(){mxEllipse.call(this)}function J(){mxShape.call(this)}
function K(){mxShape.call(this)}function H(){mxRectangleShape.call(this)}function D(){mxShape.call(this)}function I(){mxShape.call(this)}function N(){mxShape.call(this)}function L(){mxCylinder.call(this)}function O(){mxDoubleEllipse.call(this)}function P(){mxDoubleEllipse.call(this)}function B(){mxArrowConnector.call(this);this.spacing=0}function E(){mxArrowConnector.call(this);this.spacing=0}function C(){mxActor.call(this)}function x(){mxRectangleShape.call(this)}function S(){mxActor.call(this)}
function V(){mxActor.call(this)}function T(){mxActor.call(this)}function R(){mxActor.call(this)}function ia(){mxActor.call(this)}function Y(){mxActor.call(this)}function ja(){mxActor.call(this)}function ka(){mxActor.call(this)}function Z(){mxActor.call(this)}function W(){mxActor.call(this)}function aa(){mxEllipse.call(this)}function ba(){mxEllipse.call(this)}function ca(){mxEllipse.call(this)}function fa(){mxRhombus.call(this)}function da(){mxEllipse.call(this)}function oa(){mxEllipse.call(this)}
function U(){mxEllipse.call(this)}function ga(){mxEllipse.call(this)}function Q(){mxActor.call(this)}function pa(){mxActor.call(this)}function qa(){mxActor.call(this)}function la(){mxConnector.call(this)}function Aa(a,b,c,d,e,f,g,h,k,l){g+=k;var na=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(na.x-e-g,na.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,
Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.cube=a;var wa=Math.tan(mxUtils.toRadians(30)),ma=(.5-wa)/2;mxUtils.extend(c,mxActor);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/wa);a.translate((d-b)/2,(e-b)/
2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ma);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-ma)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.isoRectangle=c;mxUtils.extend(d,mxCylinder);d.prototype.size=20;d.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+wa));f?(a.moveTo(0,.25*b),a.lineTo(.5*b,(.5-ma)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ma)*b),a.lineTo(.5*b,(1-ma)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ma),a.lineTo(b,.25*b),a.lineTo(b,
function U(){mxEllipse.call(this)}function ga(){mxEllipse.call(this)}function Q(){mxActor.call(this)}function pa(){mxActor.call(this)}function qa(){mxActor.call(this)}function la(){mxConnector.call(this)}function Ba(a,b,c,d,e,f,g,h,k,l){g+=k;var na=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(na.x-e-g,na.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,
Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.cube=a;var xa=Math.tan(mxUtils.toRadians(30)),ma=(.5-xa)/2;mxUtils.extend(c,mxActor);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/xa);a.translate((d-b)/2,(e-b)/
2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ma);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-ma)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.isoRectangle=c;mxUtils.extend(d,mxCylinder);d.prototype.size=20;d.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+xa));f?(a.moveTo(0,.25*b),a.lineTo(.5*b,(.5-ma)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ma)*b),a.lineTo(.5*b,(1-ma)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ma),a.lineTo(b,.25*b),a.lineTo(b,
.75*b),a.lineTo(.5*b,(1-ma)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.isoCube=d;mxUtils.extend(b,mxCylinder);b.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(f&&null!=this.fill||!f&&null==this.fill)a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||
(a.stroke(),a.begin()),a.translate(0,-b);f||(a.moveTo(0,b),a.curveTo(0,-b/3,d,-b/3,d,b),a.lineTo(d,e-b),a.curveTo(d,e+b/3,0,e+b/3,0,e-b),a.close())};b.prototype.getLabelBounds=function(a){var b=2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1);if(!this.flipV&&(null==this.direction||this.direction==mxConstants.DIRECTION_EAST)||this.flipV&&this.direction==mxConstants.DIRECTION_WEST)a.y+=b,a.height-=b;else if(!this.flipV&&this.direction==mxConstants.DIRECTION_SOUTH||this.flipV&&this.direction==
mxConstants.DIRECTION_NORTH)a.width-=b;else if(!this.flipV&&this.direction==mxConstants.DIRECTION_WEST||this.flipV&&(null==this.direction||this.direction==mxConstants.DIRECTION_EAST))a.height-=b;else if(!this.flipV&&this.direction==mxConstants.DIRECTION_NORTH||this.flipV&&this.direction==mxConstants.DIRECTION_SOUTH)a.x+=b,a.width-=b;return a};mxCellRenderer.prototype.defaultShapes.datastore=b;mxUtils.extend(e,mxCylinder);e.prototype.size=30;e.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,
@ -2550,18 +2550,18 @@ mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(b,0),
q;t.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};t.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)};t.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};t.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,
arguments);this.lastX=e;this.lastY=f};t.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};t.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),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),h=this.defaultVariation;
5>g&&(g=5,h/=3);for(var na=c(a-this.lastX)*d/g,c=c(b-this.lastY)*e/g,d=d/f,e=e/f,f=0;f<g;f++){var k=(Math.random()-.5)*h;this.originalLineTo.call(this.canvas,na*f+this.lastX-k*e,c*f+this.lastY-k*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};t.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};var Ea=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new t(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ea.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Fa=mxRectangleShape.prototype.isHtmlAllowed;
mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Fa.apply(this,arguments)};var Ga=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ga.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=
this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var Fa=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new t(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Fa.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ga=mxRectangleShape.prototype.isHtmlAllowed;
mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ga.apply(this,arguments)};var Ha=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ha.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=
mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadTo(b,c,b+f,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 Ha=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Ha.apply(this,arguments)};mxUtils.extend(r,mxRectangleShape);r.prototype.size=.1;r.prototype.isHtmlAllowed=function(){return!1};r.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.close(),a.end(),a.fillAndStroke()}};var Ia=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Ia.apply(this,arguments)};mxUtils.extend(r,mxRectangleShape);r.prototype.size=.1;r.prototype.isHtmlAllowed=function(){return!1};r.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+=d;a.width-=2*d}return a};r.prototype.paintForeground=function(a,b,c,d,e){var f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));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));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.prototype.defaultShapes.process=r;mxUtils.extend(v,mxActor);v.prototype.size=.2;v.prototype.redrawPath=function(a,b,c,d,e){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(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.prototype.defaultShapes.step=v;mxUtils.extend(u,mxHexagon);u.prototype.size=.25;u.prototype.redrawPath=function(a,b,c,d,e){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(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.prototype.defaultShapes.hexagon=u;mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.paintForeground=function(a,b,c,d,e){var f=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+f);a.lineTo(b+d/2,c+e-f);a.moveTo(b+f,c+e/2);a.lineTo(b+d-f,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
arguments)};mxCellRenderer.prototype.defaultShapes.plus=y;var Ba=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){Ba.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),Ba.apply(this,[a,b,c,d,e]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.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};z.prototype.paintForeground=function(a,b,c,
arguments)};mxCellRenderer.prototype.defaultShapes.plus=y;var Ca=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){Ca.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),Ca.apply(this,[a,b,c,d,e]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.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};z.prototype.paintForeground=function(a,b,c,
d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var f=0,g;do{g=mxCellRenderer.prototype.defaultShapes[this.style["symbol"+f]];if(null!=g){var h=this.style["symbol"+f+"Align"],na=this.style["symbol"+f+"VerticalAlign"],k=this.style["symbol"+f+"Width"],l=this.style["symbol"+f+"Height"],
m=this.style["symbol"+f+"Spacing"]||0,xa=this.style["symbol"+f+"VSpacing"]||m,X=this.style["symbol"+f+"ArcSpacing"];null!=X&&(X*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),m+=X,xa+=X);var X=b,n=c,X=h==mxConstants.ALIGN_CENTER?X+(d-k)/2:h==mxConstants.ALIGN_RIGHT?X+(d-k-m):X+m,n=na==mxConstants.ALIGN_MIDDLE?n+(e-l)/2:na==mxConstants.ALIGN_BOTTOM?n+(e-l-xa):n+xa;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,X,n,k,l);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
m=this.style["symbol"+f+"Spacing"]||0,ya=this.style["symbol"+f+"VSpacing"]||m,X=this.style["symbol"+f+"ArcSpacing"];null!=X&&(X*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),m+=X,ya+=X);var X=b,ra=c,X=h==mxConstants.ALIGN_CENTER?X+(d-k)/2:h==mxConstants.ALIGN_RIGHT?X+(d-k-m):X+m,ra=na==mxConstants.ALIGN_MIDDLE?ra+(e-l)/2:na==mxConstants.ALIGN_BOTTOM?ra+(e-l-ya):ra+ya;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,X,ra,k,l);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
arguments)};mxCellRenderer.prototype.defaultShapes.ext=z;mxUtils.extend(A,mxCylinder);A.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.prototype.defaultShapes.message=A;mxUtils.extend(F,mxShape);F.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.prototype.defaultShapes.umlActor=F;mxUtils.extend(G,mxShape);G.prototype.getLabelBounds=function(a){return new mxRectangle(a.x+a.width/6,a.y,5*a.width/6,a.height)};G.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.prototype.defaultShapes.umlBoundary=G;mxUtils.extend(w,mxEllipse);w.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.prototype.defaultShapes.umlEntity=w;mxUtils.extend(J,mxShape);J.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,
@ -2572,93 +2572,93 @@ a,b,c,d,Math.min(e,f))};mxCellRenderer.prototype.defaultShapes.umlLifeline=H;mxU
e){var f=this.corner,g=Math.min(d,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),h=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height))));a.begin();a.moveTo(b,c);a.lineTo(b+g,c);a.lineTo(b+g,c+Math.max(0,h-1.5*f));a.lineTo(b+Math.max(0,g-f),c+h);a.lineTo(b,c+h);a.close();a.fillAndStroke();a.begin();a.moveTo(b+g,c);a.lineTo(b+d,c);a.lineTo(b+d,c+e);a.lineTo(b,c+e);a.lineTo(b,c+h);a.stroke()};mxCellRenderer.prototype.defaultShapes.umlFrame=
D;mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=H.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.lineIntersection=function(a,b,c,d){var e=(d.y-c.y)*(b.x-a.x)-(d.x-c.x)*(b.y-a.y);if(0==e)return null;var f=a.y-c.y,f=((d.x-c.x)*f-(d.y-c.y)*(a.x-c.x))/e;c=a.x+f*(b.x-a.x);a=a.y+f*(b.y-a.y);return 0<f&&1>=f?(f=d.x-c,d=d.y-a,{dist:Math.sqrt(d*d+f*f),p:new mxPoint(c,a)}):null};mxPerimeter.getPerimeterPoint=function(a,b,c){for(var d=
!1,e=0;e<a.length-1;e++){var f=mxPerimeter.lineIntersection(a[e],a[e+1],b,c);null!=f&&(!d||d.dist>f.dist)&&(d=f)}return d.p};mxPerimeter.ParallelogramPerimeter=function(a,b,c,d){d=m.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d));b=a.width*Math.max(0,Math.min(1,d));d=a.x;var e=a.y,f=a.width,g=a.height;b=[new mxPoint(d+b,e),new mxPoint(d+f,e),new mxPoint(d+f-b,e+g),new mxPoint(d,e+g),new mxPoint(d+b,e)];d=a.getCenterX();a=a.getCenterY();return mxPerimeter.getPerimeterPoint(b,new mxPoint(d,
a),c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){d=n.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d));b=a.width*Math.max(0,Math.min(1,d));d=a.x;var e=a.y,f=a.width,g=a.height;b=[new mxPoint(d+b,e),new mxPoint(d+f-b,e),new mxPoint(d+f,e+g),new mxPoint(d,e+g),new mxPoint(d+b,e)];d=a.getCenterX();a=a.getCenterY();return mxPerimeter.getPerimeterPoint(b,new mxPoint(d,a),c)};mxStyleRegistry.putValue("trapezoidPerimeter",
mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){d=v.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d));d=a.width*Math.max(0,Math.min(1,d));var e=a.x,f=a.y,g=a.width,h=a.height;b=a.getCenterX();a=a.getCenterY();d=[new mxPoint(e,f),new mxPoint(e+g-d,f),new mxPoint(e+g,a),new mxPoint(e+g-d,f+h),new mxPoint(e,f+h),new mxPoint(e+d,a),new mxPoint(e,f)];return mxPerimeter.getPerimeterPoint(d,new mxPoint(b,a),c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);
mxPerimeter.HexagonPerimeter2=function(a,b,c,d){d=u.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d));d=a.width*Math.max(0,Math.min(1,d));var e=a.x,f=a.y,g=a.width,h=a.height;b=a.getCenterX();a=a.getCenterY();d=[new mxPoint(e+d,f),new mxPoint(e+g-d,f),new mxPoint(e+g,a),new mxPoint(e+g-d,f+h),new mxPoint(e+d,f+h),new mxPoint(e,a),new mxPoint(e+d,f)];return mxPerimeter.getPerimeterPoint(d,new mxPoint(b,a),c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);
mxUtils.extend(I,mxShape);I.prototype.size=10;I.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.prototype.defaultShapes.lollipop=I;mxUtils.extend(N,mxShape);N.prototype.size=10;N.prototype.inset=2;N.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.prototype.defaultShapes.requires=N;mxUtils.extend(L,mxCylinder);L.prototype.jettyWidth=32;L.prototype.jettyHeight=12;L.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,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+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,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.component=
L;mxUtils.extend(O,mxDoubleEllipse);O.prototype.outerStroke=!0;O.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.prototype.defaultShapes.endState=O;mxUtils.extend(P,O);P.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=P;mxUtils.extend(B,mxArrowConnector);B.prototype.defaultWidth=4;B.prototype.isOpenEnded=
function(){return!0};B.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};B.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=B;mxUtils.extend(E,mxArrowConnector);E.prototype.defaultWidth=10;E.prototype.defaultArrowWidth=20;E.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};E.prototype.getEndArrowWidth=
function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};E.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=E;mxUtils.extend(C,mxActor);C.prototype.size=30;C.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.prototype.defaultShapes.manualInput=C;mxUtils.extend(x,mxRectangleShape);x.prototype.dx=20;x.prototype.dy=20;x.prototype.isHtmlAllowed=function(){return!1};x.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.prototype.defaultShapes.internalStorage=x;mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy=20;S.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.prototype.defaultShapes.corner=
S;mxUtils.extend(V,mxActor);V.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.prototype.defaultShapes.crossbar=V;mxUtils.extend(T,mxActor);T.prototype.dx=20;T.prototype.dy=20;T.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.prototype.defaultShapes.tee=T;mxUtils.extend(R,mxActor);R.prototype.arrowWidth=.3;R.prototype.arrowSize=.2;R.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.prototype.defaultShapes.singleArrow=
R;mxUtils.extend(ia,mxActor);ia.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",R.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",R.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.prototype.defaultShapes.doubleArrow=ia;mxUtils.extend(Y,mxActor);Y.prototype.size=.1;Y.prototype.redrawPath=function(a,b,c,d,e){b=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.prototype.defaultShapes.dataStorage=Y;mxUtils.extend(ja,
mxActor);ja.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.prototype.defaultShapes.or=ja;mxUtils.extend(ka,mxActor);ka.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.prototype.defaultShapes.xor=ka;mxUtils.extend(Z,mxActor);Z.prototype.size=20;Z.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.prototype.defaultShapes.loopLimit=Z;mxUtils.extend(W,mxActor);W.prototype.size=.375;W.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.prototype.defaultShapes.offPageConnector=W;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/2,c+e);a.lineTo(b+d,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.tapeData=
aa;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.prototype.defaultShapes.orEllipse=ba;mxUtils.extend(ca,mxEllipse);ca.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.prototype.defaultShapes.sumEllipse=ca;mxUtils.extend(fa,mxRhombus);fa.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.prototype.defaultShapes.sortShape=fa;mxUtils.extend(da,
mxEllipse);da.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.prototype.defaultShapes.collate=da;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.prototype.defaultShapes.dimension=oa;mxUtils.extend(U,mxEllipse);U.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),"1"==mxUtils.getValue(this.style,"top","1")&&(a.begin(),
a.moveTo(b,c),a.lineTo(b+d,c),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"right","1")&&(a.begin(),a.moveTo(b+d,c),a.lineTo(b+d,c+e),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"bottom","1")&&(a.begin(),a.moveTo(b+d,c+e),a.lineTo(b,c+e),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"left","1")&&(a.begin(),a.moveTo(b,c+e),a.lineTo(b,c),a.end(),a.stroke()))};mxCellRenderer.prototype.defaultShapes.partialRectangle=U;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.prototype.defaultShapes.lineEllipse=ga;mxUtils.extend(Q,mxActor);Q.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.prototype.defaultShapes.delay=
Q;mxUtils.extend(pa,mxActor);pa.prototype.size=.2;pa.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.prototype.defaultShapes.cross=pa;mxUtils.extend(qa,mxActor);qa.prototype.size=
.25;qa.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.prototype.defaultShapes.display=qa;mxUtils.extend(la,mxConnector);la.prototype.origPaintEdgeShape=la.prototype.paintEdgeShape;la.prototype.paintEdgeShape=function(a,b,c){var d=a.state.dashed,e=a.state.fixDash;la.prototype.origPaintEdgeShape.apply(this,
arguments);if(3<=a.state.strokeWidth){var f=mxUtils.getValue(this.style,"fillColor",null);null!=f&&(a.setStrokeColor(f),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(d,e),la.prototype.origPaintEdgeShape.apply(this,arguments))}};mxCellRenderer.prototype.defaultShapes.filledEdge=la;mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",
function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Aa);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=Aa.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*
k,m.y-2*q+f*k);a.moveTo(m.x-p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);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 m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);h?a.lineTo(m.x-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.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,m){f*=h+l;g*=h+l;var n=e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,b,c){return ra(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})},ra=
function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,h=a.view.translate,k=a.view.scale,l=c?f[0]:f[g],m=c?f[1]:f[g-1],n=m.x-l.x,p=m.y-l.y,q=Math.sqrt(n*n+p*p);return M(a,b,function(a){a=d.call(this,q,n/q,p/q,l,m);return new mxPoint(a.x/k-h.x,a.y/k-h.y)},function(a,b,c){a=Math.sqrt(n*n+p*p);b.x=(b.x+h.x)*k;b.y=(b.y+h.y)*k;e.call(this,a,n/a,p/a,l,m,b,c)})},ha=function(a){return function(b){return[M(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
"arrowWidth",R.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",R.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))})]}},ya=function(a,b,c){return function(d){var e=[M(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)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ea(d));return e}},ta=function(a,b,c){c=null!=c?c:1;return function(d){var e=[M(d,["size"],function(b){var c=parseFloat(mxUtils.getValue(this.state.style,"size",a));return new mxPoint(b.x+c*b.width,b.getCenterY())},
function(a,b){this.state.style.size=Math.max(0,Math.min(c,(b.x-a.x)/a.width))})];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ea(d));return e}},Da=function(a){return function(b){var c=[M(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))})];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,
!1)&&c.push(ea(b));return c}},sa=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ea(a));return b}},ea=function(a,b){return M(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=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)*d),c.y+(null!=b?b:c.height/8))},function(a,b,c){this.state.style[mxConstants.STYLE_ARCSIZE]=
Math.round(Math.min(50,Math.max(0,100*(a.width-b.x+a.x)/Math.min(a.width,a.height))))})},M=function(a,b,c,d,e){a=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);a.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};a.getPosition=c;a.setPosition=d;a.ignoreGrid=null!=e?e:!0;return a},za={link:function(a){return[Ca(a,!0,10),Ca(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(ra(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(ra(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(ra(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(ra(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*
a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=
a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[M(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,
mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=
parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ea(a,c/2))}return b},label:sa(),ext:sa(),rectangle:sa(),triangle:sa(),rhombus:sa(),umlLifeline:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",H.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){var b=
[M(a,["width","height"],function(a){var b=Math.max(D.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",D.prototype.width))),c=Math.max(1.5*D.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",D.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(D.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*D.prototype.corner,Math.min(a.height,b.y-a.y)))},
!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ea(a));return b},process:function(a){var b=[M(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",r.prototype.size))));return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ea(a));return b},cross:function(a){return[M(a,["size"],function(a){var b=
Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",pa.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",
e.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[M(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",C.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,
mxConstants.STYLE_ROUNDED,!1)&&b.push(ea(a));return b},dataStorage:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Y.prototype.size))));return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width))})]},internalStorage:function(a){var b=[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",x.prototype.dx))),
c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",x.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ea(a));return b},corner:function(a){return[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",S.prototype.dx))),
c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",S.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",T.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",T.prototype.dy)));
return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:ha(1),doubleArrow:ha(.5),folder:function(a){return[M(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",h.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",
h.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",h.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",h.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[M(a,["size"],
function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,
Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",W.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))})]},step:ta(v.prototype.size,!0),hexagon:ta(u.prototype.size,!0,.5),curlyBracket:ta(p.prototype.size,!1),display:ta(qa.prototype.size,!1),cube:ya(1,a.prototype.size,
!1),card:ya(.5,g.prototype.size,!0),loopLimit:ya(.5,Z.prototype.size,!0),trapezoid:Da(.5),parallelogram:Da(1)};Graph.createHandle=M;Graph.handleFactory=za;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=za[a];if(null!=a)return a(this.state)}return null};
mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=za[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var ua=new mxPoint(1,0),va=new mxPoint(1,0),ha=mxUtils.toRadians(-30),ua=mxUtils.getRotatedPoint(ua,Math.cos(ha),Math.sin(ha)),
ha=mxUtils.toRadians(-150),va=mxUtils.getRotatedPoint(va,Math.cos(ha),Math.sin(ha));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=ua.x,l=ua.y,m=va.x,n=va.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=
g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ia=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=
function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Ia.apply(this,arguments)};c.prototype.constraints=[];d.prototype.constraints=[];mxRectangleShape.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),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,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))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;y.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=
mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;Y.prototype.constraints=mxRectangleShape.prototype.constraints;aa.prototype.constraints=mxEllipse.prototype.constraints;ba.prototype.constraints=mxEllipse.prototype.constraints;ca.prototype.constraints=mxEllipse.prototype.constraints;
ga.prototype.constraints=mxEllipse.prototype.constraints;C.prototype.constraints=mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=mxRectangleShape.prototype.constraints;W.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)];F.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)];L.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)];
f.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)];k.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)];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(.25,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(.1,.25),!1),new mxConnectionConstraint(new mxPoint(.2,.5),!1),new mxConnectionConstraint(new mxPoint(.1,.75),!1),new mxConnectionConstraint(new mxPoint(.9,.25),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.9,.75),!1)];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)];I.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(.125,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.125,.75),!1),new mxConnectionConstraint(new mxPoint(.875,
.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.875,.75),!1),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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=
mxRectangleShape.prototype.constraints;l.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;T.prototype.constraints=null;S.prototype.constraints=null;V.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)];R.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ia.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];pa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,
1),!1)];H.prototype.constraints=null;ja.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)];ka.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)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
(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.lineIntersection=function(a,b,c,d){var e=(d.y-c.y)*(b.x-a.x)-(d.x-c.x)*(b.y-a.y);if(0==e)return null;var f=a.y-c.y,f=((d.x-c.x)*f-(d.y-c.y)*(a.x-c.x))/e;c=a.x+f*(b.x-a.x);a=a.y+f*(b.y-a.y);return 0<=f&&1>=f?(f=d.x-c,d=d.y-a,{dist:Math.sqrt(d*d+f*f),p:new mxPoint(c,a)}):null};mxPerimeter.getPerimeterPoint=function(a,b,c){for(var d=
!1,e=0;e<a.length-1;e++){var f=mxPerimeter.lineIntersection(a[e],a[e+1],b,c);null!=f&&(!d||d.dist>f.dist)&&(d=f)}return d.p};mxPerimeter.ParallelogramPerimeter=function(a,b,c,d){var e=m.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.width*Math.max(0,Math.min(1,e));b=a.x;var g=a.y,e=a.width,h=a.height,f=[new mxPoint(b+f,g),new mxPoint(b+e,g),new mxPoint(b+e-f,g+h),new mxPoint(b,g+h),new mxPoint(b+f,g)],g=a.getCenterX();a=a.getCenterY();a=new mxPoint(g,a);d&&(c.x<b||c.x>b+e?
a.y=c.y:a.x=c.x);return mxPerimeter.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){var e=n.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.width*Math.max(0,Math.min(1,e));b=a.x;var g=a.y,e=a.width,h=a.height,f=[new mxPoint(b+f,g),new mxPoint(b+e-f,g),new mxPoint(b+e,g+h),new mxPoint(b,g+h),new mxPoint(b+f,g)],g=a.getCenterX();a=a.getCenterY();a=new mxPoint(g,a);
d&&(c.x<b||c.x>b+e?a.y=c.y:a.x=c.x);return mxPerimeter.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){var e=v.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.width*Math.max(0,Math.min(1,e));b=a.x;var g=a.y,e=a.width,h=a.height,k=a.getCenterX();a=a.getCenterY();f=[new mxPoint(b,g),new mxPoint(b+e-f,g),new mxPoint(b+e,a),new mxPoint(b+e-f,g+h),new mxPoint(b,g+h),new mxPoint(b+
f,a),new mxPoint(b,g)];a=new mxPoint(k,a);d&&(c.x<b||c.x>b+e?a.y=c.y:a.x=c.x);return mxPerimeter.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e=u.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.width*Math.max(0,Math.min(1,e));b=a.x;var g=a.y,e=a.width,h=a.height,k=a.getCenterX();a=a.getCenterY();f=[new mxPoint(b+f,g),new mxPoint(b+e-f,g),new mxPoint(b+e,a),new mxPoint(b+e-f,
g+h),new mxPoint(b+f,g+h),new mxPoint(b,a),new mxPoint(b+f,g)];a=new mxPoint(k,a);d&&(c.x<b||c.x>b+e?a.y=c.y:a.x=c.x);return mxPerimeter.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(I,mxShape);I.prototype.size=10;I.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.prototype.defaultShapes.lollipop=I;mxUtils.extend(N,mxShape);N.prototype.size=10;N.prototype.inset=2;N.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.prototype.defaultShapes.requires=N;mxUtils.extend(L,mxCylinder);L.prototype.jettyWidth=32;L.prototype.jettyHeight=12;L.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,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+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,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.component=L;mxUtils.extend(O,mxDoubleEllipse);O.prototype.outerStroke=!0;O.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.prototype.defaultShapes.endState=O;mxUtils.extend(P,O);P.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=P;mxUtils.extend(B,mxArrowConnector);B.prototype.defaultWidth=4;B.prototype.isOpenEnded=function(){return!0};B.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};B.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=
B;mxUtils.extend(E,mxArrowConnector);E.prototype.defaultWidth=10;E.prototype.defaultArrowWidth=20;E.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};E.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};E.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=
E;mxUtils.extend(C,mxActor);C.prototype.size=30;C.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.prototype.defaultShapes.manualInput=C;mxUtils.extend(x,mxRectangleShape);x.prototype.dx=20;x.prototype.dy=20;x.prototype.isHtmlAllowed=
function(){return!1};x.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.prototype.defaultShapes.internalStorage=x;mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy=20;S.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.prototype.defaultShapes.corner=S;mxUtils.extend(V,mxActor);V.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.prototype.defaultShapes.crossbar=V;mxUtils.extend(T,mxActor);T.prototype.dx=20;
T.prototype.dy=20;T.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.prototype.defaultShapes.tee=T;mxUtils.extend(R,mxActor);R.prototype.arrowWidth=.3;R.prototype.arrowSize=.2;R.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.prototype.defaultShapes.singleArrow=R;mxUtils.extend(ia,mxActor);ia.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",R.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"arrowSize",R.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.prototype.defaultShapes.doubleArrow=ia;mxUtils.extend(Y,mxActor);Y.prototype.size=.1;Y.prototype.redrawPath=function(a,
b,c,d,e){b=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.prototype.defaultShapes.dataStorage=Y;mxUtils.extend(ja,mxActor);ja.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.prototype.defaultShapes.or=ja;mxUtils.extend(ka,mxActor);ka.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.prototype.defaultShapes.xor=ka;mxUtils.extend(Z,mxActor);Z.prototype.size=20;Z.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.prototype.defaultShapes.loopLimit=Z;mxUtils.extend(W,mxActor);W.prototype.size=.375;W.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.prototype.defaultShapes.offPageConnector=W;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/2,c+e);a.lineTo(b+d,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.tapeData=aa;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.prototype.defaultShapes.orEllipse=ba;mxUtils.extend(ca,mxEllipse);ca.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.prototype.defaultShapes.sumEllipse=
ca;mxUtils.extend(fa,mxRhombus);fa.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.prototype.defaultShapes.sortShape=fa;mxUtils.extend(da,mxEllipse);da.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.prototype.defaultShapes.collate=da;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.prototype.defaultShapes.dimension=oa;mxUtils.extend(U,
mxEllipse);U.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),"1"==mxUtils.getValue(this.style,"top","1")&&(a.begin(),a.moveTo(b,c),a.lineTo(b+d,c),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"right","1")&&(a.begin(),a.moveTo(b+d,c),a.lineTo(b+d,c+e),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"bottom","1")&&
(a.begin(),a.moveTo(b+d,c+e),a.lineTo(b,c+e),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"left","1")&&(a.begin(),a.moveTo(b,c+e),a.lineTo(b,c),a.end(),a.stroke()))};mxCellRenderer.prototype.defaultShapes.partialRectangle=U;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.prototype.defaultShapes.lineEllipse=ga;mxUtils.extend(Q,mxActor);Q.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.prototype.defaultShapes.delay=Q;mxUtils.extend(pa,mxActor);pa.prototype.size=.2;pa.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.prototype.defaultShapes.cross=pa;mxUtils.extend(qa,mxActor);qa.prototype.size=.25;qa.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.prototype.defaultShapes.display=qa;mxUtils.extend(la,mxConnector);la.prototype.origPaintEdgeShape=la.prototype.paintEdgeShape;la.prototype.paintEdgeShape=function(a,b,c){var d=a.state.dashed,e=a.state.fixDash;la.prototype.origPaintEdgeShape.apply(this,arguments);if(3<=a.state.strokeWidth){var f=mxUtils.getValue(this.style,"fillColor",null);null!=f&&(a.setStrokeColor(f),a.setStrokeWidth(a.state.strokeWidth-
2),a.setDashed(d,e),la.prototype.origPaintEdgeShape.apply(this,arguments))}};mxCellRenderer.prototype.defaultShapes.filledEdge=la;mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-
3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Ba);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=Ba.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*k,m.y-2*q+f*k);a.moveTo(m.x-p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);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 m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);h?a.lineTo(m.x-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.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,m){f*=h+l;g*=h+l;var n=e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/
a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Da=function(a,b,c){return sa(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})},sa=function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,h=a.view.translate,k=a.view.scale,l=c?f[0]:f[g],m=c?f[1]:f[g-1],n=m.x-l.x,p=m.y-l.y,q=Math.sqrt(n*
n+p*p);return M(a,b,function(a){a=d.call(this,q,n/q,p/q,l,m);return new mxPoint(a.x/k-h.x,a.y/k-h.y)},function(a,b,c){a=Math.sqrt(n*n+p*p);b.x=(b.x+h.x)*k;b.y=(b.y+h.y)*k;e.call(this,a,n/a,p/a,l,m,b,c)})},ha=function(a){return function(b){return[M(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",R.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",R.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))})]}},za=function(a,b,c){return function(d){var e=[M(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)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ea(d));return e}},ua=function(a,b,c){c=null!=c?c:1;return function(d){var e=[M(d,["size"],function(b){var c=parseFloat(mxUtils.getValue(this.state.style,"size",a));return new mxPoint(b.x+c*b.width,b.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(c,(b.x-a.x)/a.width))})];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ea(d));return e}},Ea=function(a){return function(b){var c=
[M(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))})];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ea(b));return c}},ta=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ea(a));return b}},ea=function(a,b){return M(a,[mxConstants.STYLE_ARCSIZE],
function(c){var d=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)*d),c.y+(null!=b?b:c.height/8))},function(a,b,c){this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(a.width-b.x+a.x)/Math.min(a.width,a.height))))})},M=function(a,b,c,d,e){a=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);
a.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};a.getPosition=c;a.setPosition=d;a.ignoreGrid=null!=e?e:!0;return a},Aa={link:function(a){return[Da(a,!0,10),Da(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(sa(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(sa(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(sa(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(sa(a,
["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-
d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=
a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[M(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,
c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ea(a,c/2))}return b},label:ta(),ext:ta(),rectangle:ta(),triangle:ta(),rhombus:ta(),umlLifeline:function(a){return[M(a,
["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",H.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){var b=[M(a,["width","height"],function(a){var b=Math.max(D.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",D.prototype.width))),c=Math.max(1.5*D.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,
"height",D.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(D.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*D.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ea(a));return b},process:function(a){var b=[M(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",r.prototype.size))));
return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ea(a));return b},cross:function(a){return[M(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",pa.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=
Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",e.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[M(a,["size"],
function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",C.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ea(a));return b},dataStorage:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Y.prototype.size))));return new mxPoint(a.x+
(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width))})]},internalStorage:function(a){var b=[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",x.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",x.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,
Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ea(a));return b},corner:function(a){return[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",S.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",S.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,
Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",T.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",T.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:ha(1),doubleArrow:ha(.5),
folder:function(a){return[M(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",h.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",h.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",h.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,
"tabPosition",h.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},
tape:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",W.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))})]},step:ua(v.prototype.size,!0),hexagon:ua(u.prototype.size,!0,.5),curlyBracket:ua(p.prototype.size,!1),display:ua(qa.prototype.size,!1),cube:za(1,a.prototype.size,!1),card:za(.5,g.prototype.size,!0),loopLimit:za(.5,Z.prototype.size,!0),trapezoid:Ea(.5),parallelogram:Ea(1)};Graph.createHandle=M;Graph.handleFactory=Aa;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&
this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=Aa[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
a=Aa[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var va=new mxPoint(1,0),wa=new mxPoint(1,0),ha=mxUtils.toRadians(-30),va=mxUtils.getRotatedPoint(va,Math.cos(ha),Math.sin(ha)),ha=mxUtils.toRadians(-150),wa=mxUtils.getRotatedPoint(wa,Math.cos(ha),Math.sin(ha));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=va.x,l=va.y,m=wa.x,n=wa.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};
var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ja=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Ja.apply(this,arguments)};c.prototype.constraints=[];d.prototype.constraints=[];mxRectangleShape.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),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),
new mxConnectionConstraint(new mxPoint(.75,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))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;
mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;y.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;
Y.prototype.constraints=mxRectangleShape.prototype.constraints;aa.prototype.constraints=mxEllipse.prototype.constraints;ba.prototype.constraints=mxEllipse.prototype.constraints;ca.prototype.constraints=mxEllipse.prototype.constraints;ga.prototype.constraints=mxEllipse.prototype.constraints;C.prototype.constraints=mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=
mxRectangleShape.prototype.constraints;W.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)];F.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)];L.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)];f.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)];k.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)];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(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(.1,.25),!1),new mxConnectionConstraint(new mxPoint(.2,.5),!1),new mxConnectionConstraint(new mxPoint(.1,.75),!1),new mxConnectionConstraint(new mxPoint(.9,.25),!1),
new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.9,.75),!1)];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)];I.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(.125,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.125,.75),!1),new mxConnectionConstraint(new mxPoint(.875,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.875,.75),!1),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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=mxRectangleShape.prototype.constraints;l.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;T.prototype.constraints=null;S.prototype.constraints=null;V.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)];R.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ia.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),
new mxConnectionConstraint(new mxPoint(1,.5),!1)];pa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];H.prototype.constraints=null;ja.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)];ka.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)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){b.escape();var c=b.getDeletableCells(b.getSelectionCells());if(null!=c&&0<c.length){var d=b.model.getParents(c);b.removeCells(c,a);if(null!=d){a=[];for(c=0;c<d.length;c++)b.model.contains(d[c])&&(b.model.isVertex(d[c])||b.model.isEdge(d[c]))&&a.push(d[c]);b.setSelectionCells(a)}}}var c=this.editorUi,d=c.editor,b=d.graph,e=function(){return Action.prototype.isEnabled.apply(this,arguments)&&b.isEnabled()};this.addAction("new...",function(){window.open(c.getUrl())});
this.addAction("open...",function(){window.openNew=!0;window.openKey="open";c.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){c.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a),e=new mxGraphModel;(new mxCodec(c)).decode(c.documentElement,e);var f=e.getChildren(e.getChildAt(e.getRoot(),0));d.graph.setSelectionCells(d.graph.importCells(f))}catch(n){mxUtils.alert(mxResources.get("invalidOrMissingFile")+
": "+n.message)}}));c.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=e;this.addAction("save",function(){c.saveFile(!1)},null,null,"Ctrl+S").isEnabled=e;this.addAction("saveAs...",function(){c.saveFile(!0)},null,null,"Ctrl+Shift+S").isEnabled=e;this.addAction("export...",function(){c.showDialog((new ExportDialog(c)).container,300,230,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(c);c.showDialog(a.container,620,
@ -5876,10 +5876,10 @@ StorageFile.prototype.isRenamable=function(){return!0};StorageFile.prototype.sav
StorageFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable()){var f=mxUtils.bind(this,function(){this.isRenamable()&&(this.title=a);try{this.ui.setLocalData(this.title,this.getData(),mxUtils.bind(this,function(){this.setModified(!1);this.contentChanged();null!=c&&c()}))}catch(g){null!=d&&d(g)}});this.isRenamable()&&"."==a.charAt(0)&&null!=d?d({message:mxResources.get("invalidName")}):this.ui.getLocalData(a,mxUtils.bind(this,function(b){this.isRenamable()&&this.getTitle()!=a&&null!=b?this.ui.confirm(mxResources.get("replaceIt",
[a]),f,d):f()}))}else null!=c&&c()};StorageFile.prototype.rename=function(a,b,c){var d=this.getTitle();this.title=a;this.hasSameExtension(d,a)||this.setData(this.ui.getFileData());this.saveFile(a,!1,mxUtils.bind(this,function(){d!=a&&this.ui.removeLocalData(d,b)}),c)};StorageFile.prototype.open=function(){DrawioFile.prototype.open.apply(this,arguments);this.saveFile(this.getTitle())};
StorageFile.prototype.destroy=function(){DrawioFile.prototype.destroy.apply(this,arguments);null!=this.storageListener&&(mxEvent.removeListener(window,"storage",this.storageListener),this.storageListener=null)};StorageLibrary=function(a,b,c){StorageFile.call(this,a,b,c)};mxUtils.extend(StorageLibrary,StorageFile);StorageLibrary.prototype.isAutosave=function(){return!0};StorageLibrary.prototype.saveAs=function(a,b,c){this.saveFile(a,!1,b,c)};StorageLibrary.prototype.getHash=function(){return"L"+encodeURIComponent(this.title)};StorageLibrary.prototype.getTitle=function(){return".scratchpad"==this.title?mxResources.get("scratchpad"):this.title};
StorageLibrary.prototype.isRenamable=function(a,b,c){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};UrlLibrary=function(a,b,c){StorageFile.call(this,a,b,c);a=c;b=a.lastIndexOf("/");0<=b&&(a=a.substring(b+1));this.fname=a};mxUtils.extend(UrlLibrary,StorageFile);UrlLibrary.prototype.getHash=function(){return"U"+encodeURIComponent(this.title)};UrlLibrary.prototype.getTitle=function(){return this.fname};UrlLibrary.prototype.isAutosave=function(){return!1};UrlLibrary.prototype.isEditable=function(a,b,c){return!1};UrlLibrary.prototype.saveAs=function(a,b,c){};UrlLibrary.prototype.open=function(){};var StorageDialog=function(a,b,c){function d(d,e,f,g,q,k){function w(){mxEvent.addListener(u,"click",null!=k?k:function(){f!=App.MODE_GOOGLE||a.isDriveDomain()?f==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(f,l.checked);b()})):(a.setMode(f,l.checked),b()):window.location.hostname=DriveClient.prototype.newAppHostname})}var u=document.createElement("a");u.style.overflow="hidden";u.style.display=
mxClient.IS_QUIRKS?"inline":"inline-block";u.className="geBaseButton";u.style.fontSize="11px";u.style.position="relative";u.style.margin="4px";u.style.padding="8px 10px 12px 10px";u.style.width="68px";u.style.height="80px";u.style.whiteSpace="nowrap";u.setAttribute("title",e);mxClient.IS_QUIRKS&&(u.style.cssFloat="left",u.style.zoom="1");var x=document.createElement("div");x.style.textOverflow="ellipsis";x.style.overflow="hidden";if(null!=d){var t=document.createElement("img");t.setAttribute("src",
d);t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";u.appendChild(t)}else x.style.paddingTop="5px",x.style.whiteSpace="normal",mxClient.IS_IOS?(u.style.padding="0px 10px 20px 10px",u.style.top="6px"):mxClient.IS_FF&&(x.style.paddingTop="0px",x.style.marginTop="-2px");u.appendChild(x);mxUtils.write(x,e);if(null!=q)for(d=0;d<q.length;d++)mxUtils.br(x),mxUtils.write(x,q[d]);if(null!=g&&null==a[g]){t.style.visibility=
"hidden";mxUtils.setOpacity(x,10);var p=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});p.spin(u);var v=window.setTimeout(function(){null==a[g]&&(p.stop(),u.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[g]&&(window.clearTimeout(v),mxUtils.setOpacity(x,100),t.style.visibility="",p.stop(),w(),"drive"==g&&null!=n.parentNode&&n.parentNode.removeChild(n))}))}else w();h.appendChild(u);
StorageLibrary.prototype.isRenamable=function(a,b,c){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};UrlLibrary=function(a,b,c){StorageFile.call(this,a,b,c);a=c;b=a.lastIndexOf("/");0<=b&&(a=a.substring(b+1));this.fname=a};mxUtils.extend(UrlLibrary,StorageFile);UrlLibrary.prototype.getHash=function(){return"U"+encodeURIComponent(this.title)};UrlLibrary.prototype.getTitle=function(){return this.fname};UrlLibrary.prototype.isAutosave=function(){return!1};UrlLibrary.prototype.isEditable=function(a,b,c){return!1};UrlLibrary.prototype.saveAs=function(a,b,c){};UrlLibrary.prototype.open=function(){};var StorageDialog=function(a,b,c){function d(e,d,f,g,q,t){function w(){mxEvent.addListener(u,"click",null!=t?t:function(){f!=App.MODE_GOOGLE||a.isDriveDomain()?f==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(f,l.checked);b()})):(a.setMode(f,l.checked),b()):window.location.hostname=DriveClient.prototype.newAppHostname})}var u=document.createElement("a");u.style.overflow="hidden";u.style.display=
mxClient.IS_QUIRKS?"inline":"inline-block";u.className="geBaseButton";u.style.fontSize="11px";u.style.position="relative";u.style.margin="4px";u.style.padding="8px 10px 12px 10px";u.style.width="68px";u.style.height="80px";u.style.whiteSpace="nowrap";u.setAttribute("title",d);mxClient.IS_QUIRKS&&(u.style.cssFloat="left",u.style.zoom="1");var x=document.createElement("div");x.style.textOverflow="ellipsis";x.style.overflow="hidden";if(null!=e){var k=document.createElement("img");k.setAttribute("src",
e);k.setAttribute("border","0");k.setAttribute("align","absmiddle");k.style.width="60px";k.style.height="60px";k.style.paddingBottom="6px";u.appendChild(k)}else x.style.paddingTop="5px",x.style.whiteSpace="normal",mxClient.IS_IOS?(u.style.padding="0px 10px 20px 10px",u.style.top="6px"):mxClient.IS_FF&&(x.style.paddingTop="0px",x.style.marginTop="-2px");u.appendChild(x);mxUtils.write(x,d);if(null!=q)for(e=0;e<q.length;e++)mxUtils.br(x),mxUtils.write(x,q[e]);if(null!=g&&null==a[g]){k.style.visibility=
"hidden";mxUtils.setOpacity(x,10);var p=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});p.spin(u);var v=window.setTimeout(function(){null==a[g]&&(p.stop(),u.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[g]&&(window.clearTimeout(v),mxUtils.setOpacity(x,100),k.style.visibility="",p.stop(),w(),"drive"==g&&null!=n.parentNode&&n.parentNode.removeChild(n))}))}else w();h.appendChild(u);
++m>=c&&(mxUtils.br(h),m=0)}c=null!=c?c:3;var f=document.createElement("div");f.style.textAlign="center";f.style.whiteSpace="nowrap";f.style.paddingTop="0px";f.style.paddingBottom="20px";var g=a.addLanguageMenu(f);null!=g&&(g.style.bottom="28px");if(!a.isOffline()&&1<a.getServiceCount()){g=document.createElement("a");g.setAttribute("href","https://support.draw.io/display/DO/Selecting+Storage");g.setAttribute("title",mxResources.get("help"));g.setAttribute("target","_blank");g.style.position="absolute";
g.style.textDecoration="none";g.style.cursor="pointer";g.style.fontSize="12px";g.style.bottom="28px";g.style.left="26px";g.style.color="gray";var k=document.createElement("img");k.setAttribute("border","0");k.setAttribute("valign","bottom");k.setAttribute("src",Editor.helpImage);k.style.marginRight="2px";g.appendChild(k);mxUtils.write(g,mxResources.get("help"));f.appendChild(g)}var e=document.createElement("div");e.style.position="absolute";e.style.cursor="pointer";e.style.fontSize="12px";e.style.bottom=
"28px";e.style.color="gray";mxUtils.write(e,mxResources.get("decideLater"));a.isOfflineApp()?e.style.right="20px":(mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,0)"),e.style.left="50%");this.init=function(){if(mxClient.IS_QUIRKS||8==document.documentMode)e.style.marginLeft=-Math.round(e.clientWidth/2)+"px"};f.appendChild(e);mxEvent.addListener(e,"click",function(){a.hideDialog();var b=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,null,null,null,null,null,!0);Editor.useLocalStorage=
@ -5887,8 +5887,8 @@ b});var h=document.createElement("div");mxClient.IS_QUIRKS&&(h.style.whiteSpace=
"16px";g.style.margin="0px";g.style.color="gray";mxUtils.write(g,mxResources.get("saveDiagramsTo")+":");f.appendChild(g);"function"===typeof window.DriveClient&&d(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive");null!=a.gitHub&&d(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub");"function"===typeof window.DropboxClient&&d(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox");"function"===typeof window.OneDriveClient&&
d(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive");mxClient.IS_IOS&&"device"!=urlParams.storage||d(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);!isLocalStorage||"1"!=urlParams.browser&&"1"!=urlParams.offline?!Graph.fileSupport||mxClient.IS_IE||mxClient.IS_IE11||d(null,mxResources.get("import"),null,null,["",mxResources.get("gliffy"),mxResources.get("formatVssx"),mxResources.get("formatVsdx"),mxResources.get("lucidchart")],
function(){var b=document.createElement("input");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(){null!=b.files&&(a.hideDialog(),a.openFiles(b.files,!0))});b.click()}):d(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER);f.appendChild(h);g=document.createElement("p");g.style.marginTop="12px";g.style.marginBottom="10px";g.appendChild(l);k=document.createElement("span");k.style.color="gray";k.style.fontSize="12px";mxUtils.write(k," "+mxResources.get("rememberThisSetting"));
g.appendChild(k);mxUtils.br(g);var p=a.getRecent();if(null!=p&&0<p.length){var t=document.createElement("select");t.style.marginTop="14px";t.style.width="140px";var q=document.createElement("option");q.setAttribute("value","");q.setAttribute("selected","selected");q.style.textAlign="center";mxUtils.write(q,mxResources.get("openRecent")+"...");t.appendChild(q);for(q=0;q<p.length;q++)(function(a){var b=a.mode;b==App.MODE_GOOGLE?b="googleDrive":b==App.MODE_ONEDRIVE&&(b="oneDrive");var c=document.createElement("option");
c.setAttribute("value",a.id);mxUtils.write(c,a.title+" ("+mxResources.get(b)+")");t.appendChild(c)})(p[q]);g.appendChild(t);mxEvent.addListener(t,"change",function(b){""!=t.value&&a.loadFile(t.value)})}else g.style.marginTop="20px",h.style.padding="30px 0px 26px 0px";h.appendChild(g);mxEvent.addListener(k,"click",function(a){l.checked=!l.checked;mxEvent.consume(a)});mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null==document.documentMode||10<=document.documentMode)&&window.setTimeout(function(){null==
g.appendChild(k);mxUtils.br(g);var p=a.getRecent();if(null!=p&&0<p.length){var t=document.createElement("select");t.style.marginTop="14px";t.style.width="140px";var q=document.createElement("option");q.setAttribute("value","");q.setAttribute("selected","selected");q.style.textAlign="center";mxUtils.write(q,mxResources.get("openRecent")+"...");t.appendChild(q);for(q=0;q<p.length;q++)(function(a){var b=a.mode;b==App.MODE_GOOGLE?b="googleDrive":b==App.MODE_ONEDRIVE&&(b="oneDrive");var e=document.createElement("option");
e.setAttribute("value",a.id);mxUtils.write(e,a.title+" ("+mxResources.get(b)+")");t.appendChild(e)})(p[q]);g.appendChild(t);mxEvent.addListener(t,"change",function(b){""!=t.value&&a.loadFile(t.value)})}else g.style.marginTop="20px",h.style.padding="30px 0px 26px 0px";h.appendChild(g);mxEvent.addListener(k,"click",function(a){l.checked=!l.checked;mxEvent.consume(a)});mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null==document.documentMode||10<=document.documentMode)&&window.setTimeout(function(){null==
a.drive&&(n.style.padding="8px",n.style.fontSize="9pt",n.style.marginTop="-14px",n.innerHTML='<a style="background-color:#dcdcdc;padding:5px;color:black;text-decoration:none;" href="https://plus.google.com/u/0/+DrawIo1/posts/1HTrfsb5wDN" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top"> '+mxResources.get("googleDriveMissingClickHere")+"</a>",f.appendChild(n))},5E3);this.container=f},SplashDialog=function(a){var b=document.createElement("div");b.style.textAlign=
"center";a.addLanguageMenu(b);var c=null,d=a.getServiceCount();!a.isOffline()&&1<d&&(c=document.createElement("a"),c.setAttribute("href","https://support.draw.io/display/DO/Selecting+Storage"),c.setAttribute("title",mxResources.get("help")),c.setAttribute("target","_blank"),c.style.position="absolute",c.style.fontSize="12px",c.style.textDecoration="none",c.style.cursor="pointer",c.style.bottom="22px",c.style.left="26px",c.style.color="gray",d=document.createElement("img"),d.setAttribute("border",
"0"),d.setAttribute("valign","bottom"),d.setAttribute("src",Editor.helpImage),d.style.marginRight="2px",c.appendChild(d),mxUtils.write(c,mxResources.get("help")),b.appendChild(c));d=document.createElement("p");d.style.fontSize="16pt";d.style.padding="0px";d.style.paddingTop="2px";d.style.margin="0px";d.style.color="gray";var f=document.createElement("img");f.setAttribute("border","0");f.setAttribute("align","absmiddle");f.style.width="40px";f.style.height="40px";f.style.marginRight="12px";f.style.paddingBottom=
@ -5923,53 +5923,53 @@ function(){l.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRK
document.createElement("input");v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="16px";d.appendChild(v);mxUtils.write(d,mxResources.get("resize")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft="8px";d.appendChild(z);mxUtils.write(d,mxResources.get("fit")+" ");var C=document.createElement("input");C.setAttribute("type","checkbox");C.style.marginLeft="8px";d.appendChild(C);mxUtils.write(d,mxResources.get("embed")+
" ");var E=a.getBasenames().join(";"),y=a.getCurrentFile();mxEvent.addListener(q,"change",c);mxEvent.addListener(w,"change",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(z,"change",c);mxEvent.addListener(u,"change",c);mxEvent.addListener(x,"change",c);mxEvent.addListener(C,"change",c);mxEvent.addListener(n,"change",c);mxEvent.addListener(m,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(p,"change",c);c();mxEvent.addListener(l,"click",function(){l.focus();mxClient.IS_FF||
5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)});g=document.createElement("div");g.style.paddingTop="12px";g.style.textAlign="right";k=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});k.className="geBtn gePrimaryBtn";g.appendChild(k);d.appendChild(g);this.container=d},CreateGraphDialog=function(a,b,c){var d=document.createElement("div");d.style.textAlign="right";this.init=function(){var b=document.createElement("div");b.style.position=
"relative";b.style.border="1px solid gray";b.style.width="100%";b.style.height="360px";b.style.overflow="hidden";b.style.marginBottom="16px";mxEvent.disableContextMenu(b);d.appendChild(b);var g=new Graph(b);g.setCellsCloneable(!0);g.setPanning(!0);g.setAllowDanglingEdges(!1);g.connectionHandler.select=!1;g.view.setTranslate(20,20);g.border=20;g.panningHandler.useLeftButtonForPanning=!0;var k="curved=1;";g.cellRenderer.installCellOverlayListeners=function(a,b,c){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,
arguments);mxEvent.addListener(c.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(c){b.fireEvent(new mxEventObject("pointerdown","event",c,"state",a))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(c.node,"touchstart",function(c){b.fireEvent(new mxEventObject("pointerdown","event",c,"state",a))})};g.getAllConnectionConstraints=function(){return null};g.connectionHandler.marker.highlight.keepOnTop=!1;g.connectionHandler.createEdgeState=function(a){a=g.createEdge(null,null,
"relative";b.style.border="1px solid gray";b.style.width="100%";b.style.height="360px";b.style.overflow="hidden";b.style.marginBottom="16px";mxEvent.disableContextMenu(b);d.appendChild(b);var g=new Graph(b);g.setCellsCloneable(!0);g.setPanning(!0);g.setAllowDanglingEdges(!1);g.connectionHandler.select=!1;g.view.setTranslate(20,20);g.border=20;g.panningHandler.useLeftButtonForPanning=!0;var k="curved=1;";g.cellRenderer.installCellOverlayListeners=function(a,b,e){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,
arguments);mxEvent.addListener(e.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(e){b.fireEvent(new mxEventObject("pointerdown","event",e,"state",a))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchstart",function(e){b.fireEvent(new mxEventObject("pointerdown","event",e,"state",a))})};g.getAllConnectionConstraints=function(){return null};g.connectionHandler.marker.highlight.keepOnTop=!1;g.connectionHandler.createEdgeState=function(a){a=g.createEdge(null,null,
null,null,null,k);return new mxCellState(this.graph.view,a,this.graph.getCellStyle(a))};var e=g.getDefaultParent(),h=mxUtils.bind(this,function(a){var b=new mxCellOverlay(this.connectImage,"Add outgoing");b.cursor="hand";b.addListener(mxEvent.CLICK,function(b,c){g.connectionHandler.reset();g.clearSelection();var d=g.getCellGeometry(a),l;n(function(){l=g.insertVertex(e,null,"Entry",d.x,d.y,80,30,"rounded=1;");h(l);g.view.refresh(l);g.insertEdge(e,null,"",a,l,k)},function(){g.scrollCellToVisible(l)})});
b.addListener("pointerdown",function(a,b){var c=b.getProperty("event"),d=b.getProperty("state");g.popupMenuHandler.hideMenu();g.stopEditing(!1);var e=mxUtils.convertPoint(g.container,mxEvent.getClientX(c),mxEvent.getClientY(c));g.connectionHandler.start(d,e.x,e.y);g.isMouseDown=!0;g.isMouseTrigger=mxEvent.isMouseEvent(c);mxEvent.consume(c)});g.addCellOverlay(a,b)});g.getModel().beginUpdate();var l;try{l=g.insertVertex(e,null,"Start",0,0,80,30,"ellipse"),h(l)}finally{g.getModel().endUpdate()}var m;
b.addListener("pointerdown",function(a,b){var e=b.getProperty("event"),c=b.getProperty("state");g.popupMenuHandler.hideMenu();g.stopEditing(!1);var d=mxUtils.convertPoint(g.container,mxEvent.getClientX(e),mxEvent.getClientY(e));g.connectionHandler.start(c,d.x,d.y);g.isMouseDown=!0;g.isMouseTrigger=mxEvent.isMouseEvent(e);mxEvent.consume(e)});g.addCellOverlay(a,b)});g.getModel().beginUpdate();var l;try{l=g.insertVertex(e,null,"Start",0,0,80,30,"ellipse"),h(l)}finally{g.getModel().endUpdate()}var m;
"horizontalTree"==c?(m=new mxCompactTreeLayout(g),m.edgeRouting=!1,m.levelDistance=30,k="edgeStyle=elbowEdgeStyle;elbow=horizontal;"):"verticalTree"==c?(m=new mxCompactTreeLayout(g,!1),m.edgeRouting=!1,m.levelDistance=30,k="edgeStyle=elbowEdgeStyle;elbow=vertical;"):"verticalFlow"==c?m=new mxHierarchicalLayout(g,mxConstants.DIRECTION_NORTH):"horizontalFlow"==c?m=new mxHierarchicalLayout(g,mxConstants.DIRECTION_WEST):"organic"==c?(m=new mxFastOrganicLayout(g,!1),m.forceConstant=80):"circle"==c&&(m=
new mxCircleLayout(g));if(null!=m){var n=function(a,b){g.getModel().beginUpdate();try{null!=a&&a(),m.execute(g.getDefaultParent(),l)}catch(v){throw v;}finally{var c=new mxMorphing(g);c.addListener(mxEvent.DONE,mxUtils.bind(this,function(){g.getModel().endUpdate();null!=b&&b()}));c.startAnimation()}},p=mxEdgeHandler.prototype.connect;mxEdgeHandler.prototype.connect=function(a,b,c,d,e){p.apply(this,arguments);n()};g.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);n()};g.connectionHandler.addListener(mxEvent.CONNECT,
function(){n()})}var t=mxUtils.button(mxResources.get("close"),function(){a.confirm(mxResources.get("areYouSure"),function(){null!=b.parentNode&&(g.destroy(),b.parentNode.removeChild(b));a.hideDialog()})});t.className="geBtn";a.editor.cancelFirst&&d.appendChild(t);var q=mxUtils.button(mxResources.get("insert"),function(){g.clearCellOverlays();var c=a.editor.graph.getFreeInsertPoint(),c=a.editor.graph.importCells(g.getModel().getChildren(g.getDefaultParent()),c.x,c.y),d=a.editor.graph.view,e=d.getBounds(c);
e.x-=d.translate.x;e.y-=d.translate.y;a.editor.graph.scrollRectToVisible(e);a.editor.graph.setSelectionCells(c);null!=b.parentNode&&(g.destroy(),b.parentNode.removeChild(b));a.hideDialog()});d.appendChild(q);q.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(t)};this.container=d};
new mxCircleLayout(g));if(null!=m){var n=function(a,b){g.getModel().beginUpdate();try{null!=a&&a(),m.execute(g.getDefaultParent(),l)}catch(v){throw v;}finally{var e=new mxMorphing(g);e.addListener(mxEvent.DONE,mxUtils.bind(this,function(){g.getModel().endUpdate();null!=b&&b()}));e.startAnimation()}},p=mxEdgeHandler.prototype.connect;mxEdgeHandler.prototype.connect=function(a,b,e,c,d){p.apply(this,arguments);n()};g.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);n()};g.connectionHandler.addListener(mxEvent.CONNECT,
function(){n()})}var t=mxUtils.button(mxResources.get("close"),function(){a.confirm(mxResources.get("areYouSure"),function(){null!=b.parentNode&&(g.destroy(),b.parentNode.removeChild(b));a.hideDialog()})});t.className="geBtn";a.editor.cancelFirst&&d.appendChild(t);var q=mxUtils.button(mxResources.get("insert"),function(){g.clearCellOverlays();var e=a.editor.graph.getFreeInsertPoint(),e=a.editor.graph.importCells(g.getModel().getChildren(g.getDefaultParent()),e.x,e.y),c=a.editor.graph.view,d=c.getBounds(e);
d.x-=c.translate.x;d.y-=c.translate.y;a.editor.graph.scrollRectToVisible(d);a.editor.graph.setSelectionCells(e);null!=b.parentNode&&(g.destroy(),b.parentNode.removeChild(b));a.hideDialog()});d.appendChild(q);q.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(t)};this.container=d};
CreateGraphDialog.prototype.connectImage=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjQ3OTk0QjMyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjQ3OTk0QjQyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjA0N0I2MjJENzExMUU1OEZBOEY0NUEyM0EyMUMzOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGNDc5OTRCMjJENzIxMUU1OEZBOEY0NUEyM0EyMUMzOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjIf+MgAAATlSURBVHjanFZraFxFFD735u4ru3ls0yZG26ShgmJoKK1J2vhIYzBgRdtIURHyw1hQUH9IxIgI2h8iCEUF/1RRlNQYCsYfCTHVhiTtNolpZCEStqSC22xIsrs1bDfu7t37Gs/cO3Ozxs1DBw73zpk555vzmHNGgJ0NYatFgmNLYUHYUoHASMz5ijmgVLmxgfKCUiBxC4ACJAeSG8nb1dVVOTc3dyoSibwWDofPBIPBJzo7O8vpGtvjpDICGztxkciECpF2LS0tvZtOpwNkk5FKpcYXFxffwL1+JuPgllPj8nk1F6RoaGjoKCqZ5ApljZDZO4SMRA0SuG2QUJIQRV8HxMOM9vf3H0ZZH9Nhg20MMl2QkFwjIyNHWlpahtADnuUMwLcRHX5aNSBjCJYEsSSLUeLEbhGe3ytCmQtA1/XY+Pj46dbW1iDuyCJp9BC5ycBj4hoeHq5ra2sbw0Xn1ZgBZ+dVkA1Lc+6p0Ck2p0QS4Ox9EhwpEylYcmBg4LH29vYQLilIOt0u5FhDfevNZDI/u93uw6PLOrwTUtjxrbPYbhD42WgMrF8JmR894ICmCgnQjVe8Xu8pXEkzMJKbuo5oNPomBbm1ZsD7s2kwFA1JZ6QBUXWT1nmGNc/qoMgavDcrQzxjQGFh4aOYIJ0sFAXcEtui4uLiVjr5KpSBVFYDDZVrWUaKRRWSAYeK0fmKykgDXbVoNaPChRuyqdDv97czL5nXxQbq6empQmsaklkDBiNpSwFVrmr2P6UyicD5piI4f8wHh0oEm8/p4h8pyGiEWvVQd3e3nxtjAzU1NR2jP7NRBWQ8GbdEzzJAmc0V3RR4cI8Dvmwuhc8fKUFA0d6/ltHg5p+Kuaejo6OeY0jcNJ/PV00ZS0nFUoZRvvFS1bZFsKHCCQ2Pl8H0chY+C96B6ZUsrCQ1qKtwQVFRURW/QhIXMAzDPAZ6BgOr8tTa8dDxCmiYGApaJbJMxSzV+brE8pdgWkcpY5dbMF1AR9XH8/xu2ilef48bvn92n82ZwHh+8ssqTEXS9p7dHisiiURikd8PbpExNTU1UVNTA3V3Y7lC16n0gpB/NwpNcZjfa7dScC4Qh0kOQCwnlEgi3F/hMVl9fX0zvKrzSk2lfXjRhj0eT/2rvWG4+Pta3oJY7XfC3hInXAv/ldeFLx8shQ+eqQL0UAAz7ylkpej5eNZRVBWL6BU6ef14OYiY1oqyTtmsavr/5koaRucT1pzx+ZpL1+GV5nLutksUgIcmtwTRiuuVZXnU5XId7A2swJkfFsymRWC91hHg1Viw6x23+7vn9sPJ+j20BE1hCXqSWaNSQ8ScbknRZWxub1PGCw/fBV+c3AeijlUbY5bBjEqr9GuYZP4jP41WudGSC6erTRCqdGZm5i1WvXWeDHnbBCZGc2Nj4wBl/hZOwrmBBfgmlID1HmGJutHaF+tKoevp/XCgstDkjo2NtWKLuc6AVN4mNjY+s1XQxoenOoFuDPHGtnRbJj9ej5GvL0dI7+giuRyMk1giazc+DP6vgUDgOJVlOv7R+PJ12QIeL6SyeDz+Kfp8ZrNWjgDTsVjsQ7qXyTjztXJhm9ePxFLfMTg4eG9tbe1RTP9KFFYQfHliYmIS69kCC7jKYmKwxxD5P88tkVkqbPPcIps9t4T/+HjcuJ/s5BFJgf4WYABCtxGuxIZ90gAAAABJRU5ErkJggg==":IMAGE_PATH+
"/handle-connect.png",26,26);
var BackgroundImageDialog=function(a,b){var c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h2");mxUtils.write(d,mxResources.get("backgroundImage"));d.style.marginTop="0px";c.appendChild(d);mxUtils.write(c,mxResources.get("image")+" "+mxResources.get("url")+":");mxUtils.br(c);var d=a.editor.graph.backgroundImage,f=document.createElement("input");f.setAttribute("type","text");f.style.marginTop="4px";f.style.marginBottom="4px";f.style.width="350px";f.value=
null!=d?d.src:"";var g=!1,k=function(){g||""==f.value||a.isOffline()?(e.value="",h.value=""):a.loadImage(mxUtils.trim(f.value),function(a){e.value=a.width;h.value=a.height},function(){a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));f.value="";e.value="";h.value=""})};this.init=function(){f.focus();if(Graph.fileSupport){f.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=c.parentNode,d=null;mxEvent.addListener(b,"dragleave",function(a){null!=
d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(c){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=a.highlightElement(b));c.stopPropagation();c.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,b,c,d,e,h){f.value=a;k()},function(){},
null!=d?d.src:"";var g=!1,k=function(){g||""==f.value||a.isOffline()?(e.value="",h.value=""):a.loadImage(mxUtils.trim(f.value),function(a){e.value=a.width;h.value=a.height},function(){a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));f.value="";e.value="";h.value=""})};this.init=function(){f.focus();if(Graph.fileSupport){f.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=c.parentNode,e=null;mxEvent.addListener(b,"dragleave",function(a){null!=
e&&(e.parentNode.removeChild(e),e=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(c){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=a.highlightElement(b));c.stopPropagation();c.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,b,e,c,d,h){f.value=a;k()},function(){},
function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0,a.maxBackgroundBytes,a.maxBackgroundBytes);else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)&&(f.value=decodeURIComponent(c),k())}b.stopPropagation();b.preventDefault()}),!1)}};c.appendChild(f);mxUtils.br(c);mxUtils.br(c);mxUtils.write(c,mxResources.get("width")+":");var e=document.createElement("input");
e.setAttribute("type","text");e.style.width="60px";e.style.marginLeft="4px";e.style.marginRight="16px";e.value=null!=d?d.width:"";c.appendChild(e);mxUtils.write(c,mxResources.get("height")+":");var h=document.createElement("input");h.setAttribute("type","text");h.style.width="60px";h.style.marginLeft="4px";h.style.marginRight="16px";h.value=null!=d?d.height:"";c.appendChild(h);d=mxUtils.button(mxResources.get("reset"),function(){f.value="";e.value="";h.value="";g=!1});mxEvent.addListener(d,"mousedown",
function(){g=!0});mxEvent.addListener(d,"touchstart",function(){g=!0});d.className="geBtn";d.width="100";c.appendChild(d);mxUtils.br(c);mxEvent.addListener(f,"change",k);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(f.value=a.url,k()));f.focus()};d=document.createElement("div");d.style.marginTop="40px";d.style.textAlign="right";var l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
l.className="geBtn";a.editor.cancelFirst&&d.appendChild(l);if(!a.isOffline()&&"undefined"!=typeof google&&"undefined"!=typeof google.picker&&window.self===window.top){var m=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0);
a.movePickersToTop()});m.className="geBtn";d.appendChild(m);null!=a.drive&&"1"==urlParams.photos&&(m=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=gapi.auth.getToken().access_token,b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);
a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0);a.movePickersToTop()}))}),m.className="geBtn",d.appendChild(m))}m=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b(""!=f.value?new mxImage(mxUtils.trim(f.value),e.value,h.value):null)});m.className="geBtn gePrimaryBtn";d.appendChild(m);a.editor.cancelFirst||d.appendChild(l);c.appendChild(d);this.container=c},ParseDialog=function(a,b){function c(b,c){var d=b.split("\n");if("plantUmlPng"==
c||"plantUmlSvg"==c){var d="plantUmlPng"==c?"https://exp.draw.io/plantuml2/png/":"https://exp.draw.io/plantuml2/svg/",e=a.editor.graph;if(a.spinner.spin(document.body,mxResources.get("inserting"))){var h=function(a){if(10>a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+a);a-=26;if(26>a)return String.fromCharCode(97+a);a-=26;return 0==a?"-":1==a?"_":"?"},l=function(a,b,c){c1=a>>2;c2=(a&3)<<4|b>>4;c3=(b&15)<<2|c>>6;c4=c&63;r="";r+=h(c1&63);r+=h(c2&63);r+=h(c3&63);return r+=
h(c4&63)},g=new XMLHttpRequest;g.open("GET",d+function(a){r="";for(m=0;m<a.length;m+=3)r=m+2==a.length?r+l(a.charCodeAt(m),a.charCodeAt(m+1),0):m+1==a.length?r+l(a.charCodeAt(m),0,0):r+l(a.charCodeAt(m),a.charCodeAt(m+1),a.charCodeAt(m+2));return r}(e.bytesToString(pako.deflateRaw(unescape(encodeURIComponent(b))))),!0);g.responseType="blob";g.onload=function(c){200<=this.status&&300>this.status?(c=new FileReader,c.readAsDataURL(this.response),c.onload=function(c){var d=new Image;d.onload=function(){a.spinner.stop();
e.getModel().beginUpdate();try{cell=e.insertVertex(null,null,b,f.x,f.y,d.width,d.height,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a.convertDataUri(c.target.result)+";")}finally{e.getModel().endUpdate()}e.setSelectionCell(cell);e.scrollCellToVisible(e.getSelectionCell())};d.src=c.target.result},c.onerror=function(b){a.handleError(b)}):(a.spinner.stop(),a.handleError(c))};g.onerror=function(b){a.handleError(b)};g.send()}}else if("list"==c){if(0<d.length){var e=a.editor.graph,
n=new mxCell(d[0],new mxGeometry(0,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;");n.vertex=!0;g=e.getPreferredSizeForCell(n);null!=g&&n.geometry.width<g.width+10&&(n.geometry.width=g.width+10);if(1<d.length)for(var m=1;m<d.length;m++)if("--"==d[m])g=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),
g.vertex=!0,n.geometry.height+=g.geometry.height,n.insert(g);else if(0<d[m].length&&";"!=d[m].charAt(0)){var k=new mxCell(d[m],new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;");k.vertex=!0;g=e.getPreferredSizeForCell(k);null!=g&&k.geometry.width<g.width&&(k.geometry.width=g.width);n.geometry.width=Math.max(n.geometry.width,k.geometry.width);n.geometry.height+=
k.geometry.height;n.insert(k)}e.setSelectionCells(e.importCells([n],f.x,f.y));e.scrollCellToVisible(e.getSelectionCell())}}else{for(var k=function(a){var b=p[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30)),b.vertex=!0,p[a]=b,y.push(b));return b},p={},y=[],m=0;m<d.length;m++)if(";"!=d[m].charAt(0)){var A=d[m].split("->");if(2==A.length){var B=k(A[0]),A=k(A[1]),F=new mxCell("",new mxGeometry);F.edge=!0;B.insertEdge(F,!0);A.insertEdge(F,!1);y.push(F)}}if(0<y.length){d=document.createElement("div");
d.style.visibility="hidden";document.body.appendChild(d);e=new Graph(d);e.getModel().beginUpdate();try{y=e.importCells(y);for(m=0;m<y.length;m++)e.getModel().isVertex(y[m])&&(g=e.getPreferredSizeForCell(y[m]),y[m].geometry.width=Math.max(y[m].geometry.width,g.width),y[m].geometry.height=Math.max(y[m].geometry.height,g.height));n=new mxFastOrganicLayout(e);n.disableEdgeStyle=!1;n.forceConstant=120;n.execute(e.getDefaultParent())}finally{e.getModel().endUpdate()}e.clearCellOverlays();a.editor.graph.setSelectionCells(a.editor.graph.importCells(e.getModel().getChildren(e.getDefaultParent()),
f.x,f.y));a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());e.destroy();d.parentNode.removeChild(d)}}}function d(){return"list"==e.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean":"plantUmlPng"==e.value?"@startuml\nskinparam backgroundcolor transparent\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: another authentication Response\n@enduml":
a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0);a.movePickersToTop()}))}),m.className="geBtn",d.appendChild(m))}m=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b(""!=f.value?new mxImage(mxUtils.trim(f.value),e.value,h.value):null)});m.className="geBtn gePrimaryBtn";d.appendChild(m);a.editor.cancelFirst||d.appendChild(l);c.appendChild(d);this.container=c},ParseDialog=function(a,b){function c(b,e){var c=b.split("\n");if("plantUmlPng"==
e||"plantUmlSvg"==e){var c="plantUmlPng"==e?"https://exp.draw.io/plantuml2/png/":"https://exp.draw.io/plantuml2/svg/",d=a.editor.graph;if(a.spinner.spin(document.body,mxResources.get("inserting"))){var h=function(a){if(10>a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+a);a-=26;if(26>a)return String.fromCharCode(97+a);a-=26;return 0==a?"-":1==a?"_":"?"},l=function(a,b,e){c1=a>>2;c2=(a&3)<<4|b>>4;c3=(b&15)<<2|e>>6;c4=e&63;r="";r+=h(c1&63);r+=h(c2&63);r+=h(c3&63);return r+=
h(c4&63)},g=new XMLHttpRequest;g.open("GET",c+function(a){r="";for(m=0;m<a.length;m+=3)r=m+2==a.length?r+l(a.charCodeAt(m),a.charCodeAt(m+1),0):m+1==a.length?r+l(a.charCodeAt(m),0,0):r+l(a.charCodeAt(m),a.charCodeAt(m+1),a.charCodeAt(m+2));return r}(d.bytesToString(pako.deflateRaw(unescape(encodeURIComponent(b))))),!0);g.responseType="blob";g.onload=function(e){200<=this.status&&300>this.status?(e=new FileReader,e.readAsDataURL(this.response),e.onload=function(e){var c=new Image;c.onload=function(){a.spinner.stop();
d.getModel().beginUpdate();try{cell=d.insertVertex(null,null,b,f.x,f.y,c.width,c.height,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a.convertDataUri(e.target.result)+";")}finally{d.getModel().endUpdate()}d.setSelectionCell(cell);d.scrollCellToVisible(d.getSelectionCell())};c.src=e.target.result},e.onerror=function(b){a.handleError(b)}):(a.spinner.stop(),a.handleError(e))};g.onerror=function(b){a.handleError(b)};g.send()}}else if("list"==e){if(0<c.length){var d=a.editor.graph,
n=new mxCell(c[0],new mxGeometry(0,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;");n.vertex=!0;g=d.getPreferredSizeForCell(n);null!=g&&n.geometry.width<g.width+10&&(n.geometry.width=g.width+10);if(1<c.length)for(var m=1;m<c.length;m++)if("--"==c[m])g=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),
g.vertex=!0,n.geometry.height+=g.geometry.height,n.insert(g);else if(0<c[m].length&&";"!=c[m].charAt(0)){var k=new mxCell(c[m],new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;");k.vertex=!0;g=d.getPreferredSizeForCell(k);null!=g&&k.geometry.width<g.width&&(k.geometry.width=g.width);n.geometry.width=Math.max(n.geometry.width,k.geometry.width);n.geometry.height+=
k.geometry.height;n.insert(k)}d.setSelectionCells(d.importCells([n],f.x,f.y));d.scrollCellToVisible(d.getSelectionCell())}}else{for(var k=function(a){var b=p[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30)),b.vertex=!0,p[a]=b,y.push(b));return b},p={},y=[],m=0;m<c.length;m++)if(";"!=c[m].charAt(0)){var A=c[m].split("->");if(2==A.length){var B=k(A[0]),A=k(A[1]),F=new mxCell("",new mxGeometry);F.edge=!0;B.insertEdge(F,!0);A.insertEdge(F,!1);y.push(F)}}if(0<y.length){c=document.createElement("div");
c.style.visibility="hidden";document.body.appendChild(c);d=new Graph(c);d.getModel().beginUpdate();try{y=d.importCells(y);for(m=0;m<y.length;m++)d.getModel().isVertex(y[m])&&(g=d.getPreferredSizeForCell(y[m]),y[m].geometry.width=Math.max(y[m].geometry.width,g.width),y[m].geometry.height=Math.max(y[m].geometry.height,g.height));n=new mxFastOrganicLayout(d);n.disableEdgeStyle=!1;n.forceConstant=120;n.execute(d.getDefaultParent())}finally{d.getModel().endUpdate()}d.clearCellOverlays();a.editor.graph.setSelectionCells(a.editor.graph.importCells(d.getModel().getChildren(d.getDefaultParent()),
f.x,f.y));a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());d.destroy();c.parentNode.removeChild(c)}}}function d(){return"list"==e.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean":"plantUmlPng"==e.value?"@startuml\nskinparam backgroundcolor transparent\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: another authentication Response\n@enduml":
"plantUmlSvg"==e.value?"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: another authentication Response\n@enduml":";Example:\na->b\nb->c\nc->a\n"}var f=a.editor.graph.getFreeInsertPoint(),g=document.createElement("div");g.style.textAlign="right";var k=document.createElement("textarea");k.style.resize="none";k.style.width="100%";k.style.height="354px";k.style.marginBottom=
"16px";var e=document.createElement("select"),h=document.createElement("option");h.setAttribute("value","list");h.setAttribute("selected","selected");mxUtils.write(h,mxResources.get("list"));e.appendChild(h);h=document.createElement("option");h.setAttribute("value","diagram");mxUtils.write(h,mxResources.get("diagram"));e.appendChild(h);h=document.createElement("option");h.setAttribute("value","plantUmlSvg");mxUtils.write(h,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");var l=document.createElement("option");
l.setAttribute("value","plantUmlPng");mxUtils.write(l,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");/.*\.draw\.io$/.test(window.location.hostname)&&Graph.fileSupport&&!a.isOffline()&&(e.appendChild(h),e.appendChild(l));var m=d();k.value=m;g.appendChild(k);this.init=function(){k.focus()};Graph.fileSupport&&(k.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),k.addEventListener("drop",function(a){a.stopPropagation();a.preventDefault();if(0<a.dataTransfer.files.length){a=
a.dataTransfer.files[0];var b=new FileReader;b.onload=function(a){k.value=a.target.result};b.readAsText(a)}},!1));g.appendChild(e);mxEvent.addListener(e,"change",function(){var a=d();if(0==k.value.length||k.value==m)m=a,k.value=m});h=mxUtils.button(mxResources.get("close"),function(){k.value==m?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});h.className="geBtn";a.editor.cancelFirst&&g.appendChild(h);l=mxUtils.button(mxResources.get("insert"),function(){a.hideDialog();
c(k.value,e.value)});g.appendChild(l);l.className="geBtn gePrimaryBtn";a.editor.cancelFirst||g.appendChild(h);this.container=g},NewDialog=function(a,b,c,d){function f(){if(d)c||a.hideDialog(),d(t,n.value);else{var b=n.value;if(null!=b&&0<b.length){var e=a.mode==App.MODE_ONEDRIVE||a.mode==App.MODE_GOOGLE&&(null==a.stateArg||null==a.stateArg.folderId)?a.mode:null;a.pickFolder(e,function(c){a.createFile(b,t,null!=p&&0<p.length?p:null,null,function(){a.hideDialog()},null,c)},e!=App.MODE_GOOGLE)}}}function g(a,
b,c){null!=q&&(q.style.backgroundColor="transparent",q.style.border="1px solid transparent");t=b;p=c;q=a;q.style.backgroundColor="#e6eff8";q.style.border="1px solid #ccd9ea"}function k(a,b,c,d,e){var h=document.createElement("div");h.className="geTemplate";h.style.height="140px";h.style.width="140px";null!=d&&0<d.length&&h.setAttribute("title",d);if(null!=a&&0<a.length){a.substring(0,a.length-4);h.style.backgroundImage="url("+TEMPLATE_PATH+"/"+a.substring(0,a.length-4)+".png)";h.style.backgroundPosition=
"center center";h.style.backgroundRepeat="no-repeat";var l=!1;mxEvent.addListener(h,"click",function(c){w.setAttribute("disabled","disabled");h.style.backgroundColor="transparent";h.style.border="1px solid transparent";mxUtils.get(TEMPLATE_PATH+"/"+a,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(w.removeAttribute("disabled"),g(h,a.getText(),b),l&&f())}))});mxEvent.addListener(h,"dblclick",function(a){l=!0})}else h.innerHTML='<table width="100%" height="100%"><tr><td align="center" valign="middle">'+
mxResources.get(c)+"</td></tr></table>",e&&g(h),mxEvent.addListener(h,"click",function(a){g(h)}),mxEvent.addListener(h,"dblclick",function(a){f()});u.appendChild(h)}function e(){function a(){for(var a=!0;b<C.length&&(a||0!=mxUtils.mod(b,30));)a=C[b++],k(a.url,a.libs,a.title,a.tooltip,a.select),a=!1}var b=0;mxEvent.addListener(u,"scroll",function(b){u.scrollTop+u.clientHeight>=u.scrollHeight&&(a(),mxEvent.consume(b))});var c=null,d;for(d in v){var e=document.createElement("div"),h=mxResources.get(d),
l=v[d];null==h&&(h=d.substring(0,1).toUpperCase()+d.substring(1));18<h.length&&(h=h.substring(0,18)+"&hellip;");e.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;";e.setAttribute("title",h+" ("+l.length+")");mxUtils.write(e,e.getAttribute("title"));x.appendChild(e);null==c&&(c=e,c.style.backgroundColor="#ebf2f9");(function(d,h){mxEvent.addListener(e,"click",function(){c!=h&&(c.style.backgroundColor="",c=h,c.style.backgroundColor=
"#ebf2f9",u.scrollTop=0,u.innerHTML="",b=0,C=v[d],a())})})(d,e)}a()}c=null!=c?c:!0;var h=document.createElement("div");h.style.height="100%";var l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.height="46px";h.appendChild(l);var m=document.createElement("img");m.setAttribute("border","0");m.setAttribute("align","absmiddle");m.style.width="40px";m.style.height="40px";m.style.marginRight="10px";m.style.paddingBottom="4px";m.src=a.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":
c(k.value,e.value)});g.appendChild(l);l.className="geBtn gePrimaryBtn";a.editor.cancelFirst||g.appendChild(h);this.container=g},NewDialog=function(a,b,c,d){function f(){if(d)c||a.hideDialog(),d(t,n.value);else{var b=n.value;if(null!=b&&0<b.length){var e=a.mode==App.MODE_ONEDRIVE||a.mode==App.MODE_GOOGLE&&(null==a.stateArg||null==a.stateArg.folderId)?a.mode:null;a.pickFolder(e,function(e){a.createFile(b,t,null!=p&&0<p.length?p:null,null,function(){a.hideDialog()},null,e)},e!=App.MODE_GOOGLE)}}}function g(a,
b,e){null!=q&&(q.style.backgroundColor="transparent",q.style.border="1px solid transparent");t=b;p=e;q=a;q.style.backgroundColor="#e6eff8";q.style.border="1px solid #ccd9ea"}function k(a,b,e,c,d){var h=document.createElement("div");h.className="geTemplate";h.style.height="140px";h.style.width="140px";null!=c&&0<c.length&&h.setAttribute("title",c);if(null!=a&&0<a.length){a.substring(0,a.length-4);h.style.backgroundImage="url("+TEMPLATE_PATH+"/"+a.substring(0,a.length-4)+".png)";h.style.backgroundPosition=
"center center";h.style.backgroundRepeat="no-repeat";var l=!1;mxEvent.addListener(h,"click",function(e){w.setAttribute("disabled","disabled");h.style.backgroundColor="transparent";h.style.border="1px solid transparent";mxUtils.get(TEMPLATE_PATH+"/"+a,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(w.removeAttribute("disabled"),g(h,a.getText(),b),l&&f())}))});mxEvent.addListener(h,"dblclick",function(a){l=!0})}else h.innerHTML='<table width="100%" height="100%"><tr><td align="center" valign="middle">'+
mxResources.get(e)+"</td></tr></table>",d&&g(h),mxEvent.addListener(h,"click",function(a){g(h)}),mxEvent.addListener(h,"dblclick",function(a){f()});u.appendChild(h)}function e(){function a(){for(var a=!0;b<C.length&&(a||0!=mxUtils.mod(b,30));)a=C[b++],k(a.url,a.libs,a.title,a.tooltip,a.select),a=!1}var b=0;mxEvent.addListener(u,"scroll",function(b){u.scrollTop+u.clientHeight>=u.scrollHeight&&(a(),mxEvent.consume(b))});var e=null,c;for(c in v){var d=document.createElement("div"),h=mxResources.get(c),
l=v[c];null==h&&(h=c.substring(0,1).toUpperCase()+c.substring(1));18<h.length&&(h=h.substring(0,18)+"&hellip;");d.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;";d.setAttribute("title",h+" ("+l.length+")");mxUtils.write(d,d.getAttribute("title"));x.appendChild(d);null==e&&(e=d,e.style.backgroundColor="#ebf2f9");(function(c,h){mxEvent.addListener(d,"click",function(){e!=h&&(e.style.backgroundColor="",e=h,e.style.backgroundColor=
"#ebf2f9",u.scrollTop=0,u.innerHTML="",b=0,C=v[c],a())})})(c,d)}a()}c=null!=c?c:!0;var h=document.createElement("div");h.style.height="100%";var l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.height="46px";h.appendChild(l);var m=document.createElement("img");m.setAttribute("border","0");m.setAttribute("align","absmiddle");m.style.width="40px";m.style.height="40px";m.style.marginRight="10px";m.style.paddingBottom="4px";m.src=a.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":
a.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":a.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":a.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":a.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";!b&&c&&l.appendChild(m);c&&mxUtils.write(l,(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");m=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?m=a.drive.extension:
a.mode==App.MODE_DROPBOX&&null!=a.dropbox?m=a.dropbox.extension:a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?m=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub&&(m=a.gitHub.extension);var n=document.createElement("input");n.setAttribute("value",a.defaultFilename+m);n.style.marginRight="20px";n.style.marginLeft="10px";n.style.width=b?"220px":"450px";this.init=function(){c&&(n.focus(),mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?n.select():document.execCommand("selectAll",
!1,null))};c&&l.appendChild(n);var p=null,t=null,q=null,w=mxUtils.button(mxResources.get("create"),function(){f()});w.className="geBtn gePrimaryBtn";var u=document.createElement("div");u.style.border="1px solid #d3d3d3";u.style.position="absolute";u.style.left="160px";u.style.right="34px";u.style.top=c?"72px":"40px";u.style.bottom="76px";u.style.margin="6px 0 0 -1px";u.style.padding="6px";u.style.overflow="auto";var x=document.createElement("div");x.style.cssText="position:absolute;left:30px;width:128px;top:72px;bottom:76px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";
c||(x.style.top="40px");var v={},z=1;v.basic=[{title:"blankDiagram",select:!0}];var C=v.basic;if(!b){h.appendChild(x);h.appendChild(u);var E=!1;mxUtils.get(TEMPLATE_PATH+"/index.xml",function(a){if(!E){E=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=b.indexOf("/"),b=b.substring(0,c),c=v[b];null==c&&(z++,c=[],v[b]=c);c.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),
tooltip:a.getAttribute("url")})}}a=a.nextSibling}e()}})}mxEvent.addListener(n,"keypress",function(a){13==a.keyCode&&f()});l=document.createElement("div");l.style.marginTop=b?"4px":"16px";l.style.textAlign="right";l.style.position="absolute";l.style.left="40px";l.style.bottom="30px";l.style.right="40px";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});m.className="geBtn";a.editor.cancelFirst&&l.appendChild(m);if(!b&&!a.isOffline()&&c&&null==d){var y=mxUtils.button(mxResources.get("help"),
function(){window.open("https://support.draw.io/display/DO/Creating+and+Opening+Files")});y.className="geBtn";l.appendChild(y)}b||"1"==urlParams.embed||(b=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(n.value)+"&create="+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))},
mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),b.className="geBtn",l.appendChild(b));l.appendChild(w);a.editor.cancelFirst||null!=d||l.appendChild(m);h.appendChild(l);this.container=h},CreateDialog=function(a,b,c,d,f,g,k,e,h,l,m,n,p,t,q){function w(c,d,e,h){function l(){mxEvent.addListener(f,"click",function(){var c=e;if(k){var d=z.value,h=d.lastIndexOf(".");if(0>b.lastIndexOf(".")&&0>h){var c=null!=c?c:y.value,l="";c==App.MODE_GOOGLE?l=a.drive.extension:c==App.MODE_GITHUB?
l=a.gitHub.extension:c==App.MODE_DROPBOX?l=a.dropbox.extension:c==App.MODE_ONEDRIVE?l=a.oneDrive.extension:c==App.MODE_DEVICE&&(l=".xml");0<=h&&(d=d.substring(0,h));z.value=d+l}}u(e)})}var f=document.createElement("a");f.style.overflow="hidden";var w=document.createElement("img");w.src=c;w.setAttribute("border","0");w.setAttribute("align","absmiddle");w.style.width="60px";w.style.height="60px";w.style.paddingBottom="6px";f.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";f.className="geBaseButton";
f.style.position="relative";f.style.margin="4px";f.style.padding="8px 8px 10px 8px";f.style.whiteSpace="nowrap";f.appendChild(w);mxClient.IS_QUIRKS&&(f.style.cssFloat="left",f.style.zoom="1");f.style.color="gray";f.style.fontSize="11px";var g=document.createElement("div");f.appendChild(g);mxUtils.write(g,d);if(null!=h&&null==a[h]){w.style.visibility="hidden";mxUtils.setOpacity(g,10);var m=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,
top:"40%",zIndex:2E9});m.spin(f);var q=window.setTimeout(function(){null==a[h]&&(m.stop(),f.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[h]&&(window.clearTimeout(q),mxUtils.setOpacity(g,100),w.style.visibility="",m.stop(),l())}))}else l();C.appendChild(f);++E==n&&(mxUtils.br(C),E=0)}function u(b){var d=z.value;if(null==b||null!=d&&0<d.length)a.hideDialog(),c(d,b)}k=null!=k?k:!0;e=null!=e?e:!0;n=null!=n?n:3;var x=document.createElement("div");null==
mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),b.className="geBtn",l.appendChild(b));l.appendChild(w);a.editor.cancelFirst||null!=d||l.appendChild(m);h.appendChild(l);this.container=h},CreateDialog=function(a,b,c,d,f,g,k,e,h,l,m,n,p,t,q){function w(e,c,d,h){function l(){mxEvent.addListener(f,"click",function(){var e=d;if(k){var c=z.value,h=c.lastIndexOf(".");if(0>b.lastIndexOf(".")&&0>h){var e=null!=e?e:y.value,l="";e==App.MODE_GOOGLE?l=a.drive.extension:e==App.MODE_GITHUB?
l=a.gitHub.extension:e==App.MODE_DROPBOX?l=a.dropbox.extension:e==App.MODE_ONEDRIVE?l=a.oneDrive.extension:e==App.MODE_DEVICE&&(l=".xml");0<=h&&(c=c.substring(0,h));z.value=c+l}}u(d)})}var f=document.createElement("a");f.style.overflow="hidden";var w=document.createElement("img");w.src=e;w.setAttribute("border","0");w.setAttribute("align","absmiddle");w.style.width="60px";w.style.height="60px";w.style.paddingBottom="6px";f.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";f.className="geBaseButton";
f.style.position="relative";f.style.margin="4px";f.style.padding="8px 8px 10px 8px";f.style.whiteSpace="nowrap";f.appendChild(w);mxClient.IS_QUIRKS&&(f.style.cssFloat="left",f.style.zoom="1");f.style.color="gray";f.style.fontSize="11px";var g=document.createElement("div");f.appendChild(g);mxUtils.write(g,c);if(null!=h&&null==a[h]){w.style.visibility="hidden";mxUtils.setOpacity(g,10);var m=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,
top:"40%",zIndex:2E9});m.spin(f);var q=window.setTimeout(function(){null==a[h]&&(m.stop(),f.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[h]&&(window.clearTimeout(q),mxUtils.setOpacity(g,100),w.style.visibility="",m.stop(),l())}))}else l();C.appendChild(f);++E==n&&(mxUtils.br(C),E=0)}function u(b){var e=z.value;if(null==b||null!=e&&0<e.length)a.hideDialog(),c(e,b)}k=null!=k?k:!0;e=null!=e?e:!0;n=null!=n?n:3;var x=document.createElement("div");null==
d&&a.addLanguageMenu(x);var v=document.createElement("h2");mxUtils.write(v,f||mxResources.get("create"));v.style.marginTop="0px";v.style.marginBottom="24px";x.appendChild(v);mxUtils.write(x,mxResources.get("filename")+":");var z=document.createElement("input");z.setAttribute("value",b);z.style.width="280px";z.style.marginLeft="10px";z.style.marginBottom="20px";this.init=function(){z.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?z.select():document.execCommand("selectAll",!1,
null)};x.appendChild(z);null!=p&&null!=t&&"image/"==t.substring(0,6)&&(z.style.width="160px",f=document.createElement("img"),f.setAttribute("src","data:"+t+(q?";base64,":";utf8,")+p),f.style.position="absolute",f.style.top="70px",f.style.right="100px",f.style.maxWidth="120px",f.style.maxHeight="80px",mxUtils.setPrefixedStyle(f.style,"transform","translate(50%,-50%)"),x.appendChild(f));mxUtils.br(x);var C=document.createElement("div");C.style.textAlign="center";var E=0;C.style.marginTop="6px";x.appendChild(C);
var y=document.createElement("select");y.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(p=document.createElement("option"),p.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(p,mxResources.get("googleDrive")),y.appendChild(p),w(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),null!=a.gitHub&&(p=document.createElement("option"),p.setAttribute("value",App.MODE_GITHUB),mxUtils.write(p,mxResources.get("github")),
@ -5981,30 +5981,30 @@ function(){u("_blank")}),h.className="geBtn",e.appendChild(h));mxClient.IS_IOS||
g.style.textAlign="left";mxUtils.write(g,mxResources.get("fileOpenLocation"));mxUtils.br(g);mxUtils.br(g);var k=mxUtils.button(mxResources.get("openInThisWindow"),function(){f&&a.hideDialog();null!=d&&d()});k.className="geBtn";k.style.marginBottom="8px";k.style.width="280px";g.appendChild(k);mxUtils.br(g);var e=mxUtils.button(mxResources.get("openInNewWindow"),function(){f&&a.hideDialog();null!=c&&c();window.open(b)});e.className="geBtn gePrimaryBtn";e.style.width=k.style.width;g.appendChild(e);mxUtils.br(g);
mxUtils.br(g);mxUtils.write(g,mxResources.get("allowPopups"));this.container=g},ImageDialog=function(a,b,c,d,f,g){g=null!=g?g:!0;var k=a.editor.graph,e=document.createElement("div");mxUtils.write(e,b);b=document.createElement("div");b.className="geTitle";b.style.backgroundColor="transparent";b.style.borderColor="transparent";b.style.whiteSpace="nowrap";b.style.textOverflow="clip";b.style.cursor="default";mxClient.IS_VML||(b.style.paddingRight="20px");var h=document.createElement("input");h.setAttribute("value",
c);h.setAttribute("type","text");h.setAttribute("spellcheck","false");h.setAttribute("autocorrect","off");h.setAttribute("autocomplete","off");h.setAttribute("autocapitalize","off");h.style.marginTop="6px";h.style.width=(Graph.fileSupport?420:340)+(mxClient.IS_QUIRKS?20:-20)+"px";h.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";h.style.backgroundRepeat="no-repeat";h.style.backgroundPosition="100% 50%";h.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=mxClient.IS_VML?"inline":"inline-block";c.style.top=(mxClient.IS_VML?0:3)+"px";c.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(c,"click",function(){h.value="";h.focus()});b.appendChild(h);b.appendChild(c);e.appendChild(b);var l=function(b,c,e){var h="data:"==b.substring(0,5);(!a.isOffline()||h&&"undefined"===typeof chrome)&&
a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(h){a.spinner.stop();a.hideDialog();var l=null!=c&&null!=e?Math.max(c/h.width,e/h.height):Math.min(1,Math.min(520/h.width,520/h.height));g&&(b=a.convertDataUri(b));d(b,Math.round(Number(h.width)*l),Math.round(Number(h.height)*l))},function(){a.spinner.stop();d(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(b=a.convertDataUri(b),c=null==c?120:c,e=null==e?100:e,a.hideDialog(),
d(b,c,e))},m=function(b){if(null!=b&&0<b.length){var c=f?null:k.getModel().getGeometry(k.getSelectionCell());null!=c?l(b,c.width,c.height):l(b)}else a.hideDialog(),d(null)};this.init=function(){h.focus();if(Graph.fileSupport){h.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=e.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(d){null==
c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));d.stopPropagation();d.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,d,e,h){m(a)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,
"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)($|\?)/i.test(d)&&m(decodeURIComponent(d))}b.stopPropagation();b.preventDefault()}),!1)}};c=document.createElement("div");c.style.marginTop=mxClient.IS_QUIRKS?"22px":"14px";c.style.textAlign="right";b=mxUtils.button(mxResources.get("cancel"),function(){a.spinner.stop();a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&
null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(h.value=a.url));h.focus()};if(Graph.fileSupport){var n=document.createElement("input");n.setAttribute("multiple","multiple");n.setAttribute("type","file");if(null==document.documentMode){mxEvent.addListener(n,"change",function(b){a.importFiles(n.files,0,0,a.maxImageSize,function(a,b,c,d,e,h){m(a)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},
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=mxClient.IS_VML?"inline":"inline-block";c.style.top=(mxClient.IS_VML?0:3)+"px";c.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(c,"click",function(){h.value="";h.focus()});b.appendChild(h);b.appendChild(c);e.appendChild(b);var l=function(b,e,c){var h="data:"==b.substring(0,5);(!a.isOffline()||h&&"undefined"===typeof chrome)&&
a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(h){a.spinner.stop();a.hideDialog();var l=null!=e&&null!=c?Math.max(e/h.width,c/h.height):Math.min(1,Math.min(520/h.width,520/h.height));g&&(b=a.convertDataUri(b));d(b,Math.round(Number(h.width)*l),Math.round(Number(h.height)*l))},function(){a.spinner.stop();d(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(b=a.convertDataUri(b),e=null==e?120:e,c=null==c?100:c,a.hideDialog(),
d(b,e,c))},m=function(b){if(null!=b&&0<b.length){var e=f?null:k.getModel().getGeometry(k.getSelectionCell());null!=e?l(b,e.width,e.height):l(b)}else a.hideDialog(),d(null)};this.init=function(){h.focus();if(Graph.fileSupport){h.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=e.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(e){null==
c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));e.stopPropagation();e.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,e,c,d,h){m(a)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,
"text/uri-list")){var e=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)($|\?)/i.test(e)&&m(decodeURIComponent(e))}b.stopPropagation();b.preventDefault()}),!1)}};c=document.createElement("div");c.style.marginTop=mxClient.IS_QUIRKS?"22px":"14px";c.style.textAlign="right";b=mxUtils.button(mxResources.get("cancel"),function(){a.spinner.stop();a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&
null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(h.value=a.url));h.focus()};if(Graph.fileSupport){var n=document.createElement("input");n.setAttribute("multiple","multiple");n.setAttribute("type","file");if(null==document.documentMode){mxEvent.addListener(n,"change",function(b){a.importFiles(n.files,0,0,a.maxImageSize,function(a,b,e,c,d,h){m(a)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},
!0)});var p=mxUtils.button(mxResources.get("open"),function(){n.click()});p.className="geBtn";c.appendChild(p)}}document.createElement("canvas").getContext&&"data:image/"==h.value.substring(0,11)&&(p=mxUtils.button(mxResources.get("crop"),function(){var b=new CropImageDialog(a,h.value,function(a){h.value=a});a.showDialog(b.container,200,160,!0,!0);b.init()}),p.className="geBtn",c.appendChild(p));"undefined"!=typeof google&&"undefined"!=typeof google.picker&&window.self===window.top&&(p=mxUtils.button(mxResources.get("search"),
function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0);a.movePickersToTop()}),p.className="geBtn",c.appendChild(p),null!=a.drive&&"1"==urlParams.photos&&(p=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&
a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=gapi.auth.getToken().access_token,b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0);a.movePickersToTop()}))}),p.className="geBtn",
c.appendChild(p)));mxEvent.addListener(h,"keypress",function(a){13==a.keyCode&&m(h.value)});p=mxUtils.button(mxResources.get("apply"),function(){m(h.value)});p.className="geBtn gePrimaryBtn";c.appendChild(p);a.editor.cancelFirst||c.appendChild(b);Graph.fileSupport&&(c.style.marginTop="120px",e.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",e.style.backgroundPosition="center 65%",e.style.backgroundRepeat="no-repeat",b=document.createElement("div"),b.style.position="absolute",b.style.width=
"420px",b.style.top="58%",b.style.textAlign="center",b.style.fontSize="18px",b.style.color="#a0c3ff",mxUtils.write(b,mxResources.get("dragImagesHere")),e.appendChild(b));e.appendChild(c);this.container=e},LinkDialog=function(a,b,c,d,f){function g(a,b,c){c=mxUtils.button("",c);c.className="geBtn";c.setAttribute("title",b);b=document.createElement("img");b.style.height="26px";b.style.width="26px";b.setAttribute("src",a);c.style.minWidth="42px";c.style.verticalAlign="middle";c.appendChild(b);u.appendChild(c)}
"420px",b.style.top="58%",b.style.textAlign="center",b.style.fontSize="18px",b.style.color="#a0c3ff",mxUtils.write(b,mxResources.get("dragImagesHere")),e.appendChild(b));e.appendChild(c);this.container=e},LinkDialog=function(a,b,c,d,f){function g(a,b,e){e=mxUtils.button("",e);e.className="geBtn";e.setAttribute("title",b);b=document.createElement("img");b.style.height="26px";b.style.width="26px";b.setAttribute("src",a);e.style.minWidth="42px";e.style.verticalAlign="middle";e.appendChild(b);u.appendChild(e)}
var k=document.createElement("div");mxUtils.write(k,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";mxClient.IS_VML||(e.style.paddingRight="20px");var h=document.createElement("input");h.setAttribute("placeholder",mxResources.get("dragUrlsHere"));h.setAttribute("type","text");h.style.marginTop="6px";h.style.width=
"400px";h.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";h.style.backgroundRepeat="no-repeat";h.style.backgroundPosition="100% 50%";h.style.paddingRight="14px";var l=document.createElement("div");l.setAttribute("title",mxResources.get("reset"));l.style.position="relative";l.style.left="-16px";l.style.width="12px";l.style.height="14px";l.style.cursor="pointer";l.style.display=mxClient.IS_VML?"inline":"inline-block";l.style.top=(mxClient.IS_VML?0:3)+"px";l.style.background="url('"+a.editor.transparentImage+
"')";mxEvent.addListener(l,"click",function(){h.value="";h.focus()});var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-bottom:8px;";m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","current-linkdialog");var n=document.createElement("input");n.style.cssText="margin-right:8px;margin-bottom:8px;";n.setAttribute("value","url");n.setAttribute("type","radio");n.setAttribute("name","current-linkdialog");var p=document.createElement("select");
p.style.width="380px";if(f&&null!=a.pages){null!=b&&a.editor.graph.isPageLink(b)?(n.setAttribute("checked","checked"),n.defaultChecked=!0):(h.setAttribute("value",b),m.setAttribute("checked","checked"),m.defaultChecked=!0);h.style.width="380px";e.appendChild(m);e.appendChild(h);e.appendChild(l);mxUtils.br(e);e.appendChild(n);f=!1;for(l=0;l<a.pages.length;l++){var t=document.createElement("option");mxUtils.write(t,a.pages[l].getName()||mxResources.get("pageWithNumber",[l+1]));t.setAttribute("value",
"data:page/id,"+a.pages[l].getId());b==t.getAttribute("value")&&(t.setAttribute("selected","selected"),f=!0);p.appendChild(t)}if(!f&&n.checked){var q=document.createElement("option");mxUtils.write(q,mxResources.get("pageNotFound"));q.setAttribute("disabled","disabled");q.setAttribute("selected","selected");q.setAttribute("value","pageNotFound");p.appendChild(q);mxEvent.addListener(p,"change",function(){null==q.parentNode||q.selected||q.parentNode.removeChild(q)})}e.appendChild(p)}else h.setAttribute("value",
b),e.appendChild(h),e.appendChild(l);k.appendChild(e);var w=mxUtils.button(c,function(){a.hideDialog();d(n.checked?"pageNotFound"!==p.value?p.value:b:h.value,LinkDialog.selectedDocs)});w.style.verticalAlign="middle";w.className="geBtn gePrimaryBtn";this.init=function(){n.checked?p.focus():(h.focus(),mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?h.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(p,"focus",function(){m.removeAttribute("checked");n.setAttribute("checked",
"checked");n.checked=!0});mxEvent.addListener(h,"focus",function(){n.removeAttribute("checked");m.setAttribute("checked","checked");m.checked=!0});if(Graph.fileSupport){var b=k.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(d){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));d.stopPropagation();d.preventDefault()}));
mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(h.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),m.setAttribute("checked","checked"),m.checked=!0,w.click());a.stopPropagation();a.preventDefault()}),!1)}};var u=document.createElement("div");u.style.marginTop="20px";u.style.textAlign="right";c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.style.verticalAlign=
"checked");n.checked=!0});mxEvent.addListener(h,"focus",function(){n.removeAttribute("checked");m.setAttribute("checked","checked");m.checked=!0});if(Graph.fileSupport){var b=k.parentNode,e=null;mxEvent.addListener(b,"dragleave",function(a){null!=e&&(e.parentNode.removeChild(e),e=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(c){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=a.highlightElement(b));c.stopPropagation();c.preventDefault()}));
mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=e&&(e.parentNode.removeChild(e),e=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(h.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),m.setAttribute("checked","checked"),m.checked=!0,w.click());a.stopPropagation();a.preventDefault()}),!1)}};var u=document.createElement("div");u.style.marginTop="20px";u.style.textAlign="right";c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.style.verticalAlign=
"middle";c.className="geBtn";a.editor.cancelFirst&&u.appendChild(c);LinkDialog.selectedDocs=null;LinkDialog.filePicked=function(a){if(a.action==google.picker.Action.PICKED){LinkDialog.selectedDocs=a.docs;var b=a.docs[0].url;"application/mxe"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile"==a.docs[0].mimeType?(b=DriveClient.prototype.oldAppHostname,b="https://"+b+"/#G"+a.docs[0].id):"application/mxr"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile.realtime"==a.docs[0].mimeType?(b=DriveClient.prototype.newAppHostname,
b="https://"+b+"/#G"+a.docs[0].id):"application/vnd.google-apps.folder"==a.docs[0].mimeType&&(b="https://drive.google.com/#folders/"+a.docs[0].id);h.value=b;h.focus()}else LinkDialog.selectedDocs=null;h.focus()};"undefined"!=typeof google&&"undefined"!=typeof google.picker&&null!=a.drive&&g(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==
a.linkPicker){var b=gapi.auth.getToken().access_token,c=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0),d=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(c).addView(d).addView(google.picker.ViewId.RECENTLY_PICKED).addView(google.picker.ViewId.IMAGE_SEARCH).addView(google.picker.ViewId.VIDEO_SEARCH).addView(google.picker.ViewId.MAPS);
a.linkPicker){var b=gapi.auth.getToken().access_token,e=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0),c=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(e).addView(c).addView(google.picker.ViewId.RECENTLY_PICKED).addView(google.picker.ViewId.IMAGE_SEARCH).addView(google.picker.ViewId.VIDEO_SEARCH).addView(google.picker.ViewId.MAPS);
"1"==urlParams.photos&&b.addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);a.linkPicker=b.setCallback(function(a){LinkDialog.filePicked(a)}).build()}a.linkPicker.setVisible(!0);a.movePickersToTop()}))});"undefined"!=typeof Dropbox&&"undefined"!=typeof Dropbox.choose&&g(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(a){h.value=a[0].link;
h.focus()}})});null!=a.oneDrive&&g(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),function(){a.oneDrive.pickFile(function(a){h.value=a.value[0].webUrl;h.focus()},!0)});null!=a.gitHub&&g(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){a.gitHub.pickFile(function(a){if(null!=a){a=a.split("/");var b=a[0],c=a[1],d=a[2];a=a.slice(3,a.length).join("/");h.value="https://github.com/"+b+"/"+c+"/blob/"+d+"/"+a;h.focus()}})});mxEvent.addListener(h,"keypress",function(b){13==b.keyCode&&
h.focus()}})});null!=a.oneDrive&&g(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),function(){a.oneDrive.pickFile(function(a){h.value=a.value[0].webUrl;h.focus()},!0)});null!=a.gitHub&&g(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){a.gitHub.pickFile(function(a){if(null!=a){a=a.split("/");var b=a[0],e=a[1],c=a[2];a=a.slice(3,a.length).join("/");h.value="https://github.com/"+b+"/"+e+"/blob/"+c+"/"+a;h.focus()}})});mxEvent.addListener(h,"keypress",function(b){13==b.keyCode&&
(a.hideDialog(),d(n.checked?p.value:h.value,LinkDialog.selectedDocs))});u.appendChild(w);a.editor.cancelFirst||u.appendChild(c);k.appendChild(u);this.container=k},AboutDialog=function(a){var b=document.createElement("div");b.style.marginTop="6px";b.setAttribute("align","center");var c=document.createElement("img");c.style.border="0px";c.setAttribute("width","176");c.setAttribute("width","151");c.style.width="170px";c.style.height="219px";c.setAttribute("src",IMAGE_PATH+"/logo-flat.png");b.appendChild(c);
mxUtils.br(b);c=document.createElement("small");c.innerHTML="v "+EditorUi.VERSION;c.style.color="#505050";b.appendChild(c);mxUtils.br(b);mxUtils.br(b);c=document.createElement("small");c.style.color="#505050";c.innerHTML='&copy; 2005-2017 <a href="https://www.jgraph.com/" style="color:inherit;" target="_blank">JGraph Ltd</a>.<br>All Rights Reserved.';b.appendChild(c);mxEvent.addListener(b,"click",function(b){"A"!=mxEvent.getSource(b).nodeName&&a.hideDialog()});this.container=b},FeedbackDialog=function(a){var b=
document.createElement("div"),c=document.createElement("div");mxUtils.write(c,mxResources.get("sendYourFeedbackToDrawIo"));c.style.fontSize="18px";c.style.marginBottom="18px";b.appendChild(c);c=document.createElement("div");mxUtils.write(c,mxResources.get("yourEmailAddress")+" ("+mxResources.get("required")+")");b.appendChild(c);var d=document.createElement("input");d.setAttribute("type","text");d.style.marginTop="6px";d.style.width="600px";var f=mxUtils.button(mxResources.get("sendMessage"),function(){var b=
@ -6015,11 +6015,11 @@ mxUtils.write(e," "+mxResources.get("includeCopyOfMyDiagram"));c.appendChild(e);
c.style.marginTop="26px";c.style.textAlign="right";e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});e.className="geBtn";a.editor.cancelFirst?(c.appendChild(e),c.appendChild(f)):(c.appendChild(f),c.appendChild(e));b.appendChild(c);this.container=b};FeedbackDialog.maxAttachmentSize=1E6;
var RevisionDialog=function(a,b){var c=document.createElement("div"),d=document.createElement("h3");d.style.marginTop="0px";mxUtils.write(d,mxResources.get("revisionHistory"));c.appendChild(d);var f=document.createElement("div");f.style.position="absolute";f.style.overflow="auto";f.style.width="170px";f.style.height="378px";c.appendChild(f);var g=document.createElement("div");g.style.position="absolute";g.style.border="1px solid lightGray";g.style.left="199px";g.style.width="470px";g.style.height=
"376px";g.style.overflow="hidden";mxEvent.disableContextMenu(g);c.appendChild(g);var k=new Graph(g);k.setEnabled(!1);k.setPanning(!0);k.panningHandler.ignoreCell=!0;k.panningHandler.useLeftButtonForPanning=!0;k.minFitScale=null;k.maxFitScale=null;k.centerZoom=!0;var e=0,h=null,l=0,m=k.getGlobalVariable;k.getGlobalVariable=function(a){return"page"==a&&null!=h&&null!=h[l]?h[l].getAttribute("name"):"pagenumber"==a?l+1:m.apply(this,arguments)};k.getLinkForCell=function(){return null};Editor.MathJaxRender&&
k.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){a.editor.graph.mathEnabled&&Editor.MathJaxRender(k.container)}));var n=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),p=a.getCurrentFile(),t=null,q=null,w=null,u=null,x=mxUtils.button("",function(){null!=w&&k.zoomIn()});x.className="geSprite geSprite-zoomin";x.setAttribute("title",mxResources.get("zoomIn"));
k.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,e){a.editor.graph.mathEnabled&&Editor.MathJaxRender(k.container)}));var n=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),p=a.getCurrentFile(),t=null,q=null,w=null,u=null,x=mxUtils.button("",function(){null!=w&&k.zoomIn()});x.className="geSprite geSprite-zoomin";x.setAttribute("title",mxResources.get("zoomIn"));
x.style.outline="none";x.style.border="none";x.style.margin="2px";x.setAttribute("disabled","disabled");mxUtils.setOpacity(x,20);var v=mxUtils.button("",function(){null!=w&&k.zoomOut()});v.className="geSprite geSprite-zoomout";v.setAttribute("title",mxResources.get("zoomOut"));v.style.outline="none";v.style.border="none";v.style.margin="2px";v.setAttribute("disabled","disabled");mxUtils.setOpacity(v,20);var z=mxUtils.button("",function(){null!=w&&(k.maxFitScale=8,k.fit(8),k.center())});z.className=
"geSprite geSprite-fit";z.setAttribute("title",mxResources.get("fit"));z.style.outline="none";z.style.border="none";z.style.margin="2px";z.setAttribute("disabled","disabled");mxUtils.setOpacity(z,20);var C=mxUtils.button("",function(){null!=w&&(k.zoomActual(),k.center())});C.className="geSprite geSprite-actualsize";C.setAttribute("title",mxResources.get("actualSize"));C.style.outline="none";C.style.border="none";C.style.margin="2px";C.setAttribute("disabled","disabled");mxUtils.setOpacity(C,20);var E=
document.createElement("div");E.style.position="absolute";E.style.textAlign="right";E.style.color="gray";E.style.marginTop="10px";E.style.backgroundColor="transparent";E.style.top="440px";E.style.right="32px";E.style.maxWidth="380px";E.style.cursor="default";var y=mxUtils.button(mxResources.get("download"),function(){if(null!=w){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,c=mxUtils.getXml(w.documentElement);a.isLocalFileSave()?a.saveLocalFile(c,b,"text/xml"):
(c="undefined"===typeof pako?"&xml="+encodeURIComponent(c):"&data="+encodeURIComponent(a.editor.graph.compress(c)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&format=xml"+c)).simulate(document,"_blank"))}});y.className="geBtn";y.setAttribute("disabled","disabled");var A=mxUtils.button(mxResources.get("restore"),function(){null!=w&&null!=u&&a.confirm(mxResources.get("areYouSure"),function(){a.spinner.spin(document.body,mxResources.get("restoring"))&&p.save(!0,function(b){a.spinner.stop();
document.createElement("div");E.style.position="absolute";E.style.textAlign="right";E.style.color="gray";E.style.marginTop="10px";E.style.backgroundColor="transparent";E.style.top="440px";E.style.right="32px";E.style.maxWidth="380px";E.style.cursor="default";var y=mxUtils.button(mxResources.get("download"),function(){if(null!=w){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,e=mxUtils.getXml(w.documentElement);a.isLocalFileSave()?a.saveLocalFile(e,b,"text/xml"):
(e="undefined"===typeof pako?"&xml="+encodeURIComponent(e):"&data="+encodeURIComponent(a.editor.graph.compress(e)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&format=xml"+e)).simulate(document,"_blank"))}});y.className="geBtn";y.setAttribute("disabled","disabled");var A=mxUtils.button(mxResources.get("restore"),function(){null!=w&&null!=u&&a.confirm(mxResources.get("areYouSure"),function(){a.spinner.spin(document.body,mxResources.get("restoring"))&&p.save(!0,function(b){a.spinner.stop();
a.replaceFileData(u);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});A.className="geBtn";A.setAttribute("disabled","disabled");var B=document.createElement("select");B.setAttribute("disabled","disabled");B.style.maxWidth="80px";B.style.position="relative";B.style.top="-2px";B.style.verticalAlign="bottom";B.style.marginRight="6px";B.style.display="none";var F=null;mxEvent.addListener(B,"change",function(a){null!=
F&&(F(a),mxEvent.consume(a))});var G=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=w&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(w.documentElement)),window.openWindow(a.getUrl()))});G.className="geBtn";G.setAttribute("disabled","disabled");var I=mxUtils.button(mxResources.get("show"),function(){null!=q&&window.open(q.getUrl())});I.className="geBtn gePrimaryBtn";I.setAttribute("disabled","disabled");d=document.createElement("div");
d.style.position="absolute";d.style.top="482px";d.style.width="640px";d.style.textAlign="right";var D=document.createElement("div");D.className="geToolbarContainer";D.style.backgroundColor="transparent";D.style.padding="2px";D.style.border="none";D.style.left="199px";D.style.top="442px";var M=null;if(null==p||null==a.drive&&p.constructor==window.DriveFile||null==a.dropbox&&p.constructor==window.DropboxFile)g.style.display="none",D.style.display="none",mxUtils.write(f,mxResources.get("notAvailable"));
@ -6037,11 +6037,11 @@ n.minFitScale=null;n.maxFitScale=null;n.centerZoom=!0;b=mxUtils.parseXml(c);var
b.style.border="none";b.style.margin="2px";mxUtils.setOpacity(b,60);c=mxUtils.button("",function(){n.zoomOut()});c.className="geSprite geSprite-zoomout";c.setAttribute("title",mxResources.get("zoomOut"));c.style.outline="none";c.style.border="none";c.style.margin="2px";mxUtils.setOpacity(c,60);l=mxUtils.button("",function(){n.maxFitScale=8;n.fit(8);n.center()});l.className="geSprite geSprite-fit";l.setAttribute("title",mxResources.get("fit"));l.style.outline="none";l.style.border="none";l.style.margin=
"2px";mxUtils.setOpacity(l,60);var u=mxUtils.button("",function(){n.zoomActual();n.center()});u.className="geSprite geSprite-actualsize";u.setAttribute("title",mxResources.get("actualSize"));u.style.outline="none";u.style.border="none";u.style.margin="2px";mxUtils.setOpacity(u,60);f=mxUtils.button(k||mxResources.get("discard"),f);f.className="geBtn";var x=document.createElement("select");x.style.maxWidth="80px";x.style.position="relative";x.style.top="-2px";x.style.verticalAlign="bottom";x.style.marginRight=
"6px";x.style.display="none";d=mxUtils.button(g||mxResources.get("edit"),d);d.className="geBtn gePrimaryBtn";g=document.createElement("div");g.style.position="absolute";g.style.bottom="30px";g.style.width="640px";g.style.textAlign="right";k=document.createElement("div");k.className="geToolbarContainer";k.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";this.init=function(){function b(a){if(null!=a){var b=a.getAttribute("background");
if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";m.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,n.getModel());n.maxFitScale=1;n.fit(8);n.center()}}function c(c){null!=c&&(c=b(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(c))).documentElement));return c}mxEvent.addListener(x,"change",function(a){t=parseInt(x.value);c(q[t]);mxEvent.consume(a)});if("mxfile"==p.nodeName){var d=p.getElementsByTagName("diagram");q=[];for(var e=0;e<d.length;e++)q.push(d[e]);0<q.length&&
c(q[t]);if(1<q.length)for(x.style.display="",e=0;e<q.length;e++)d=document.createElement("option"),mxUtils.write(d,q[e].getAttribute("name")||mxResources.get("pageWithNumber",[e+1])),d.setAttribute("value",e),e==t&&d.setAttribute("selected","selected"),x.appendChild(d)}else b(p)};k.appendChild(x);k.appendChild(b);k.appendChild(c);k.appendChild(u);k.appendChild(l);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.className="geBtn";e=null!=e?mxUtils.button(mxResources.get("ignore"),
if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";m.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,n.getModel());n.maxFitScale=1;n.fit(8);n.center()}}function e(e){null!=e&&(e=b(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(e))).documentElement));return e}mxEvent.addListener(x,"change",function(a){t=parseInt(x.value);e(q[t]);mxEvent.consume(a)});if("mxfile"==p.nodeName){var c=p.getElementsByTagName("diagram");q=[];for(var d=0;d<c.length;d++)q.push(c[d]);0<q.length&&
e(q[t]);if(1<q.length)for(x.style.display="",d=0;d<q.length;d++)c=document.createElement("option"),mxUtils.write(c,q[d].getAttribute("name")||mxResources.get("pageWithNumber",[d+1])),c.setAttribute("value",d),d==t&&c.setAttribute("selected","selected"),x.appendChild(c)}else b(p)};k.appendChild(x);k.appendChild(b);k.appendChild(c);k.appendChild(u);k.appendChild(l);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.className="geBtn";e=null!=e?mxUtils.button(mxResources.get("ignore"),
e):null;null!=e&&(e.className="geBtn");a.editor.cancelFirst?(g.appendChild(b),null!=e&&g.appendChild(e),g.appendChild(f),g.appendChild(d)):(g.appendChild(d),g.appendChild(f),null!=e&&g.appendChild(e),g.appendChild(b));h.appendChild(g);h.appendChild(k);this.container=h},FindWindow=function(a,b,c,d,f){function g(){var a=e.model.getDescendants(e.model.getRoot()),b=n.value.toLowerCase(),c=p.checked?new RegExp(b):null,d=null;h!=b&&(h=b,l=null);var f=null==l;if(e.isEnabled()&&0<b.length)for(var g=0;g<a.length;g++){var m=
e.view.getState(a[g]);if(null!=m&&null!=m.cell.value&&(f||null==d)&&(e.model.isVertex(m.cell)||e.model.isEdge(m.cell))){e.isHtmlLabel(m.cell)?(t.innerHTML=e.getLabel(m.cell),label=mxUtils.extractTextWithWhitespace([t])):label=e.getLabel(m.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var k;if(!(k=null==c&&label.substring(0,b.length)===b)&&(k=null!=c)&&!(k=c.test(label)))a:{k=c;var q=m.cell;if("object"===typeof q.value&&null!=q.value.attributes)for(var q=q.value.attributes,
B=0;B<q.length;B++)if("label"!=q[B].nodeName&&k.test(q[B].nodeValue.toLowerCase())){k=!0;break a}k=!1}if(k)if(f){d=m;break}else null==d&&(d=m)}f=f||m==l}null!=d?(l=d,e.setSelectionCell(l.cell),e.scrollCellToVisible(l.cell)):e.clearSelection();return!e.isEnabled()||0==b.length||null!=d}var k=a.actions.get("find"),e=a.editor.graph,h=null,l=null,m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height="100%";var n=document.createElement("input");
e.view.getState(a[g]);if(null!=m&&null!=m.cell.value&&(f||null==d)&&(e.model.isVertex(m.cell)||e.model.isEdge(m.cell))){e.isHtmlLabel(m.cell)?(t.innerHTML=e.getLabel(m.cell),label=mxUtils.extractTextWithWhitespace([t])):label=e.getLabel(m.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var q;if(!(q=null==c&&label.substring(0,b.length)===b)&&(q=null!=c)&&!(q=c.test(label)))a:{q=c;var k=m.cell;if("object"===typeof k.value&&null!=k.value.attributes)for(var k=k.value.attributes,
B=0;B<k.length;B++)if("label"!=k[B].nodeName&&q.test(k[B].nodeValue.toLowerCase())){q=!0;break a}q=!1}if(q)if(f){d=m;break}else null==d&&(d=m)}f=f||m==l}null!=d?(l=d,e.setSelectionCell(l.cell),e.scrollCellToVisible(l.cell)):e.clearSelection();return!e.isEnabled()||0==b.length||null!=d}var k=a.actions.get("find"),e=a.editor.graph,h=null,l=null,m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height="100%";var n=document.createElement("input");
n.setAttribute("placeholder",mxResources.get("find"));n.setAttribute("type","text");n.style.marginTop="4px";n.style.marginBottom="6px";n.style.width="170px";n.style.fontSize="12px";n.style.borderRadius="4px";n.style.padding="6px";m.appendChild(n);var p=document.createElement("input");p.setAttribute("type","checkbox");m.appendChild(p);mxUtils.write(m,mxResources.get("regularExpression"));var t=document.createElement("div");mxUtils.br(m);var q=mxUtils.button(mxResources.get("reset"),function(){n.value=
"";n.style.backgroundColor="";h=l=null;n.focus()});q.setAttribute("title",mxResources.get("reset"));q.style.marginTop="6px";q.style.marginRight="4px";q.style.backgroundColor="#f5f5f5";q.style.backgroundImage="none";q.className="geBtn";m.appendChild(q);q=mxUtils.button(mxResources.get("find"),function(){try{n.style.backgroundColor=g()?"":"#ffcfcf"}catch(w){a.handleError(w)}});q.setAttribute("title",mxResources.get("find")+" (Enter)");q.style.marginTop="6px";q.style.backgroundColor="#4d90fe";q.style.backgroundImage=
"none";q.className="geBtn gePrimaryBtn";m.appendChild(q);mxEvent.addListener(n,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)k.funct();else if(h!=n.value.toLowerCase()||13==a.keyCode)try{n.style.backgroundColor=g()?"":"#ffcfcf"}catch(u){n.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(m,"keydown",function(b){70==b.keyCode&&a.keyHandler.isControlDown(b)&&!mxEvent.isShiftDown(b)&&(k.funct(),mxEvent.consume(b))});this.window=new mxWindow(mxResources.get("find"),
@ -6061,31 +6061,31 @@ a.sidebar.isEntryVisible(b.id);m.defaultChecked=m.checked;c.appendChild(m);mxUti
"dblclick",function(a){m.checked=!m.checked;mxEvent.consume(a)});e.push(function(){return m.checked?b.id:null});0==l&&0==d&&n()})(b.entries[d])})(c[l]);d.style.padding="30px";d.appendChild(b);d.appendChild(f);d.appendChild(g);c=document.createElement("div");c.className="geDialogFooter";c.style.position="absolute";c.style.paddingRight="16px";c.style.color="gray";c.style.left="0px";c.style.right="0px";c.style.bottom="0px";c.style.height="60px";c.style.lineHeight="52px";mxClient.IS_QUIRKS&&(c.style.width=
b.style.width,c.style.paddingTop="12px");var m=document.createElement("input");m.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)b=document.createElement("span"),b.style.paddingRight="20px",b.appendChild(m),mxUtils.write(b," "+mxResources.get("rememberThisSetting")),m.checked=!0,m.defaultChecked=!0,mxEvent.addListener(b,"click",function(a){mxEvent.getSource(a)!=m&&(m.checked=!m.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.top="-6px"),
c.appendChild(b);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";var n=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b=[],c=0;c<e.length;c++){var d=e[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(b.join(";"),m.checked,!0)});n.className="geBtn gePrimaryBtn"}else{var p=document.createElement("table"),t=document.createElement("tbody");d.style.height="100%";d.style.overflow="auto";var q=document.createElement("tr");
p.style.width="100%";b=document.createElement("td");var n=document.createElement("td"),w=document.createElement("td"),u=mxUtils.bind(this,function(b,c,d){var e=document.createElement("input");e.type="checkbox";p.appendChild(e);e.checked=a.sidebar.isEntryVisible(d);var h=document.createElement("span");mxUtils.write(h,c);c=document.createElement("div");c.style.display="block";c.appendChild(e);c.appendChild(h);mxEvent.addListener(h,"click",function(a){e.checked=!e.checked;mxEvent.consume(a)});b.appendChild(c);
return function(){return e.checked?d:null}});q.appendChild(b);q.appendChild(n);q.appendChild(w);t.appendChild(q);p.appendChild(t);for(var e=[],x=0,l=0;l<c.length;l++)for(t=0;t<c[l].entries.length;t++)x++;for(var v=[b,n,w],z=0,l=0;l<c.length;l++)(function(a){for(var b=0;b<a.entries.length;b++){var c=a.entries[b];e.push(u(v[Math.floor(z/(x/3))],c.title,c.id));z++}})(c[l]);d.appendChild(p);c=document.createElement("div");c.style.marginTop="18px";c.style.textAlign="center";m=document.createElement("input");
p.style.width="100%";b=document.createElement("td");var n=document.createElement("td"),w=document.createElement("td"),u=mxUtils.bind(this,function(b,e,c){var d=document.createElement("input");d.type="checkbox";p.appendChild(d);d.checked=a.sidebar.isEntryVisible(c);var h=document.createElement("span");mxUtils.write(h,e);e=document.createElement("div");e.style.display="block";e.appendChild(d);e.appendChild(h);mxEvent.addListener(h,"click",function(a){d.checked=!d.checked;mxEvent.consume(a)});b.appendChild(e);
return function(){return d.checked?c:null}});q.appendChild(b);q.appendChild(n);q.appendChild(w);t.appendChild(q);p.appendChild(t);for(var e=[],x=0,l=0;l<c.length;l++)for(t=0;t<c[l].entries.length;t++)x++;for(var v=[b,n,w],z=0,l=0;l<c.length;l++)(function(a){for(var b=0;b<a.entries.length;b++){var c=a.entries[b];e.push(u(v[Math.floor(z/(x/3))],c.title,c.id));z++}})(c[l]);d.appendChild(p);c=document.createElement("div");c.style.marginTop="18px";c.style.textAlign="center";m=document.createElement("input");
isLocalStorage&&(m.setAttribute("type","checkbox"),m.checked=!0,m.defaultChecked=!0,c.appendChild(m),b=document.createElement("span"),mxUtils.write(b," "+mxResources.get("rememberThisSetting")),c.appendChild(b),mxEvent.addListener(b,"click",function(a){m.checked=!m.checked;mxEvent.consume(a)}));d.appendChild(c);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],c=0;c<e.length;c++){var d=
e[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(0<b.length?b.join(";"):"",m.checked);a.hideDialog()});n.className="geBtn gePrimaryBtn";c=document.createElement("div");c.style.marginTop="26px";c.style.textAlign="right"}a.editor.cancelFirst?(c.appendChild(b),c.appendChild(n)):(c.appendChild(n),c.appendChild(b));d.appendChild(c);this.container=d},PluginsDialog=function(a){function b(){if(0==f.length)d.innerHTML=mxResources.get("noPlugins");else{d.innerHTML="";for(var c=0;c<f.length;c++){var e=
document.createElement("span");e.style.whiteSpace="nowrap";var h=document.createElement("span");h.className="geSprite geSprite-delete";h.style.position="relative";h.style.cursor="pointer";h.style.top="5px";h.style.marginRight="4px";h.style.display="inline-block";e.appendChild(h);mxUtils.write(e,f[c]);d.appendChild(e);mxUtils.br(d);mxEvent.addListener(h,"click",function(c){return function(){a.confirm(window.parent.mxResources.get("delete")+' "'+f[c]+'"?',function(){f.splice(c,1);b()})}}(c))}}}var c=
document.createElement("div"),d=document.createElement("div");d.style.height="120px";d.style.overflow="auto";var f=mxSettings.getPlugins().slice();c.appendChild(d);b();var g=mxUtils.button(mxResources.get("add"),function(){var c="",d=urlParams.p;if(null!=d&&0<d.length){for(var e=d.split(";"),d=0;d<e.length;d++){var h=App.pluginRegistry[e[d]];null!=h&&(c+=h+";")}";"==c.charAt(c.length-1)&&(c=c.substring(0,c.length-1))}c=new FilenameDialog(a,c,mxResources.get("add"),function(a){if(null!=a&&0<a.length){e=
a.split(";");for(a=0;a<e.length;a++)0<e[a].length&&0>mxUtils.indexOf(f,e[a])&&f.push(e[a]);b()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");a.showDialog(c.container,300,80,!0,!0);c.init()});g.className="geBtn";var k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";var e=mxUtils.button(mxResources.get("apply"),function(){mxSettings.setPlugins(f);mxSettings.save();a.hideDialog();a.alert(mxResources.get("restartForChangeRequired"))});e.className=
e[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(0<b.length?b.join(";"):"",m.checked);a.hideDialog()});n.className="geBtn gePrimaryBtn";c=document.createElement("div");c.style.marginTop="26px";c.style.textAlign="right"}a.editor.cancelFirst?(c.appendChild(b),c.appendChild(n)):(c.appendChild(n),c.appendChild(b));d.appendChild(c);this.container=d},PluginsDialog=function(a){function b(){if(0==f.length)d.innerHTML=mxResources.get("noPlugins");else{d.innerHTML="";for(var e=0;e<f.length;e++){var c=
document.createElement("span");c.style.whiteSpace="nowrap";var h=document.createElement("span");h.className="geSprite geSprite-delete";h.style.position="relative";h.style.cursor="pointer";h.style.top="5px";h.style.marginRight="4px";h.style.display="inline-block";c.appendChild(h);mxUtils.write(c,f[e]);d.appendChild(c);mxUtils.br(d);mxEvent.addListener(h,"click",function(e){return function(){a.confirm(window.parent.mxResources.get("delete")+' "'+f[e]+'"?',function(){f.splice(e,1);b()})}}(e))}}}var c=
document.createElement("div"),d=document.createElement("div");d.style.height="120px";d.style.overflow="auto";var f=mxSettings.getPlugins().slice();c.appendChild(d);b();var g=mxUtils.button(mxResources.get("add"),function(){var e="",c=urlParams.p;if(null!=c&&0<c.length){for(var d=c.split(";"),c=0;c<d.length;c++){var h=App.pluginRegistry[d[c]];null!=h&&(e+=h+";")}";"==e.charAt(e.length-1)&&(e=e.substring(0,e.length-1))}e=new FilenameDialog(a,e,mxResources.get("add"),function(a){if(null!=a&&0<a.length){d=
a.split(";");for(a=0;a<d.length;a++)0<d[a].length&&0>mxUtils.indexOf(f,d[a])&&f.push(d[a]);b()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");a.showDialog(e.container,300,80,!0,!0);e.init()});g.className="geBtn";var k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";var e=mxUtils.button(mxResources.get("apply"),function(){mxSettings.setPlugins(f);mxSettings.save();a.hideDialog();a.alert(mxResources.get("restartForChangeRequired"))});e.className=
"geBtn gePrimaryBtn";var h=document.createElement("div");h.style.marginTop="14px";h.style.textAlign="right";a.editor.cancelFirst?(h.appendChild(k),h.appendChild(g),h.appendChild(e)):(h.appendChild(g),h.appendChild(e),h.appendChild(k));c.appendChild(h);this.container=c},CropImageDialog=function(a,b,c){var d=document.createElement("div"),f=document.createElement("table"),g=document.createElement("tbody"),k=document.createElement("tr"),e=document.createElement("td"),h=document.createElement("td");f.style.paddingLeft=
"6px";mxUtils.write(e,mxResources.get("left")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.width="100px";l.value="0";this.init=function(){l.focus();l.select()};h.appendChild(l);k.appendChild(e);k.appendChild(h);g.appendChild(k);k=document.createElement("tr");e=document.createElement("td");h=document.createElement("td");mxUtils.write(e,mxResources.get("top")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.width="100px";m.value="0";
h.appendChild(m);k.appendChild(e);k.appendChild(h);g.appendChild(k);k=document.createElement("tr");e=document.createElement("td");h=document.createElement("td");mxUtils.write(e,mxResources.get("right")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="100px";n.value="0";h.appendChild(n);k.appendChild(e);k.appendChild(h);g.appendChild(k);k=document.createElement("tr");e=document.createElement("td");h=document.createElement("td");mxUtils.write(e,mxResources.get("bottom")+
":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value="0";h.appendChild(p);k.appendChild(e);k.appendChild(h);g.appendChild(k);k=document.createElement("tr");e=document.createElement("td");h=document.createElement("td");mxUtils.write(e,mxResources.get("circle")+":");k.appendChild(e);var t=document.createElement("input");t.setAttribute("type","checkbox");h.appendChild(t);k.appendChild(h);g.appendChild(k);f.appendChild(g);d.appendChild(f);var f=mxUtils.button(mxResources.get("cancel"),
function(){a.hideDialog()}),q=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var d=document.createElement("canvas"),e=d.getContext("2d"),h=new Image;h.onload=function(){var a=h.width,b=h.height,f=parseInt(l.value),g=parseInt(m.value),a=Math.max(1,a-f-parseInt(n.value)),b=Math.max(1,b-g-parseInt(p.value));d.width=a;d.height=b;t.checked&&(e.fillStyle="#000000",e.arc(a/2,b/2,Math.min(a/2,b/2),0,2*Math.PI),e.fill(),e.globalCompositeOperation="source-in");e.drawImage(h,f,g,a,b,0,0,a,
b);c(d.toDataURL())};h.src=b});mxEvent.addListener(d,"keypress",function(a){13==a.keyCode&&q.click()});g=document.createElement("div");g.style.marginTop="20px";g.style.textAlign="right";a.editor.cancelFirst?(g.appendChild(f),g.appendChild(q)):(g.appendChild(q),g.appendChild(f));d.appendChild(g);this.container=d},EditGeometryDialog=function(a,b){var c=a.editor.graph,d=1==b.length?c.getCellGeometry(b[0]):null,f=document.createElement("div"),g=document.createElement("table"),k=document.createElement("tbody"),
function(){a.hideDialog()}),q=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var e=document.createElement("canvas"),d=e.getContext("2d"),h=new Image;h.onload=function(){var a=h.width,b=h.height,f=parseInt(l.value),g=parseInt(m.value),a=Math.max(1,a-f-parseInt(n.value)),b=Math.max(1,b-g-parseInt(p.value));e.width=a;e.height=b;t.checked&&(d.fillStyle="#000000",d.arc(a/2,b/2,Math.min(a/2,b/2),0,2*Math.PI),d.fill(),d.globalCompositeOperation="source-in");d.drawImage(h,f,g,a,b,0,0,a,
b);c(e.toDataURL())};h.src=b});mxEvent.addListener(d,"keypress",function(a){13==a.keyCode&&q.click()});g=document.createElement("div");g.style.marginTop="20px";g.style.textAlign="right";a.editor.cancelFirst?(g.appendChild(f),g.appendChild(q)):(g.appendChild(q),g.appendChild(f));d.appendChild(g);this.container=d},EditGeometryDialog=function(a,b){var c=a.editor.graph,d=1==b.length?c.getCellGeometry(b[0]):null,f=document.createElement("div"),g=document.createElement("table"),k=document.createElement("tbody"),
e=document.createElement("tr"),h=document.createElement("td"),l=document.createElement("td");g.style.paddingLeft="6px";mxUtils.write(h,mxResources.get("left")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.width="100px";m.value=null!=d?d.x:"";this.init=function(){m.focus();m.select()};l.appendChild(m);e.appendChild(h);e.appendChild(l);k.appendChild(e);e=document.createElement("tr");h=document.createElement("td");l=document.createElement("td");mxUtils.write(h,mxResources.get("top")+
":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="100px";n.value=null!=d?d.y:"";l.appendChild(n);e.appendChild(h);e.appendChild(l);k.appendChild(e);e=document.createElement("tr");h=document.createElement("td");l=document.createElement("td");mxUtils.write(h,mxResources.get("width")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value=null!=d?d.width:"";l.appendChild(p);e.appendChild(h);e.appendChild(l);k.appendChild(e);
e=document.createElement("tr");h=document.createElement("td");l=document.createElement("td");mxUtils.write(h,mxResources.get("height")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value=null!=d?d.height:"";l.appendChild(t);e.appendChild(h);e.appendChild(l);k.appendChild(e);e=document.createElement("tr");h=document.createElement("td");l=document.createElement("td");mxUtils.write(h,mxResources.get("rotation")+":");var q=document.createElement("input");
q.setAttribute("type","text");q.style.width="100px";q.value=1==b.length?mxUtils.getValue(c.getCellStyle(b[0]),mxConstants.STYLE_ROTATION,0):"";l.appendChild(q);e.appendChild(h);e.appendChild(l);k.appendChild(e);g.appendChild(k);f.appendChild(g);var d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),w=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.getModel().beginUpdate();try{for(var d=0;d<b.length;d++){var e=c.getCellGeometry(b[d]);null!=e&&(e=e.clone(),c.isCellMovable(b[d])&&
(0<mxUtils.trim(m.value).length&&(e.x=Number(m.value)),0<mxUtils.trim(n.value).length&&(e.y=Number(n.value))),c.isCellResizable(b[d])&&(0<mxUtils.trim(p.value).length&&(e.width=Number(p.value)),0<mxUtils.trim(t.value).length&&(e.height=Number(t.value))),c.getModel().setGeometry(b[d],e));0<mxUtils.trim(q.value).length&&c.setCellStyles(mxConstants.STYLE_ROTATION,Number(q.value),[b[d]])}}finally{c.getModel().endUpdate()}});mxEvent.addListener(f,"keypress",function(a){13==a.keyCode&&w.click()});g=document.createElement("div");
g.style.marginTop="20px";g.style.textAlign="right";a.editor.cancelFirst?(g.appendChild(d),g.appendChild(w)):(g.appendChild(w),g.appendChild(d));f.appendChild(g);this.container=f},LibraryDialog=function(a,b,c,d,f,g){function k(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=t;)a=a.parentNode;var b=null;if(null!=a)for(var c=t.firstChild,b=0;null!=c&&c!=a;)c=c.nextSibling,b++;return b}function e(b,c,d,h,l,f,g,n,x){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&
q.setAttribute("type","text");q.style.width="100px";q.value=1==b.length?mxUtils.getValue(c.getCellStyle(b[0]),mxConstants.STYLE_ROTATION,0):"";l.appendChild(q);e.appendChild(h);e.appendChild(l);k.appendChild(e);g.appendChild(k);f.appendChild(g);var d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),w=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.getModel().beginUpdate();try{for(var e=0;e<b.length;e++){var d=c.getCellGeometry(b[e]);null!=d&&(d=d.clone(),c.isCellMovable(b[e])&&
(0<mxUtils.trim(m.value).length&&(d.x=Number(m.value)),0<mxUtils.trim(n.value).length&&(d.y=Number(n.value))),c.isCellResizable(b[e])&&(0<mxUtils.trim(p.value).length&&(d.width=Number(p.value)),0<mxUtils.trim(t.value).length&&(d.height=Number(t.value))),c.getModel().setGeometry(b[e],d));0<mxUtils.trim(q.value).length&&c.setCellStyles(mxConstants.STYLE_ROTATION,Number(q.value),[b[e]])}}finally{c.getModel().endUpdate()}});mxEvent.addListener(f,"keypress",function(a){13==a.keyCode&&w.click()});g=document.createElement("div");
g.style.marginTop="20px";g.style.textAlign="right";a.editor.cancelFirst?(g.appendChild(d),g.appendChild(w)):(g.appendChild(w),g.appendChild(d));f.appendChild(g);this.container=f},LibraryDialog=function(a,b,c,d,f,g){function k(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=t;)a=a.parentNode;var b=null;if(null!=a)for(var e=t.firstChild,b=0;null!=e&&e!=a;)e=e.nextSibling,b++;return b}function e(b,c,d,h,l,f,g,n,x){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&
null!=g||null==w[b]){var p=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=M.title&&0<M.title.length?M.title:mxResources.get("untitled"));D.style.color=null==M.title||0==M.title.length?"#d0d0d0":""};t.style.backgroundImage="";q.style.display="none";var A=l,B=f;if(l>a.maxImageSize||f>a.maxImageSize){var E=Math.min(1,Math.min(a.maxImageSize/Math.max(1,l)),a.maxImageSize/Math.max(1,f));l*=E;f*=E}A>B?(B=Math.round(100*
B/A),A=100):(A=Math.round(100*A/B),B=100);var G=document.createElement("div");G.setAttribute("draggable","true");G.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";G.style.position="relative";G.style.cursor="move";mxUtils.setPrefixedStyle(G.style,"transition","transform .1s ease-in-out");if(null!=b){var y=document.createElement("img");y.setAttribute("src",z.convert(b));y.style.width=A+"px";y.style.height=B+"px";y.style.margin="10px";y.style.paddingBottom=Math.floor((100-B)/2)+"px";y.style.paddingLeft=
Math.floor((100-A)/2)+"px";G.appendChild(y)}else if(null!=g){var F=a.stringToCells(a.editor.graph.decompress(g.xml));0<F.length&&(a.sidebar.createThumb(F,100,100,G,null,!0,!1),G.firstChild.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",G.firstChild.style.cursor="")}var I=document.createElement("img");I.setAttribute("src",Editor.closeImage);I.setAttribute("border","0");I.setAttribute("title",mxResources.get("delete"));I.setAttribute("align","top");I.style.paddingTop="4px";I.style.marginLeft=
"-22px";I.style.cursor="pointer";mxEvent.addListener(I,"dragstart",function(a){mxEvent.consume(a)});null==b&&null!=g&&(I.style.position="relative");(function(a,b,c){mxEvent.addListener(I,"click",function(d){w[b]=null;for(var e=0;e<m.length;e++)if(null!=m[e].data&&m[e].data==b||null!=m[e].xml&&null!=c&&m[e].xml==c.xml){m.splice(e,1);break}G.parentNode.removeChild(a);0==m.length&&(t.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",q.style.display="");mxEvent.consume(d)});mxEvent.addListener(I,
"-22px";I.style.cursor="pointer";mxEvent.addListener(I,"dragstart",function(a){mxEvent.consume(a)});null==b&&null!=g&&(I.style.position="relative");(function(a,b,e){mxEvent.addListener(I,"click",function(c){w[b]=null;for(var d=0;d<m.length;d++)if(null!=m[d].data&&m[d].data==b||null!=m[d].xml&&null!=e&&m[d].xml==e.xml){m.splice(d,1);break}G.parentNode.removeChild(a);0==m.length&&(t.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",q.style.display="");mxEvent.consume(c)});mxEvent.addListener(I,
"dblclick",function(a){mxEvent.consume(a)})})(G,b,g);G.appendChild(I);G.style.marginBottom="30px";var D=document.createElement("div");D.style.position="absolute";D.style.boxSizing="border-box";D.style.bottom="-18px";D.style.left="10px";D.style.right="10px";D.style.backgroundColor="#ffffff";D.style.overflow="hidden";D.style.textAlign="center";var M=null;null!=b?(M={data:b,w:l,h:f,title:x},null!=n&&(M.aspect=n),w[b]=y,m.push(M)):null!=g&&(g.aspect="fixed",m.push(g),M=g);mxEvent.addListener(D,"keydown",
function(a){13==a.keyCode&&null!=v&&(v(),v=null,mxEvent.consume(a))});p();G.appendChild(D);mxEvent.addListener(D,"mousedown",function(a){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(a)});F=function(b){if(mxClient.IS_IOS||mxClient.IS_QUIRKS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var c=new FilenameDialog(a,M.title||"",mxResources.get("ok"),function(a){null!=a&&(M.title=a,p())},mxResources.get("enterValue"));a.showDialog(c.container,300,80,!0,!0);c.init();
function(a){13==a.keyCode&&null!=v&&(v(),v=null,mxEvent.consume(a))});p();G.appendChild(D);mxEvent.addListener(D,"mousedown",function(a){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(a)});F=function(b){if(mxClient.IS_IOS||mxClient.IS_QUIRKS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var e=new FilenameDialog(a,M.title||"",mxResources.get("ok"),function(a){null!=a&&(M.title=a,p())},mxResources.get("enterValue"));a.showDialog(e.container,300,80,!0,!0);e.init();
mxEvent.consume(b)}else if("true"!=D.getAttribute("contentEditable")){null!=v&&(v(),v=null);if(null==M.title||0==M.title.length)D.innerHTML="";D.style.textOverflow="";D.style.whiteSpace="";D.style.cursor="text";D.style.color="";D.setAttribute("contentEditable","true");D.focus();document.execCommand("selectAll",!1,null);v=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";M.title=D.innerHTML;p()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",F);mxEvent.addListener(G,"dblclick",
F);t.appendChild(G);mxEvent.addListener(G,"dragstart",function(a){null==b&&null!=g&&(I.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",g.xml);u=k(a);mxClient.IS_GC&&(G.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(G.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(G,30);I.style.visibility="";D.style.visibility=""},0)});mxEvent.addListener(G,"dragend",function(a){"hidden"==I.style.visibility&&(I.style.visibility=
"",D.style.visibility="");u=null;mxUtils.setOpacity(G,100);mxUtils.setPrefixedStyle(G.style,"transform",null)})}else C||(C=!0,a.handleError({message:mxResources.get("fileExists")}));else{l=!1;try{if(a.spinner.stop(),A=mxUtils.parseXml(b),"mxlibrary"==A.documentElement.nodeName){B=JSON.parse(mxUtils.getTextContent(A.documentElement));if(null!=B&&0<B.length)for(var H=0;H<B.length;H++)null!=B[H].xml?e(null,null,0,0,0,0,B[H]):e(B[H].data,null,0,0,B[H].w,B[H].h,null,"fixed",B[H].title);l=!0}else if("mxfile"==
@ -6097,14 +6097,14 @@ b);p.style.marginRight="20px";p.style.marginLeft="10px";p.style.width="500px";nu
mxEvent.getSource(a).getAttribute("contentEditable")&&null!=v&&(v(),v=null,mxEvent.consume(a))};mxEvent.addListener(t,"mousedown",b);mxEvent.addListener(t,"pointerdown",b);mxEvent.addListener(t,"touchstart",b);var z=new mxUrlConverter,C=!1;if(null!=d)for(b=0;b<d.length;b++)n=d[b],e(n.data,null,0,0,n.w,n.h,n,n.aspect,n.title);mxEvent.addListener(t,"dragleave",function(a){q.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==t||b==q){a.stopPropagation();a.preventDefault();break}b=b.parentNode}});
var E=function(b){return function(c,d,h,l,f,g,m,w,n){null!=n&&!a.isOffline()&&(new XMLHttpRequest).upload&&a.isRemoteFileFormat(c,n.name)?a.parseFile(n,mxUtils.bind(this,function(c){4==c.readyState&&(a.spinner.stop(),200<=c.status&&299>=c.status&&(e(c.responseText,d,h,l,f,g,m,"fixed",mxEvent.isAltDown(b)?null:m.substring(0,m.lastIndexOf(".")).replace(/_/g," ")),t.scrollTop=t.scrollHeight))})):(e(c,d,h,l,f,g,m,"fixed",mxEvent.isAltDown(b)?null:m.substring(0,m.lastIndexOf(".")).replace(/_/g," ")),t.scrollTop=
t.scrollHeight)}};mxEvent.addListener(t,"dragover",h);mxEvent.addListener(t,"drop",l);mxEvent.addListener(q,"dragover",h);mxEvent.addListener(q,"drop",l);c.appendChild(t);d=document.createElement("div");d.style.textAlign="right";d.style.marginTop="20px";b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.setAttribute("id","btnCancel");b.className="geBtn";a.editor.cancelFirst&&d.appendChild(b);window.chrome&&chrome.app&&chrome.app.runtime?p.setAttribute("disabled","disabled"):
(n=mxUtils.button(mxResources.get("export"),function(){var b=a.createLibraryDataFromImages(m),c=p.value;/(\.xml)$/i.test(c)||(c+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml",null,null,!0):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(c)+"&format=xml&xml="+encodeURIComponent(b))).simulate(document,"_blank")}),n.setAttribute("id","btnDownload"),n.className="geBtn",d.appendChild(n));var y=document.createElement("input");y.setAttribute("multiple","multiple");y.setAttribute("type",
"file");null==document.documentMode&&(mxEvent.addListener(y,"change",function(b){C=!1;a.importFiles(y.files,0,0,a.maxImageSize,function(a,c,d,e,h,l,f,g,m){E(b)(a,c,d,e,h,l,f,g,m);y.value=""});t.scrollTop=t.scrollHeight}),n=mxUtils.button(mxResources.get("import"),function(){null!=v&&(v(),v=null);y.click()}),n.setAttribute("id","btnAddImage"),n.className="geBtn",d.appendChild(n));n=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=v&&(v(),v=null);a.showImageDialog(mxResources.get("addImageUrl"),
"",function(a,b,c){C=!1;if(null!=a){if("data:image/"==a.substring(0,11)){var d=a.indexOf(",");0<d&&(a=a.substring(0,d)+";base64,"+a.substring(d+1))}e(a,null,0,0,b,c);t.scrollTop=t.scrollHeight}})});n.setAttribute("id","btnAddImageUrl");n.className="geBtn";d.appendChild(n);this.saveBtnClickHandler=function(b,c,d,e){a.saveLibrary(b,c,d,e)};n=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=v&&(v(),v=null);this.saveBtnClickHandler(p.value,m,f,g)}));n.setAttribute("id","btnSave");
(n=mxUtils.button(mxResources.get("export"),function(){var b=a.createLibraryDataFromImages(m),e=p.value;/(\.xml)$/i.test(e)||(e+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,e,"text/xml",null,null,!0):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(e)+"&format=xml&xml="+encodeURIComponent(b))).simulate(document,"_blank")}),n.setAttribute("id","btnDownload"),n.className="geBtn",d.appendChild(n));var y=document.createElement("input");y.setAttribute("multiple","multiple");y.setAttribute("type",
"file");null==document.documentMode&&(mxEvent.addListener(y,"change",function(b){C=!1;a.importFiles(y.files,0,0,a.maxImageSize,function(a,e,c,d,h,l,f,g,m){E(b)(a,e,c,d,h,l,f,g,m);y.value=""});t.scrollTop=t.scrollHeight}),n=mxUtils.button(mxResources.get("import"),function(){null!=v&&(v(),v=null);y.click()}),n.setAttribute("id","btnAddImage"),n.className="geBtn",d.appendChild(n));n=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=v&&(v(),v=null);a.showImageDialog(mxResources.get("addImageUrl"),
"",function(a,b,c){C=!1;if(null!=a){if("data:image/"==a.substring(0,11)){var d=a.indexOf(",");0<d&&(a=a.substring(0,d)+";base64,"+a.substring(d+1))}e(a,null,0,0,b,c);t.scrollTop=t.scrollHeight}})});n.setAttribute("id","btnAddImageUrl");n.className="geBtn";d.appendChild(n);this.saveBtnClickHandler=function(b,e,c,d){a.saveLibrary(b,e,c,d)};n=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=v&&(v(),v=null);this.saveBtnClickHandler(p.value,m,f,g)}));n.setAttribute("id","btnSave");
n.className="geBtn gePrimaryBtn";d.appendChild(n);a.editor.cancelFirst||d.appendChild(b);c.appendChild(d);this.container=c},EditShapeDialog=function(a,b,c,d,f){d=null!=d?d:300;f=null!=f?f:120;var g,k,e=document.createElement("table"),h=document.createElement("tbody");e.style.cellPadding="4px";g=document.createElement("tr");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";mxUtils.write(k,c);g.appendChild(k);h.appendChild(g);g=document.createElement("tr");k=document.createElement("td");
var l=document.createElement("textarea");l.style.outline="none";l.style.resize="none";l.style.width=d-200+"px";l.style.height=f+"px";this.textarea=l;this.init=function(){l.focus();l.scrollTop=0};k.appendChild(l);g.appendChild(k);k=document.createElement("td");c=document.createElement("div");c.style.position="relative";c.style.border="1px solid gray";c.style.top="6px";c.style.width="200px";c.style.height=f+4+"px";c.style.overflow="hidden";c.style.marginBottom="16px";mxEvent.disableContextMenu(c);k.appendChild(c);
var m=new Graph(c);m.setEnabled(!1);var n=a.editor.graph.cloneCells([b])[0];m.addCells([n]);c=m.view.getState(n);var p="";null!=c.shape&&null!=c.shape.stencil&&(p=mxUtils.getPrettyXml(c.shape.stencil.desc));mxUtils.write(l,p||"");c=m.getGraphBounds();f=Math.min(160/c.width,(f-40)/c.height);m.view.scaleAndTranslate(f,20/f-c.x,20/f-c.y);g.appendChild(k);h.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.setAttribute("colspan","2");k.style.paddingTop="2px";k.style.whiteSpace=
"nowrap";k.setAttribute("align","right");f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});f.className="geBtn";a.editor.cancelFirst&&k.appendChild(f);a.isOffline()||(c=mxUtils.button(mxResources.get("help"),function(){window.open("https://desk.draw.io/support/solutions/articles/16000052874")}),c.className="geBtn",k.appendChild(c));var t=function(b,c,d){var e=l.value,h=mxUtils.parseXml(e),e=mxUtils.getPrettyXml(h.documentElement),h=h.documentElement.getElementsByTagName("parsererror");
if(null!=h&&0<h.length)a.showError(mxResources.get("error"),mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(d&&a.hideDialog(),h=!b.model.contains(c),!d||h||e!=p){e=a.editor.graph.compress(e);b.getModel().beginUpdate();try{if(h){var f=a.editor.graph.getInsertPoint();c.geometry.x=f.x;c.geometry.y=f.y;b.addCell(c)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+e+")",[c])}catch(C){throw C;}finally{b.getModel().endUpdate()}h&&b.setSelectionCell(c)}};c=mxUtils.button(mxResources.get("preview"),
"nowrap";k.setAttribute("align","right");f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});f.className="geBtn";a.editor.cancelFirst&&k.appendChild(f);a.isOffline()||(c=mxUtils.button(mxResources.get("help"),function(){window.open("https://desk.draw.io/support/solutions/articles/16000052874")}),c.className="geBtn",k.appendChild(c));var t=function(b,e,c){var d=l.value,h=mxUtils.parseXml(d),d=mxUtils.getPrettyXml(h.documentElement),h=h.documentElement.getElementsByTagName("parsererror");
if(null!=h&&0<h.length)a.showError(mxResources.get("error"),mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(c&&a.hideDialog(),h=!b.model.contains(e),!c||h||d!=p){d=a.editor.graph.compress(d);b.getModel().beginUpdate();try{if(h){var f=a.editor.graph.getInsertPoint();e.geometry.x=f.x;e.geometry.y=f.y;b.addCell(e)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+d+")",[e])}catch(C){throw C;}finally{b.getModel().endUpdate()}h&&b.setSelectionCell(e)}};c=mxUtils.button(mxResources.get("preview"),
function(){t(m,n,!1)});c.className="geBtn";k.appendChild(c);c=mxUtils.button(mxResources.get("apply"),function(){t(a.editor.graph,b,!0)});c.className="geBtn gePrimaryBtn";k.appendChild(c);a.editor.cancelFirst||k.appendChild(f);g.appendChild(k);h.appendChild(g);e.appendChild(h);this.container=e},CustomDialog=function(a,b,c,d,f,g){var k=document.createElement("div");k.appendChild(b);b=document.createElement("div");b.style.marginTop="16px";b.style.textAlign="right";var e=mxUtils.button(mxResources.get("cancel"),
function(){a.hideDialog();null!=d&&d()});e.className="geBtn";a.editor.cancelFirst&&b.appendChild(e);if(!a.isOffline()&&null!=g){var h=mxUtils.button(mxResources.get("help"),function(){window.open(g)});h.className="geBtn";b.appendChild(h)}f=mxUtils.button(f||mxResources.get("ok"),function(){a.hideDialog();null!=c&&c()});b.appendChild(f);f.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(e);k.appendChild(b);this.cancelBtn=e;this.okButton=f;this.container=k};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
IMAGE_PATH+"/delete.png";Editor.plusImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=":
@ -6115,85 +6115,85 @@ Editor.hiResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA
IMAGE_PATH+"/img-hi-res.png";Editor.loResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAS1BMVEVAQEAAAAA1NTVBQUFDQ0NDQ0NFRUVERERBQUFBQUFBQUFAQEBBQUFBQUFCQkJCQkJCQkJBQUFCQkJDQ0NDQ0NCQkJCQkJCQkJGRkb5/XqTAAAAGXRSTlP+AAWODlASCsesX+Lc2LyWe3pwa1tCPjohjSJfoAAAAI1JREFUWMPt1MkKhTAMRuG0anvneXr/J71nUypKcdqI/N8yhLMKMZE1CahnClDQzMPB44ED3EgeCubgDWnWQMHpwTtKwTe+UHD4sJ94wbUEHHFGhILlYDeSnsQeabeCgsPBgB0MOZZ9oGA5GJFiJSfUULAfjLjARrhCwX7wh2YCDwVbwZkUBKqFFJRN+wOcwSgR2sREcgAAAABJRU5ErkJggg==":
IMAGE_PATH+"/img-lo-res.png";Editor.defaultCustomLibraries=[];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node width. Possible value are px or auto. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value are px or auto. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -26\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n';
Editor.configure=function(a){if(null!=a){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;if(null!=a.css){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a.css));
var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c)}null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);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&&(b=document.createElement("style"),b.setAttribute("type","text/css"),b.appendChild(document.createTextNode(a.fontCss)),c=document.getElementsByTagName("script")[0],c.parentNode.insertBefore(b,c),Editor.prototype.fontCss=a.fontCss);if(null!=a.plugins)for(App.initPluginCallback(),
b=0;b<a.plugins.length;b++)mxscript(a.plugins[b])}};Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;"1"==urlParams.dev&&(Editor.prototype.editBlankUrl+="&dev=1",Editor.prototype.editBlankFallbackUrl+="&dev=1");var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(b){b=null!=b&&"mxlibrary"!=b.nodeName?this.extractGraphModel(b):null;if(null!=b){var c=b.getElementsByTagName("parsererror");if(null!=c&&0<c.length){var c=c[0],d=c.getElementsByTagName("div");
null!=d&&0<d.length&&(c=d[0]);throw{message:mxUtils.getTextContent(c)};}if("mxGraphModel"==b.nodeName){c=b.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=c&&""!=c)c!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[c]:mxUtils.load(STYLE_PATH+"/"+c+".xml").getDocumentElement(),null!=d&&(e=new mxCodec(d.ownerDocument),e.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 e=new mxCodec(d.ownerDocument);e.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=c;this.graph.mathEnabled="1"==urlParams.math||"1"==b.getAttribute("math");c=b.getAttribute("backgroundImage");null!=c?(c=JSON.parse(c),this.graph.setBackgroundImage(new mxImage(c.src,c.width,c.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==b.getAttribute("shadow"),!1)}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");return c};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 c=mxUtils.parseXml(b).documentElement;return"mxfile"==c.nodeName||"mxGraphModel"==c.nodeName}}catch(x){}return!1};Editor.prototype.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==
typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var e=0;e<c.length;e++)if("mxgraph"==c[e].getAttribute("class")){d.push(c[e]);break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=this.graph.decompress(c),0<c.length&&(d=mxUtils.parseXml(c),a=d.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&&
(c=this.graph.decompress(mxUtils.getTextContent(d)),null!=c&&0<c.length&&(a=mxUtils.parseXml(c).documentElement)));null==a||"mxGraphModel"==a.nodeName||b&&"mxfile"==a.nodeName||(a=null);return a};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?!0:this.originalNoForeignObject;c.apply(this,arguments)};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;
var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(b,e)}null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);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&&(b=document.createElement("style"),b.setAttribute("type","text/css"),b.appendChild(document.createTextNode(a.fontCss)),e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(b,e),Editor.prototype.fontCss=a.fontCss);if(null!=a.plugins)for(App.initPluginCallback(),
b=0;b<a.plugins.length;b++)mxscript(a.plugins[b])}};Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;"1"==urlParams.dev&&(Editor.prototype.editBlankUrl+="&dev=1",Editor.prototype.editBlankFallbackUrl+="&dev=1");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?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==b.getAttribute("shadow"),!1)}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 e=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&e.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&e.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));e.setAttribute("math",this.graph.mathEnabled?"1":"0");e.setAttribute("shadow",this.graph.shadowVisible?
"1":"0");return e};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(x){}return!1};Editor.prototype.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==
typeof pako){var e=a.ownerDocument.getElementsByTagName("div"),c=[];if(null!=e&&0<e.length)for(var d=0;d<e.length;d++)if("mxgraph"==e[d].getAttribute("class")){c.push(e[d]);break}0<c.length&&(e=c[0].getAttribute("data-mxgraph"),null!=e?(c=JSON.parse(e),null!=c&&null!=c.xml&&(c=mxUtils.parseXml(c.xml),a=c.documentElement)):(c=c[0].getElementsByTagName("div"),0<c.length&&(e=mxUtils.getTextContent(c[0]),e=this.graph.decompress(e),0<e.length&&(c=mxUtils.parseXml(e),a=c.documentElement))))}if(null!=a&&
"svg"==a.nodeName)if(e=a.getAttribute("content"),null!=e&&"<"!=e.charAt(0)&&"%"!=e.charAt(0)&&(e=unescape(window.atob?atob(e):Base64.decode(cont,e))),null!=e&&"%"==e.charAt(0)&&(e=decodeURIComponent(e)),null!=e&&0<e.length)a=mxUtils.parseXml(e).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==a||b||(c=null,"diagram"==a.nodeName?c=a:"mxfile"==a.nodeName&&(e=a.getElementsByTagName("diagram"),0<e.length&&(c=e[Math.max(0,Math.min(e.length-1,urlParams.page||0))])),null!=c&&
(e=this.graph.decompress(mxUtils.getTextContent(c)),null!=e&&0<e.length&&(a=mxUtils.parseXml(e).documentElement)));null==a||"mxGraphModel"==a.nodeName||b&&"mxfile"==a.nodeName||(a=null);return a};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?!0:this.originalNoForeignObject;c.apply(this,arguments)};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;
var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};Editor.initMath=function(a,b){a=null!=a?a:"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_HTMLorMML";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,
messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b||{jax:["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});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){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var d=document.getElementsByTagName("script");if(null!=d&&0<d.length){var e=
document.createElement("script");e.type="text/javascript";e.src=a;d[0].parentNode.appendChild(e)}};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,c,d,e){void 0!==c?b.push(c.replace(/\\'/g,"'")):void 0!==d?b.push(d.replace(/\\"/g,'"')):void 0!==e&&b.push(e);return""});/,\s*$/.test(a)&&b.push("");return b};if(window.ColorDialog){var f=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var g=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){g.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);
Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var e=Editor.prototype.init;Editor.prototype.init=function(){e.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var d=
document.createElement("script");d.type="text/javascript";d.src=a;c[0].parentNode.appendChild(d)}};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};if(window.ColorDialog){var f=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var g=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){g.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);
mxSettings.save()}}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 e=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed?e.apply(this,arguments):this.clear()};var h=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=h.apply(this,arguments);var b=this.editorUi;
if(b.editor.graph.isEnabled()){var c=b.getCurrentFile();null!=c&&c.isAutosaveOptional()&&(c=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},{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(c))}return a};StyleFormatPanel.prototype.defaultColorSchemes=[[null,{fill:"#f5f5f5",stroke:"#666666"},
if(b.editor.graph.isEnabled()){var e=b.getCurrentFile();null!=e&&e.isAutosaveOptional()&&(e=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},{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(e))}return a};StyleFormatPanel.prototype.defaultColorSchemes=[[null,{fill:"#f5f5f5",stroke:"#666666"},
{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[null,{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"}],[null,{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"}]];var l=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){"image"!=this.format.createSelectionState().style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));
l.apply(this,arguments)};var m=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 m.apply(this,arguments)};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function b(a){var b=mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var e=d.getModel().getStyle(c[b]),
l=0;l<h.length;l++)e=mxUtils.removeStylename(e,h[l]);null!=a?(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,a.fill),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,a.stroke),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,a.gradient)):(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,"#000000"),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,null));d.getModel().setStyle(c[b],e)}}finally{d.getModel().endUpdate()}});b.style.width=
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 m.apply(this,arguments)};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function b(a){var b=mxUtils.button("",function(b){c.getModel().beginUpdate();try{var e=c.getSelectionCells();for(b=0;b<e.length;b++){for(var d=c.getModel().getStyle(e[b]),
l=0;l<h.length;l++)d=mxUtils.removeStylename(d,h[l]);null!=a?(d=mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,a.fill),d=mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,a.stroke),d=mxUtils.setStyle(d,mxConstants.STYLE_GRADIENTCOLOR,a.gradient)):(d=mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,"#ffffff"),d=mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,"#000000"),d=mxUtils.setStyle(d,mxConstants.STYLE_GRADIENTCOLOR,null));c.getModel().setStyle(e[b],d)}}finally{c.getModel().endUpdate()}});b.style.width=
"36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";null!=a?(null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||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%)":b.style.backgroundColor=a.fill,b.style.border="1px solid "+a.stroke):(b.style.backgroundColor="#ffffff",b.style.border="1px solid #000000");
e.appendChild(b)}e.innerHTML="";for(var c=0;c<a.length;c++)0<c&&0==mxUtils.mod(c,4)&&mxUtils.br(e),b(a[c])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,e=document.createElement("div");e.style.whiteSpace="normal";e.style.paddingLeft="24px";e.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(e);
d.appendChild(b)}d.innerHTML="";for(var e=0;e<a.length;e++)0<e&&0==mxUtils.mod(e,4)&&mxUtils.br(d),b(a[e])}function e(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var c=this.editorUi.editor.graph,d=document.createElement("div");d.style.whiteSpace="normal";d.style.paddingLeft="24px";d.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(d);
var h="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(" ");null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var l=document.createElement("div");l.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;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(l,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));var f=document.createElement("div");f.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;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(l),a.appendChild(f));mxEvent.addListener(f,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));c(l);c(f);b(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&
(c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var d=this.editorUi.editor.graph,e=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=e&&null!=e.shape&&null!=e.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==c?b.style.width="202px":(c.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==c?b.style.width="202px":
(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b));return a}}Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.edgeMode="move"!=urlParams.edge;var n=Graph.prototype.init;Graph.prototype.init=function(){function a(a){b=a;if(mxClient.IS_QUIRKS||
7==document.documentMode||8==document.documentMode)b=mxUtils.clone(a)}n.apply(this,arguments);var b=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=
function(a){var b=this.graph.view.getState(a),b=null!=b?b.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==b.childLayout){var c=new mxStackLayout(this.graph,!1);c.setChildGeometry=function(a,b){b.height=Math.max(b.height,20);if(1<b.height/20){var c=b.height%20;b.height+=10<c?20-c:-c}this.graph.getModel().setGeometry(a,b)};c.fill=!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=
b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};var p=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){p.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.isPageLink=function(a){return null!=a&&"data:page/"==a.substring(0,10)};Graph.prototype.addSvgShadow=function(a,b,c){c=null!=c?c:!1;var d=a.ownerDocument,e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");e.setAttribute("id",
this.shadowId);var h=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");h.setAttribute("in","SourceAlpha");h.setAttribute("stdDeviation","1.7");h.setAttribute("result","blur");e.appendChild(h);h=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");h.setAttribute("in","blur");h.setAttribute("dx","3");h.setAttribute("dy","3");h.setAttribute("result","offsetBlur");e.appendChild(h);h=null!=d.createElementNS?
d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");h.setAttribute("flood-color","#3D4574");h.setAttribute("flood-opacity","0.4");h.setAttribute("result","offsetColor");e.appendChild(h);h=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feComposite"):d.createElement("feComposite");h.setAttribute("in","offsetColor");h.setAttribute("in2","offsetBlur");h.setAttribute("operator","in");h.setAttribute("result","offsetBlur");e.appendChild(h);h=null!=d.createElementNS?
d.createElementNS(mxConstants.NS_SVG,"feBlend"):d.createElement("feBlend");h.setAttribute("in","SourceGraphic");h.setAttribute("in2","offsetBlur");e.appendChild(h);h=a.getElementsByTagName("defs");0==h.length?(d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(d,a.firstChild):a.appendChild(d)):d=h[0];d.appendChild(e);c||((b||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||
(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return e};Graph.prototype.setShadowVisible=function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=
this.model.getChildCount(this.model.root),b,c=0;do b=this.model.getChildAt(this.model.root,c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked","0"));null!=b&&this.setDefaultParent(b)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];
1<this.defaultColorSchemes.length&&(a.appendChild(l),a.appendChild(f));mxEvent.addListener(f,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));e(l);e(f);b(this.defaultColorSchemes[this.editorUi.currentScheme]);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="2px"),a.appendChild(b));return a}}Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.edgeMode="move"!=urlParams.edge;var n=Graph.prototype.init;Graph.prototype.init=function(){function a(a){b=a;if(mxClient.IS_QUIRKS||
7==document.documentMode||8==document.documentMode)b=mxUtils.clone(a)}n.apply(this,arguments);var b=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var e=this.getInsertPoint;this.getInsertPoint=function(){return null!=b?this.getPointForEvent(b):e.apply(this,arguments)};var c=this.layoutManager.getLayout;this.layoutManager.getLayout=
function(a){var b=this.graph.view.getState(a),b=null!=b?b.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==b.childLayout){var e=new mxStackLayout(this.graph,!1);e.setChildGeometry=function(a,b){b.height=Math.max(b.height,20);if(1<b.height/20){var e=b.height%20;b.height+=10<e?20-e:-e}this.graph.getModel().setGeometry(a,b)};e.fill=!0;e.unitSize=mxRackContainer.unitSize|20;e.marginLeft=b.marginLeft||0;e.marginRight=b.marginRight||0;e.marginTop=b.marginTop||0;e.marginBottom=
b.marginBottom||0;e.resizeParent=!1;return e}return c.apply(this,arguments)}};var p=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){p.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.isPageLink=function(a){return null!=a&&"data:page/"==a.substring(0,10)};Graph.prototype.addSvgShadow=function(a,b,e){e=null!=e?e:!1;var c=a.ownerDocument,d=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"filter"):c.createElement("filter");d.setAttribute("id",
this.shadowId);var h=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):c.createElement("feGaussianBlur");h.setAttribute("in","SourceAlpha");h.setAttribute("stdDeviation","1.7");h.setAttribute("result","blur");d.appendChild(h);h=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feOffset"):c.createElement("feOffset");h.setAttribute("in","blur");h.setAttribute("dx","3");h.setAttribute("dy","3");h.setAttribute("result","offsetBlur");d.appendChild(h);h=null!=c.createElementNS?
c.createElementNS(mxConstants.NS_SVG,"feFlood"):c.createElement("feFlood");h.setAttribute("flood-color","#3D4574");h.setAttribute("flood-opacity","0.4");h.setAttribute("result","offsetColor");d.appendChild(h);h=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feComposite"):c.createElement("feComposite");h.setAttribute("in","offsetColor");h.setAttribute("in2","offsetBlur");h.setAttribute("operator","in");h.setAttribute("result","offsetBlur");d.appendChild(h);h=null!=c.createElementNS?
c.createElementNS(mxConstants.NS_SVG,"feBlend"):c.createElement("feBlend");h.setAttribute("in","SourceGraphic");h.setAttribute("in2","offsetBlur");d.appendChild(h);h=a.getElementsByTagName("defs");0==h.length?(c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"defs"):c.createElement("defs"),null!=a.firstChild?a.insertBefore(c,a.firstChild):a.appendChild(c)):c=h[0];c.appendChild(d);e||((b||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||
(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return d};Graph.prototype.setShadowVisible=function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=
this.model.getChildCount(this.model.root),b,e=0;do b=this.model.getChildAt(this.model.root,e);while(e++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked","0"));null!=b&&this.setDefaultParent(b)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];
mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=
[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=
[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=
[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",
STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];
mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};
var t=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,e,h,l,f,g,m){if(null!=c&&null==mxMarker.markers[c]){var n=this.getPackageForType(c);null!=n&&mxStencilRegistry.getStencil(n)}return t.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function c(){p.value=Math.max(1,Math.min(f,Math.max(parseInt(p.value),parseInt(k.value))));k.value=Math.max(1,Math.min(f,Math.min(parseInt(p.value),parseInt(k.value))))}function d(b){function c(b,c,e){var h=b.getGraphBounds(),l=0,f=0,
m=V.get(),g=1/b.pageScale,n=K.checked;if(n)var g=parseInt(O.value),w=parseInt(R.value),g=Math.min(m.height*w/(h.height/b.view.scale),m.width*g/(h.width/b.view.scale));else g=parseInt(H.value)/(100*b.pageScale),isNaN(g)&&(d=1/b.pageScale,H.value="100 %");m=mxRectangle.fromRectangle(m);m.width=Math.ceil(m.width*d);m.height=Math.ceil(m.height*d);g*=d;!n&&b.pageVisible?(h=b.getPageLayout(),l-=h.x*m.width,f-=h.y*m.height):n=!0;if(null==c){c=PrintDialog.createPrintPreview(b,g,m,0,l,f,n);c.pageSelector=
!1;c.mathEnabled=!1;b=a.getCurrentFile();null!=b&&(c.title=b.getTitle());var k=c.writeHead;c.writeHead=function(b){k.apply(this,arguments);null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"))};if("undefined"!==typeof MathJax){var u=c.renderPage;c.renderPage=function(a,b,c,d,e,h){var l=u.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:l.className="geDisableMathJax";return l}}c.open(null,null,e,!0)}else{m=b.background;if(null==
m||""==m||m==mxConstants.NONE)m="#ffffff";c.backgroundColor=m;c.autoOrigin=n;c.appendGraph(b,g,l,f,e,!0)}return c}var d=parseInt(S.value)/100;isNaN(d)&&(d=1,S.value="100 %");var d=.75*d,h=k.value,l=p.value,f=!n.checked,m=null;f&&(f=h==g&&l==g);if(!f&&null!=a.pages&&a.pages.length){var w=0,f=a.pages.length-1;n.checked||(w=parseInt(h)-1,f=parseInt(l)-1);for(var u=w;u<=f;u++){var t=a.pages[u],h=t==a.currentPage?e:null;if(null==h){var h=a.createTemporaryGraph(e.getStylesheet()),l=!0,w=!1,q=null,x=null;
var t=mxMarker.createMarker;mxMarker.createMarker=function(a,b,e,c,d,h,l,f,g,m){if(null!=e&&null==mxMarker.markers[e]){var n=this.getPackageForType(e);null!=n&&mxStencilRegistry.getStencil(n)}return t.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function e(){p.value=Math.max(1,Math.min(f,Math.max(parseInt(p.value),parseInt(k.value))));k.value=Math.max(1,Math.min(f,Math.min(parseInt(p.value),parseInt(k.value))))}function c(b){function e(b,e,d){var h=b.getGraphBounds(),l=0,f=0,
m=V.get(),g=1/b.pageScale,n=K.checked;if(n)var g=parseInt(O.value),w=parseInt(R.value),g=Math.min(m.height*w/(h.height/b.view.scale),m.width*g/(h.width/b.view.scale));else g=parseInt(H.value)/(100*b.pageScale),isNaN(g)&&(c=1/b.pageScale,H.value="100 %");m=mxRectangle.fromRectangle(m);m.width=Math.ceil(m.width*c);m.height=Math.ceil(m.height*c);g*=c;!n&&b.pageVisible?(h=b.getPageLayout(),l-=h.x*m.width,f-=h.y*m.height):n=!0;if(null==e){e=PrintDialog.createPrintPreview(b,g,m,0,l,f,n);e.pageSelector=
!1;e.mathEnabled=!1;b=a.getCurrentFile();null!=b&&(e.title=b.getTitle());var u=e.writeHead;e.writeHead=function(b){u.apply(this,arguments);null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"))};if("undefined"!==typeof MathJax){var k=e.renderPage;e.renderPage=function(a,b,e,c,d,h){var l=k.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:l.className="geDisableMathJax";return l}}e.open(null,null,d,!0)}else{m=b.background;if(null==
m||""==m||m==mxConstants.NONE)m="#ffffff";e.backgroundColor=m;e.autoOrigin=n;e.appendGraph(b,g,l,f,d,!0)}return e}var c=parseInt(S.value)/100;isNaN(c)&&(c=1,S.value="100 %");var c=.75*c,h=k.value,l=p.value,f=!n.checked,m=null;f&&(f=h==g&&l==g);if(!f&&null!=a.pages&&a.pages.length){var w=0,f=a.pages.length-1;n.checked||(w=parseInt(h)-1,f=parseInt(l)-1);for(var u=w;u<=f;u++){var t=a.pages[u],h=t==a.currentPage?d:null;if(null==h){var h=a.createTemporaryGraph(d.getStylesheet()),l=!0,w=!1,q=null,x=null;
null==t.viewState&&null==t.mapping&&null==t.root&&a.updatePageRoot(t);null!=t.viewState?(l=t.viewState.pageVisible,w=t.viewState.mathEnabled,q=t.viewState.background,x=t.viewState.backgroundImage):null!=t.mapping&&null!=t.mapping.diagramMap&&(w="0"!=t.mapping.diagramMap.get("mathEnabled"),q=t.mapping.diagramMap.get("background"),x=t.mapping.diagramMap.get("backgroundImage"),x=null!=x&&0<x.length?JSON.parse(x):null);h.background=q;h.backgroundImage=null!=x?new mxImage(x.src,x.width,x.height):null;
h.pageVisible=l;h.mathEnabled=w;var v=h.getGlobalVariable;h.getGlobalVariable=function(a){return"page"==a?t.getName():"pagenumber"==a?u+1:v.apply(this,arguments)};document.body.appendChild(h.container);a.updatePageRoot(t);h.model.setRoot(t.root)}m=c(h,m,u!=f);h!=e&&h.container.parentNode.removeChild(h.container)}}else m=c(e);m.mathEnabled&&(f=m.wnd.document,f.writeln('<script type="text/x-mathjax-config">'),f.writeln("MathJax.Hub.Config({"),f.writeln('messageStyle: "none",'),f.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),
h.pageVisible=l;h.mathEnabled=w;var v=h.getGlobalVariable;h.getGlobalVariable=function(a){return"page"==a?t.getName():"pagenumber"==a?u+1:v.apply(this,arguments)};document.body.appendChild(h.container);a.updatePageRoot(t);h.model.setRoot(t.root)}m=e(h,m,u!=f);h!=d&&h.container.parentNode.removeChild(h.container)}}else m=e(d);m.mathEnabled&&(f=m.wnd.document,f.writeln('<script type="text/x-mathjax-config">'),f.writeln("MathJax.Hub.Config({"),f.writeln('messageStyle: "none",'),f.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),
f.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),f.writeln("TeX: {"),f.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),f.writeln("},"),f.writeln("tex2jax: {"),f.writeln('\tignoreClass: "geDisableMathJax"'),f.writeln("},"),f.writeln("asciimath2jax: {"),f.writeln('\tignoreClass: "geDisableMathJax"'),f.writeln("}"),f.writeln("});"),b&&(f.writeln("MathJax.Hub.Queue(function () {"),f.writeln("window.print();"),f.writeln("});")),f.writeln("\x3c/script>"),
f.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));m.closeDocument();!m.mathEnabled&&b&&PrintDialog.printPreview(m)}var e=a.editor.graph,h=document.createElement("div"),l=document.createElement("h3");l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,b||mxResources.get("print"));h.appendChild(l);var f=1,g=1,m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";
f.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));m.closeDocument();!m.mathEnabled&&b&&PrintDialog.printPreview(m)}var d=a.editor.graph,h=document.createElement("div"),l=document.createElement("h3");l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,b||mxResources.get("print"));h.appendChild(l);var f=1,g=1,m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";
var n=document.createElement("input");n.style.cssText="margin-right:8px;margin-bottom:8px;";n.setAttribute("value","all");n.setAttribute("type","radio");n.setAttribute("name","pages-printdialog");m.appendChild(n);l=document.createElement("span");mxUtils.write(l,mxResources.get("printAllPages"));m.appendChild(l);mxUtils.br(m);var w=n.cloneNode(!0);n.setAttribute("checked","checked");w.setAttribute("value","range");m.appendChild(w);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+
":");m.appendChild(l);var k=document.createElement("input");k.style.cssText="margin:0 8px 0 8px;";k.setAttribute("value","1");k.setAttribute("type","number");k.setAttribute("min","1");k.style.width="50px";m.appendChild(k);l=document.createElement("span");mxUtils.write(l,mxResources.get("to"));m.appendChild(l);var p=k.cloneNode(!0);m.appendChild(p);mxEvent.addListener(k,"focus",function(){w.checked=!0});mxEvent.addListener(p,"focus",function(){w.checked=!0});mxEvent.addListener(k,"change",c);mxEvent.addListener(p,
"change",c);if(null!=a.pages&&(f=a.pages.length,null!=a.currentPage))for(l=0;l<a.pages.length;l++)if(a.currentPage==a.pages[l]){g=l+1;k.value=g;p.value=g;break}k.setAttribute("max",f);p.setAttribute("max",f);1<f&&h.appendChild(m);var t=document.createElement("div");t.style.marginBottom="10px";var q=document.createElement("input");q.style.marginRight="8px";q.setAttribute("value","adjust");q.setAttribute("type","radio");q.setAttribute("name","printZoom");t.appendChild(q);l=document.createElement("span");
":");m.appendChild(l);var k=document.createElement("input");k.style.cssText="margin:0 8px 0 8px;";k.setAttribute("value","1");k.setAttribute("type","number");k.setAttribute("min","1");k.style.width="50px";m.appendChild(k);l=document.createElement("span");mxUtils.write(l,mxResources.get("to"));m.appendChild(l);var p=k.cloneNode(!0);m.appendChild(p);mxEvent.addListener(k,"focus",function(){w.checked=!0});mxEvent.addListener(p,"focus",function(){w.checked=!0});mxEvent.addListener(k,"change",e);mxEvent.addListener(p,
"change",e);if(null!=a.pages&&(f=a.pages.length,null!=a.currentPage))for(l=0;l<a.pages.length;l++)if(a.currentPage==a.pages[l]){g=l+1;k.value=g;p.value=g;break}k.setAttribute("max",f);p.setAttribute("max",f);1<f&&h.appendChild(m);var t=document.createElement("div");t.style.marginBottom="10px";var q=document.createElement("input");q.style.marginRight="8px";q.setAttribute("value","adjust");q.setAttribute("type","radio");q.setAttribute("name","printZoom");t.appendChild(q);l=document.createElement("span");
mxUtils.write(l,mxResources.get("adjustTo"));t.appendChild(l);var H=document.createElement("input");H.style.cssText="margin:0 8px 0 8px;";H.setAttribute("value","100 %");H.style.width="50px";t.appendChild(H);mxEvent.addListener(H,"focus",function(){q.checked=!0});h.appendChild(t);var m=m.cloneNode(!1),K=q.cloneNode(!0);K.setAttribute("value","fit");q.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";
l.appendChild(K);m.appendChild(l);t=document.createElement("table");t.style.display="inline-block";var T=document.createElement("tbody"),L=document.createElement("tr"),N=L.cloneNode(!0),Q=document.createElement("td"),J=Q.cloneNode(!0),W=Q.cloneNode(!0),P=Q.cloneNode(!0),Y=Q.cloneNode(!0),U=Q.cloneNode(!0);Q.style.textAlign="right";P.style.textAlign="right";mxUtils.write(Q,mxResources.get("fitTo"));var O=document.createElement("input");O.style.cssText="margin:0 8px 0 8px;";O.setAttribute("value","1");
O.setAttribute("min","1");O.setAttribute("type","number");O.style.width="40px";J.appendChild(O);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));W.appendChild(l);mxUtils.write(P,mxResources.get("fitToBy"));var R=O.cloneNode(!0);Y.appendChild(R);mxEvent.addListener(O,"focus",function(){K.checked=!0});mxEvent.addListener(R,"focus",function(){K.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));U.appendChild(l);L.appendChild(Q);
L.appendChild(J);L.appendChild(W);N.appendChild(P);N.appendChild(Y);N.appendChild(U);T.appendChild(L);T.appendChild(N);t.appendChild(T);m.appendChild(t);h.appendChild(m);m=document.createElement("div");l=document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));m.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var V=PageSetupDialog.addPageFormatPanel(l,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);
m.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));m.appendChild(l);var S=document.createElement("input");S.style.cssText="margin:0 8px 0 8px;";S.setAttribute("value","100 %");S.style.width="60px";m.appendChild(S);h.appendChild(m);l=document.createElement("div");l.style.cssText="text-align:right;margin:62px 0 0 0;";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&l.appendChild(m);a.isOffline()||
(t=mxUtils.button(mxResources.get("help"),function(){window.open("https://desk.draw.io/support/solutions/articles/16000048947")}),t.className="geBtn",l.appendChild(t));PrintDialog.previewEnabled&&(t=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),t.className="geBtn",l.appendChild(t));t=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});t.className="geBtn gePrimaryBtn";l.appendChild(t);a.editor.cancelFirst||l.appendChild(m);
h.appendChild(l);this.container=h}})();(function(){EditorUi.VERSION="7.0.7";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=
(t=mxUtils.button(mxResources.get("help"),function(){window.open("https://desk.draw.io/support/solutions/articles/16000048947")}),t.className="geBtn",l.appendChild(t));PrintDialog.previewEnabled&&(t=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)}),t.className="geBtn",l.appendChild(t));t=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});t.className="geBtn gePrimaryBtn";l.appendChild(t);a.editor.cancelFirst||l.appendChild(m);
h.appendChild(l);this.container=h}})();(function(){EditorUi.VERSION="7.0.8";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=
36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=
1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=
null!=c&&6<c.length}catch(n){}};b.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){}try{a=document.createElement("canvas");a.width=a.height=1;var c=a.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==c.match("image/jpeg")}catch(m){}})();
1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,0,0);var e=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=
null!=e&&6<e.length}catch(n){}};b.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){}try{a=document.createElement("canvas");a.width=a.height=1;var c=a.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==c.match("image/jpeg")}catch(m){}})();
EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};
EditorUi.prototype.movePickersToTop=function(){for(var a=document.getElementsByTagName("div"),b=0;b<a.length;b++)"picker modal-dialog picker-dialog"==a[b].className&&(a[b].style.zIndex=mxPopupMenu.prototype.zIndex+1)};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=new Spinner({lines:12,length:c,
width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=d.spin;d.spin=function(c,h){var l=!1;this.active||(e.call(this,c),this.active=!0,null!=h&&(l=document.createElement("div"),l.style.position="absolute",l.style.whiteSpace="nowrap",l.style.background="#4B4243",l.style.color="white",l.style.fontFamily="Helvetica, Arial",l.style.fontSize="9pt",l.style.padding="6px",l.style.paddingLeft="10px",l.style.paddingRight="10px",l.style.zIndex=
2E9,l.style.left=Math.max(0,a)+"px",l.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(l.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(l.style,"boxShadow","2px 2px 3px 0px #ddd"),mxUtils.setPrefixedStyle(l.style,"transform","translate(-50%,-50%)"),l.innerHTML=h+"...",c.appendChild(l),d.status=l,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(l.style.left=Math.round(Math.max(0,a-l.offsetWidth/2))+"px",l.style.top=Math.round(Math.max(0,b+70-l.offsetHeight/2))+
"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,h)}));this.stop();return a}),l=!0);return l};var h=d.stop;d.stop=function(){h.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};d.pause=function(){return function(){}};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=h;h+=b;return a.substring(c,h)}function e(a){a=d(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<
8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var h=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=e(a);var l=d(a,4);if(null!=b&&b(h-8,l,c))break;value=d(a,c);d(a,4);if("IEND"==l)break}while(c)}};EditorUi.prototype.isCompatibleString=function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement,!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(m){}return!1};
var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=a.apply(this,arguments);if(null==c)try{var d=b.indexOf("&lt;mxfile ");if(0<=d){var e=b.lastIndexOf("&lt;/mxfile&gt;");e>d&&(c=b.substring(d,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(b),g=this.editor.extractGraphModel(f.documentElement,null!=this.pages),c=null!=g?mxUtils.getXml(g):""}catch(t){}return c};EditorUi.prototype.validateFileData=
function(a){if(null!=a&&0<a.length){var b=a.indexOf('<meta charset="utf-8">');0<=b&&(a=a.slice(0,b)+'<meta charset="utf-8"/>'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;b.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");
if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var f=this.updatePageRoot(new DiagramPage(d[e]));null==f.getName()&&f.setName(mxResources.get("pageWithNumber",[e+1]));b.model.execute(new ChangePage(this,f,0==e?f:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),
this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(e=0;e<c.length;e++)b.model.execute(new ChangePage(this,c[e],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,f,g,k,q,w,u){b=null!=b?b:this.editor.graph;f=null!=f?f:!1;w=null!=w?w:!0;var e,h=null;null==c||
EditorUi.prototype.movePickersToTop=function(){for(var a=document.getElementsByTagName("div"),b=0;b<a.length;b++)"picker modal-dialog picker-dialog"==a[b].className&&(a[b].style.zIndex=mxPopupMenu.prototype.zIndex+1)};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var e=new Spinner({lines:12,length:c,
width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),d=e.spin;e.spin=function(c,h){var l=!1;this.active||(d.call(this,c),this.active=!0,null!=h&&(l=document.createElement("div"),l.style.position="absolute",l.style.whiteSpace="nowrap",l.style.background="#4B4243",l.style.color="white",l.style.fontFamily="Helvetica, Arial",l.style.fontSize="9pt",l.style.padding="6px",l.style.paddingLeft="10px",l.style.paddingRight="10px",l.style.zIndex=
2E9,l.style.left=Math.max(0,a)+"px",l.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(l.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(l.style,"boxShadow","2px 2px 3px 0px #ddd"),mxUtils.setPrefixedStyle(l.style,"transform","translate(-50%,-50%)"),l.innerHTML=h+"...",c.appendChild(l),e.status=l,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(l.style.left=Math.round(Math.max(0,a-l.offsetWidth/2))+"px",l.style.top=Math.round(Math.max(0,b+70-l.offsetHeight/2))+
"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,h)}));this.stop();return a}),l=!0);return l};var h=e.stop;e.stop=function(){h.call(this);this.active=!1;null!=e.status&&(e.status.parentNode.removeChild(e.status),e.status=null)};e.pause=function(){return function(){}};return e};EditorUi.parsePng=function(a,b,c){function e(a,b){var e=h;h+=b;return a.substring(e,h)}function d(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<
8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var h=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(e(a,4),"IHDR"!=e(a,4))null!=c&&c();else{e(a,17);do{c=d(a);var l=e(a,4);if(null!=b&&b(h-8,l,c))break;value=e(a,c);e(a,4);if("IEND"==l)break}while(c)}};EditorUi.prototype.isCompatibleString=function(a){try{var b=mxUtils.parseXml(a),e=this.editor.extractGraphModel(b.documentElement,!0);return null!=e&&0==e.getElementsByTagName("parsererror").length}catch(m){}return!1};
var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var e=a.apply(this,arguments);if(null==e)try{var c=b.indexOf("&lt;mxfile ");if(0<=c){var d=b.lastIndexOf("&lt;/mxfile&gt;");d>c&&(e=b.substring(c,d+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(b),g=this.editor.extractGraphModel(f.documentElement,null!=this.pages),e=null!=g?mxUtils.getXml(g):""}catch(t){}return e};EditorUi.prototype.validateFileData=
function(a){if(null!=a&&0<a.length){var b=a.indexOf('<meta charset="utf-8">');0<=b&&(a=a.slice(0,b)+'<meta charset="utf-8"/>'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;b.model.beginUpdate();try{var e=null!=this.pages?this.pages.slice():null,c=a.getElementsByTagName("diagram");
if("0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var d=c.length-1;0<=d;d--){var f=this.updatePageRoot(new DiagramPage(c[d]));null==f.getName()&&f.setName(mxResources.get("pageWithNumber",[d+1]));b.model.execute(new ChangePage(this,f,0==d?f:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),
this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=e)for(d=0;d<e.length;d++)b.model.execute(new ChangePage(this,e[d],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,f,g,k,q,w,u){b=null!=b?b:this.editor.graph;f=null!=f?f:!1;w=null!=w?w:!0;var e,h=null;null==c||
c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?e="_blank":h=e=d;if(null==a)return"";var l=a;if("mxfile"!=l.nodeName.toLowerCase()){var m=b.zapGremlins(mxUtils.getXml(a)),l=b.compress(m);if(b.decompress(l)!=m)return m;m=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(m,l);l=a.ownerDocument.createElement("mxfile");l.appendChild(m)}u?(l=l.cloneNode(!0),l.removeAttribute("userAgent"),l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("type")):(l.setAttribute("userAgent",
navigator.userAgent),l.setAttribute("version",EditorUi.VERSION),l.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&l.setAttribute("type",a));a=mxUtils.getXml(l);if(!g&&!f&&(k||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(l),b,null!=c?c.getTitle():null,e,h);else if(g||!f&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(d=null),a=this.getEmbeddedSvg(a,b,d,null,q,w,h);return a};EditorUi.prototype.getXmlFileData=
function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.appendChild(this.currentPage.node);else for(var e=0;e<this.pages.length;e++){var h=this.pages[e].mapping;this.currentPage!=this.pages[e]&&null!=h&&h.needsUpdate&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(h.graphModel),
h.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[e].node,d),h.needsUpdate=!1);c.appendChild(this.pages[e].node)}}return c};EditorUi.prototype.getFileData=function(a,b,c,d,f,g,k,q){f=null!=f?f:!0;k=null!=k?k:this.getXmlFileData(f,null!=g?g:!1);g=this.editor.graph;var e=this.getCurrentFile();if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=e&&/(\.svg)$/i.test(e.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());
function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var e=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,e);c=this.fileNode.cloneNode(!1);if(b)c.appendChild(this.currentPage.node);else for(var d=0;d<this.pages.length;d++){var h=this.pages[d].mapping;this.currentPage!=this.pages[d]&&null!=h&&h.needsUpdate&&(e=(new mxCodec(mxUtils.createXmlDocument())).encode(h.graphModel),
h.writeRealtimeToNode(e),e=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(e))),mxUtils.setTextContent(this.pages[d].node,e),h.needsUpdate=!1);c.appendChild(this.pages[d].node)}}return c};EditorUi.prototype.getFileData=function(a,b,c,d,f,g,k,q){f=null!=f?f:!0;k=null!=k?k:this.getXmlFileData(f,null!=g?g:!1);g=this.editor.graph;var e=this.getCurrentFile();if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=e&&/(\.svg)$/i.test(e.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());
var h=g.getGlobalVariable,l=this.pages[0];g.getGlobalVariable=function(a){return"page"==a?l.getName():"pagenumber"==a?1:h.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(l.root)}a=this.createFileData(k,g,e,window.location.href,a,b,c,d,f,q);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return a};EditorUi.prototype.getHtml=function(a,b,c,d,f,g){g=null!=g?g:!0;var e=null,h="https://www.draw.io/js/embed-static.min.js";if(null!=b){var e=g?b.getGraphBounds():
b.getBoundingBox(b.getSelectionCells()),l=b.view.scale;g=Math.floor(e.x/l-b.view.translate.x);l=Math.floor(e.y/l-b.view.translate.y);e=b.background;null==f&&(b=this.getBasenames().join(";"),0<b.length&&(h="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",g);a.setAttribute("y0",l)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=d&&a.setAttribute("edit",d));null!=
f&&(f=f.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==f?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=f?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==f?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=f?
@ -6208,11 +6208,11 @@ else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get(
this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var k=this.editor.graph.background;k==mxConstants.NONE&&(k=null);var p=this.editor.graph.getSvg(k,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(p);this.convertImages(p,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();n('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+
mxUtils.getXml(a))})))}else h=e+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();n(a)}),d)}}catch(C){this.handleError(C)}};EditorUi.prototype.createDownloadRequest=function(a,b,c,d){var e=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var h="";if(e.width*e.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};e="0";if("xmlpng"==b&&(e="1",b="png",null!=this.pages&&null!=this.currentPage))for(var l=
0;l<this.pages.length;l++)if(this.pages[l]==this.currentPage){h="&from="+l;break}return new mxXmlRequest(EXPORT_URL,"format="+b+h+"&base64="+d+"&embedXml="+e+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.fileLoaded=function(a){var b=!1;this.hideDialog();var c=this.getCurrentFile();this.setCurrentFile(null);null!=c&&(c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();
this.editor.undoManager.clear();var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);
this.editor.undoManager.clear();var e=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);
a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);this.descriptorChanged();a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("readOnly"))));this.editor.chromeless?this.editor.graph.lightbox&&this.lightboxFit():(this.editor.graph.selectUnlockedLayer(),
this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus());this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));b=!0;if(this.enableLogging&&!this.isOffline()&&null!=a.getMode())try{var e=new Image,f=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";e.src=f+"/log?msg=storageMode:"+encodeURIComponent(a.getMode())+"&v="+encodeURIComponent(EditorUi.VERSION)}catch(t){}if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&
null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(t){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(t){}}catch(t){null!=window.console&&console.log("error in fileLoaded:",a,t);if(this.enableLogging&&!this.isOffline())try{e=new Image,f=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"",e.src=f+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=
t&&null!=t.message?":err:"+encodeURIComponent(t.message):"")+(null!=t&&null!=t.stack?"&stack="+encodeURIComponent(t.stack):"")}catch(q){}this.handleError(t,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return b};EditorUi.prototype.restoreLibraries=function(){};
this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus());this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));b=!0;if(this.enableLogging&&!this.isOffline()&&null!=a.getMode())try{var d=new Image,f=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";d.src=f+"/log?msg=storageMode:"+encodeURIComponent(a.getMode())+"&v="+encodeURIComponent(EditorUi.VERSION)}catch(t){}if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&
null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(t){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(t){}}catch(t){null!=window.console&&console.log("error in fileLoaded:",a,t);if(this.enableLogging&&!this.isOffline())try{d=new Image,f=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"",d.src=f+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=
t&&null!=t.message?":err:"+encodeURIComponent(t.message):"")+(null!=t&&null!=t.stack?"&stack="+encodeURIComponent(t.stack):"")}catch(q){}this.handleError(t,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):e()}))}else e();return b};EditorUi.prototype.restoreLibraries=function(){};
EditorUi.prototype.saveLibrary=function(a,b,c,d,f,g,k){};EditorUi.prototype.toggleScratchpad=function(){if(isLocalStorage||mxClient.IS_CHROMEAPP)null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad)};EditorUi.prototype.createLibraryDataFromImages=function(a){var b=mxUtils.createXmlDocument(),c=b.createElement("mxlibrary");mxUtils.setTextContent(c,
JSON.stringify(a));b.appendChild(c);return mxUtils.getXml(b)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var b=this.sidebar.palettes[a];if(null!=b){for(var c=0;c<b.length;c++)b[c].parentNode.removeChild(b[c]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=
function(a){var b=this.sidebar.container;if(null==a){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(a=c[c.length-1].nextSibling)}a=null!=a?a:b.firstChild.nextSibling.nextSibling;var c=b.lastChild,d=c.previousSibling;b.insertBefore(c,a);b.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElement.nodeName){var c=JSON.parse(mxUtils.getTextContent(b.documentElement));this.libraryLoaded(a,
@ -6299,15 +6299,15 @@ q,w){w=null!=w?w:"png";if(this.spinner.spin(document.body,mxResources.get("expor
this.handleError(a)}),null,c,a||1,b,d,null,null,g,k)}catch(x){this.spinner.stop(),this.handleError(x)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var b=this.editor.fontCss.split("url("),c=0,d={},e=mxUtils.bind(this,function(){if(0==c){for(var e=[b[0]],h=1;h<b.length;h++){var f=b[h].indexOf(")");e.push("url(");e.push(d[b[h].substring(0,f)]);e.push(b[h].substring(f))}this.editor.resolvedFontCss=e.join("");a()}});if(0<b.length)for(var f=
1;f<b.length;f++){var g=b[f].indexOf(")");mxUtils.bind(this,function(a){if(null==d[a]){d[a]=a;c++;var b="application/x-font-ttf";/(\.svg)($|\?)/i.test(a)?b="image/svg+xml":/(\.otf)($|\?)/i.test(a)?b="application/x-font-opentype":/(\.woff)($|\?)/i.test(a)?b="application/font-woff":/(\.woff2)($|\?)/i.test(a)?b="application/font-woff2":/(\.eot)($|\?)/i.test(a)?b="application/vnd.ms-fontobject":/(\.sfnt)($|\?)/i.test(a)&&(b="application/font-sfnt");var h=a;/^https?:\/\//.test(h)&&!this.isCorsEnabledForUrl(h)&&
(h=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(h,mxUtils.bind(this,function(b){d[a]=b;c--;e()}),mxUtils.bind(this,function(a){c--;e()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b[f].substring(0,g))}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,d,f,g,k,q,w,u,x,v,z,C){g=null!=g?g:!0;v=null!=v?v:this.editor.graph;z=null!=z?z:0;var e=w?null:v.background;e==mxConstants.NONE&&(e=null);null==e&&(e=d);null==e&&0==w&&(e="#ffffff");this.convertImages(v.getSvg(e,null,null,C,null,
null!=k?k:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){try{var h=document.createElement("canvas"),l=parseInt(c.getAttribute("width")),k=parseInt(c.getAttribute("height"));q=null!=q?q:1;null!=b&&(q=g?Math.min(1,Math.min(3*b/(4*k),b/l)):b/l);l=Math.ceil(q*l)+2*z;k=Math.ceil(q*k)+2*z;h.setAttribute("width",l);h.setAttribute("height",k);var m=h.getContext("2d");null!=e&&(m.beginPath(),m.rect(0,0,l,k),m.fillStyle=e,m.fill());m.scale(q,q);m.drawImage(d,z/q,z/q);
null!=k?k:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){try{var h=document.createElement("canvas"),l=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));q=null!=q?q:1;null!=b&&(q=g?Math.min(1,Math.min(3*b/(4*m),b/l)):b/l);l=Math.ceil(q*l)+2*z;m=Math.ceil(q*m)+2*z;h.setAttribute("width",l);h.setAttribute("height",m);var k=h.getContext("2d");null!=e&&(k.beginPath(),k.rect(0,0,l,m),k.fillStyle=e,k.fill());k.scale(q,q);k.drawImage(d,z/q,z/q);
a(h)}catch(M){null!=f&&f(M)}});d.onerror=function(a){null!=f&&f(a)};try{u&&this.editor.graph.addSvgShadow(c);var h=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(v,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(h)}catch(F){null!=f&&f(F)}}),c,x)};EditorUi.prototype.createImageUrlConverter=
function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=function(c){null!=c&&("http://"!=c.substring(0,7)&&"https://"!=c.substring(0,8)||c.substring(0,a.baseUrl.length)==a.baseUrl?"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,h=c||{};c=mxUtils.bind(this,function(c,f){for(var g=a.getElementsByTagName(c),
l=0;l<g.length;l++)mxUtils.bind(this,function(c){var g=d.convert(c.getAttribute(f));if(null!=g&&"data:"!=g.substring(0,5)){var l=h[g];null==l?(e++,this.convertImageToDataUri(g,function(d){null!=d&&(h[g]=d,c.setAttribute(f,d));e--;0==e&&b(a)})):c.setAttribute(f,l)}})(g[l])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.loadUrl=function(a,b,c,d,f,g){try{var e=d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);f=null!=f?f:!0;var h=mxUtils.bind(this,
function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var d=a.getText();if(e){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length),h=0;h<a.length;h++)d[h]=String.fromCharCode(a[h]);d=d.join("")}g=null!=g?g:"data:image/png;base64,";d=g+this.base64Encode(d)}b(d)}}else null!=c&&c({code:App.ERROR_UNKNOWN})}),function(){null!=
c&&c({code:App.ERROR_UNKNOWN})},e,this.timeout,function(){f&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:h})})});h()}catch(w){null!=c&&c(w)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return"https?://raw.githubusercontent.com/"===a.substring(0,34)||/^https?:\/\/.*\.github\.io\//.test(a)||/^https?:\/\/(.*\.)?rawgit\.com\//.test(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),
function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,f){b=null!=b?b:0;c=null!=c?c:0;var e=[];try{var h=this.editor.graph;if(null!=a&&0<a.length){var g=mxUtils.parseXml(a),l=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=l&&"mxfile"==l.nodeName&&null!=this.pages){var k=
l.getElementsByTagName("diagram");if(1==k.length)l=mxUtils.parseXml(h.decompress(mxUtils.getTextContent(k[0]))).documentElement;else if(1<k.length){h.model.beginUpdate();try{for(var m=0;m<k.length;m++){var n=this.updatePageRoot(new DiagramPage(k[m])),z=this.pages.length;null==n.getName()&&n.setName(mxResources.get("pageWithNumber",[z+1]));h.model.execute(new ChangePage(this,n,n,z))}}finally{h.model.endUpdate()}}}if(null!=l&&"mxGraphModel"===l.nodeName){var C=new mxGraphModel;(new mxCodec(l.ownerDocument)).decode(l,
C);var E=C.getChildCount(C.getRoot());h.model.getChildCount(h.model.getRoot());h.model.beginUpdate();try{a={};for(m=0;m<E;m++){var y=C.getChildAt(C.getRoot(),m);if(1!=E||h.isCellLocked(h.getDefaultParent()))y=h.importCells([y],0,0,h.model.getRoot(),null,a)[0],A=h.model.getChildren(y),h.moveCells(A,b,c),e=e.concat(A);else var A=C.getChildren(y),e=e.concat(h.importCells(A,b,c,h.getDefaultParent(),null,a))}if(d){h.isGridEnabled()&&(b=h.snap(b),c=h.snap(c));var B=h.getBoundingBoxFromGeometry(e,!0);null!=
function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,f){b=null!=b?b:0;c=null!=c?c:0;var e=[];try{var h=this.editor.graph;if(null!=a&&0<a.length){var g=mxUtils.parseXml(a),l=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=l&&"mxfile"==l.nodeName&&null!=this.pages){var m=
l.getElementsByTagName("diagram");if(1==m.length)l=mxUtils.parseXml(h.decompress(mxUtils.getTextContent(m[0]))).documentElement;else if(1<m.length){h.model.beginUpdate();try{for(var k=0;k<m.length;k++){var n=this.updatePageRoot(new DiagramPage(m[k])),z=this.pages.length;null==n.getName()&&n.setName(mxResources.get("pageWithNumber",[z+1]));h.model.execute(new ChangePage(this,n,n,z))}}finally{h.model.endUpdate()}}}if(null!=l&&"mxGraphModel"===l.nodeName){var C=new mxGraphModel;(new mxCodec(l.ownerDocument)).decode(l,
C);var E=C.getChildCount(C.getRoot());h.model.getChildCount(h.model.getRoot());h.model.beginUpdate();try{a={};for(k=0;k<E;k++){var y=C.getChildAt(C.getRoot(),k);if(1!=E||h.isCellLocked(h.getDefaultParent()))y=h.importCells([y],0,0,h.model.getRoot(),null,a)[0],A=h.model.getChildren(y),h.moveCells(A,b,c),e=e.concat(A);else var A=C.getChildren(y),e=e.concat(h.importCells(A,b,c,h.getDefaultParent(),null,a))}if(d){h.isGridEnabled()&&(b=h.snap(b),c=h.snap(c));var B=h.getBoundingBoxFromGeometry(e,!0);null!=
B&&h.moveCells(e,b-B.x,c-B.y)}}finally{h.model.endUpdate()}}}}catch(F){throw f||this.handleError(F,mxResources.get("invalidOrMissingFile")),F;}return e};EditorUi.prototype.importLucidChart=function(a,b,c,d,f){var e=mxUtils.bind(this,function(){if(this.pasteLucidChart)try{this.insertLucidChart(a,b,c,d,f),null==this.updateAd||this.lucidchartTweetShown||(this.adsHtml.push('<a title="'+mxResources.get("loveIt",["draw.io"])+'" target="_blank" href="https://twitter.com/intent/tweet?text='+encodeURIComponent("I've just copy and pasted my Lucidchart diagram into www.draw.io")+
'" onclick="javascript:window.open(this.href, \'\', \'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,left=\'+((screen.width-640)/2)+\',top=\'+((screen.height-280)/3)+\',height=280,width=640\');return false;"\'><img border="0" align="absmiddle" style="margin-top:-2px;padding-right:8px;" src="'+Editor.tweetImage+'"/>Paste from Lucidchart?</a>'),this.updateAd(this.adsHtml.length-1,200),this.lucidchartTweetShown=!0)}catch(t){this.handleError(t)}finally{null!=f&&f()}});this.pasteLucidChart||this.loadingExtensions||
this.isOffline()?window.setTimeout(e,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("/js/diagramly/Extensions.js",e):mxscript("/js/extensions.min.js",e))};EditorUi.prototype.insertLucidChart=function(a,b,c,d,f){f=JSON.parse(a);a=[];if(null!=f.state){f=JSON.parse(f.state);for(var e in f.Pages)a.push(f.Pages[e]);a.sort(function(a,b){return a.Properties.Order<b.Properties.Order?-1:a.Properties.Order>b.Properties.Order?1:0})}else a.push(f);if(0<a.length){this.editor.graph.getModel().beginUpdate();
@ -6388,9 +6388,9 @@ mxResources.get(k.titleKey):k.title);this.showDialog(l.container,300,80,!0,!1);l
result:"discard",message:k}),"*")}),k.editKey?mxResources.get(k.editKey):null,k.discardKey?mxResources.get(k.discardKey):null,k.ignore?mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(l.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{l.init()}catch(G){g.postMessage(JSON.stringify({event:"draft",error:G.toString(),message:k}),"*")}return}if("template"==
k.action){this.spinner.stop();l=new NewDialog(this,!1,null!=k.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=k.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}));this.showDialog(l.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));l.init();return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):
null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var m=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,m):this.spinner.stop();return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var n=null!=k.xml?
k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var p=this.editor.graph,t=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=k.format;b.message=k;b.data=a;b.xml=encodeURIComponent(n);g.postMessage(JSON.stringify(b),"*")}),q=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==k.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(n))));p!=this.editor.graph&&
p.container.parentNode.removeChild(p.container);t(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var p=this.createTemporaryGraph(p.getStylesheet()),A=p.getGlobalVariable,B=this.pages[0];p.getGlobalVariable=function(a){return"page"==a?B.getName():"pagenumber"==a?1:A.apply(this,arguments)};document.body.appendChild(p.container);p.model.setRoot(B.root)}this.exportToCanvas(mxUtils.bind(this,function(a){q(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,
function(){q(null)}),null,null,null,null,null,null,p)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(n)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?t("data:image/png;base64,"+a.getText()):q(null)}),mxUtils.bind(this,function(){q(null)}))}}else{null!=k.xml&&0<k.xml.length&&this.setFileData(k.xml);m=this.createLoadMessage("export");if("html2"==k.format||"html"==k.format&&("0"!=
k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var p=this.editor.graph,q=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=k.format;b.message=k;b.data=a;b.xml=encodeURIComponent(n);g.postMessage(JSON.stringify(b),"*")}),t=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==k.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(n))));p!=this.editor.graph&&
p.container.parentNode.removeChild(p.container);q(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var p=this.createTemporaryGraph(p.getStylesheet()),A=p.getGlobalVariable,B=this.pages[0];p.getGlobalVariable=function(a){return"page"==a?B.getName():"pagenumber"==a?1:A.apply(this,arguments)};document.body.appendChild(p.container);p.model.setRoot(B.root)}this.exportToCanvas(mxUtils.bind(this,function(a){t(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,
function(){t(null)}),null,null,null,null,null,null,p)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(n)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?q("data:image/png;base64,"+a.getText()):t(null)}),mxUtils.bind(this,function(){t(null)}))}}else{null!=k.xml&&0<k.xml.length&&this.setFileData(k.xml);m=this.createLoadMessage("export");if("html2"==k.format||"html"==k.format&&("0"!=
urlParams.pages||null!=this.pages&&1<this.pages.length))l=this.getXmlFileData(),m.xml=mxUtils.getXml(l),m.data=this.getFileData(null,null,!0,null,null,null,l),m.format=k.format;else if("html"==k.format)n=this.editor.getGraphXml(),m.data=this.getHtml(n,this.editor.graph),m.xml=mxUtils.getXml(n),m.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;l=this.editor.graph.background;l==mxConstants.NONE&&(l=null);m.xml=this.getFileData(!0);m.format="svg";if(k.embedImages||null==k.embedImages){if(null==
k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==k.format?this.getEmbeddedSvg(m.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();m.data=this.createSvgDataUri(a);g.postMessage(JSON.stringify(m),"*")})):this.convertImages(this.editor.graph.getSvg(l),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();m.data=
this.createSvgDataUri(mxUtils.getXml(a));g.postMessage(JSON.stringify(m),"*")}));return}l="xmlsvg"==k.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(l));m.data=this.createSvgDataUri(l)}g.postMessage(JSON.stringify(m),"*")}return}if("load"==k.action)d=1==k.autosave,this.hideDialog(),null!=k.modified&&null==urlParams.modified&&(urlParams.modified=k.modified),null!=k.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=k.saveAndExit),
@ -6607,7 +6607,7 @@ DriveClient.prototype.loadRealtime=function(a,b,c){if("1"==urlParams.ignoremime|
function(a){window.clearTimeout(g);f&&b(a)}))});d()}else b();else this.redirectToNewApp(c,a.id)};
DriveClient.prototype.getXmlFile=function(a,b,c,d,f,g){var k=gapi.auth.getToken().access_token;this.ui.loadUrl(a.downloadUrl+"&access_token="+k,mxUtils.bind(this,function(e){if(null==e)d({message:mxResources.get("invalidOrMissingFile")});else if(a.mimeType==this.libraryMimeType||g)a.mimeType!=this.libraryMimeType||g?c(new DriveLibrary(this.ui,e,a)):d({message:mxResources.get("notADiagramFile")});else{var h=new DriveFile(this.ui,e,a,b);!f&&"850530949725"!=this.appId&&h.isEditable()&&a.mimeType!=this.mimeType?
this.saveFile(h,!0,mxUtils.bind(this,function(a){h.desc=a;c(h)}),d,!0):c(h)}}),d,"image/"==a.mimeType.substring(0,6)&&"image/svg"!=a.mimeType.substring(0,9)||/\.png$/i.test(a.title)||/\.jpe?g$/i.test(a.title))};
DriveClient.prototype.saveFile=function(a,b,c,d,f,g){if(a.isEditable()){var k=(new Date).getTime();f=null!=f?f:!this.ui.isLegacyDriveDomain()||"1"==urlParams.ignoremime;g=null!=g?g:!1;var e=mxUtils.bind(this,function(f,e,h){var l={mimeType:a.constructor==DriveLibrary?this.libraryMimeType:this.mimeType,title:a.getTitle()};h||(null!=f||g||(f=this.placeholderThumbnail,e=this.placeholderMimeType),null!=f&&null!=e&&(l.thumbnail={image:f,mimeType:e}));this.executeRequest(this.createUploadRequest(a.getId(),
DriveClient.prototype.saveFile=function(a,b,c,d,f,g){if(a.isEditable()){var k=(new Date).getTime();f=null!=f?f:!this.ui.isLegacyDriveDomain()||"1"==urlParams.ignoremime;g=null!=g?g:!1;var e=mxUtils.bind(this,function(e,f,h){var l={mimeType:a.constructor==DriveLibrary?this.libraryMimeType:this.mimeType,title:a.getTitle()};h||(null!=e||g||(e=this.placeholderThumbnail,f=this.placeholderMimeType),null!=e&&null!=f&&(l.thumbnail={image:e,mimeType:f}));this.executeRequest(this.createUploadRequest(a.getId(),
l,a.getData(),b||a.desc.mimeType!=this.mimeType&&a.desc.mimeType!=this.libraryMimeType),function(){a.saveDelay=(new Date).getTime()-k;c.apply(this,arguments)},d)}),h=mxUtils.bind(this,function(){!g&&a.constructor!=DriveLibrary&&this.enableThumbnails&&"0"!=urlParams.thumb&&this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(a){var b=null;if(null!=a)try{b=a.toDataURL("image/png")}catch(n){}b=null==b||b.length>this.maxThumbnailSize?null:b.substring(b.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,
"_");e(b,"image/png")}))||e(null,null,a.constructor!=DriveLibrary)});f||!b?h():this.verifyMimeType(a.getId(),h,!0)}else this.ui.editor.graph.reset(),null!=d&&d({message:mxResources.get("readOnly")})};
DriveClient.prototype.verifyMimeType=function(a,b,c,d){null==this.lastMimeCheck&&(this.lastMimeCheck=0);var f=(new Date).getTime();if(c||f-this.lastMimeCheck>this.mimeTypeCheckCoolOff)this.lastMimeCheck=f,this.checkingMimeType||(this.checkingMimeType=!0,this.executeRequest(gapi.client.drive.files.get({fileId:a,fields:"mimeType",supportsTeamDrives:!0}),mxUtils.bind(this,function(c){this.checkingMimeType=!1;null!=c&&"application/vnd.jgraph.mxfile.realtime"==c.mimeType?this.redirectToNewApp(d,a):null!=
@ -6645,7 +6645,7 @@ DropboxClient.prototype.readFile=function(a,b,c){var d=mxUtils.bind(this,functio
function(a){window.clearTimeout(e);if(k){k=!1;try{var d=new FileReader;d.onload=mxUtils.bind(this,function(c){b(d.result,a)});d.readAsText(a.fileBlob)}catch(n){c(n)}}}));h["catch"](mxUtils.bind(this,function(a){window.clearTimeout(e);k&&(k=!1,null==a||500!=a.status&&400!=a.status&&401!=a.status?c({message:mxResources.get("error")+" "+a.status}):(this.client.setAccessToken(null),this.setUser(null),g?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){f(!0)},
c)})}):this.authenticate(function(){d(!0)},c)))}))}),f=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){f(!0)},c,a):d(a)});null===this.client.getAccessToken()?this.authenticate(function(){f(!0)},c):f(!1)};
DropboxClient.prototype.checkExists=function(a,b,c){var d=this.client.filesGetMetadata({path:"/"+a.toLowerCase(),include_deleted:!1});this.executePromise(d,mxUtils.bind(this,function(d){c?b(!1,!0,d):this.ui.confirm(mxResources.get("replaceIt",[a]),function(){b(!0,!0,d)},function(){b(!1,!0,d)})}),function(a){b(!0,!1)})};
DropboxClient.prototype.renameFile=function(a,b,c,d){if(/[\\\/:\?\*"\|]/.test(b))d({message:mxResources.get("dropboxCharsNotAllowed")});else{if(null!=a&&null!=b){var f=a.stat.path_display.substring(1),g=f.lastIndexOf("/");0<g&&(b=f.substring(0,g+1)+b)}null!=a&&null!=b&&a.stat.path_lower.substring(1)!==b.toLowerCase()?this.checkExists(b,mxUtils.bind(this,function(f,e,g){f?(f=mxUtils.bind(this,function(f){f=this.client.filesMove({from_path:a.stat.path_display,to_path:"/"+b,autorename:!1});this.executePromise(f,
DropboxClient.prototype.renameFile=function(a,b,c,d){if(/[\\\/:\?\*"\|]/.test(b))d({message:mxResources.get("dropboxCharsNotAllowed")});else{if(null!=a&&null!=b){var f=a.stat.path_display.substring(1),g=f.lastIndexOf("/");0<g&&(b=f.substring(0,g+1)+b)}null!=a&&null!=b&&a.stat.path_lower.substring(1)!==b.toLowerCase()?this.checkExists(b,mxUtils.bind(this,function(f,e,g){f?(f=mxUtils.bind(this,function(e){e=this.client.filesMove({from_path:a.stat.path_display,to_path:"/"+b,autorename:!1});this.executePromise(e,
c,d)}),e&&g.path_lower.substring(1)!==b.toLowerCase()?(e=this.client.filesDelete({path:"/"+b.toLowerCase()}),this.executePromise(e,f,d)):f()):d()})):d({message:mxResources.get("invalidName")})}};DropboxClient.prototype.insertLibrary=function(a,b,c,d){this.insertFile(a,b,c,d,!0)};
DropboxClient.prototype.insertFile=function(a,b,c,d,f){f=null!=f?f:!1;this.checkExists(a,mxUtils.bind(this,function(g){g?this.saveFile(a,b,mxUtils.bind(this,function(a){f?c(new DropboxLibrary(this.ui,b,a)):c(new DropboxFile(this.ui,b,a))}),d):d()}))};
DropboxClient.prototype.saveFile=function(a,b,c,d){/[\\\/:\?\*"\|]/.test(a)?d({message:mxResources.get("dropboxCharsNotAllowed")}):15E7<=b.length?d({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(b.length)+" / 150 MB)"}):(a=this.client.filesUpload({path:"/"+a,mode:{".tag":"overwrite"},contents:new Blob([b],{type:"text/plain"}),mute:!0}),this.executePromise(a,c,d))};
@ -6735,15 +6735,16 @@ replay:"/plugins/replay.js",anon:"/plugins/anonymize.js"};App.getStoredMode=func
2)?(mxscript(App.DROPBOX_URL),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&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?App.mode==App.MODE_ONEDRIVE||null!=window.location.hash&&"#W"==window.location.hash.substring(0,2)?mxscript(App.ONEDRIVE_URL):"0"==urlParams.chrome&&(window.OneDriveClient=null):window.OneDriveClient=
null)),"undefined"==typeof JSON&&mxscript("js/json/json2.min.js")))})();
App.main=function(a){var b=null;EditorUi.enableLogging&&(window.onerror=function(a,c,d,f,g){try{if(a!=b&&(null==a||null==c||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){b=a;var e=new Image,h=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";e.src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity="+h+"&v="+encodeURIComponent(EditorUi.VERSION)+
"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(d)+(null!=f?":colno:"+encodeURIComponent(f):"")+(null!=g&&null!=g.stack?"&stack="+encodeURIComponent(g.stack):"")}}catch(t){}});"atlas"==uiTheme&&mxClient.link("stylesheet","styles/atlas.css");if(null!=window.mxscript){"0"!=urlParams.chrome&&mxscript("js/jscolor/jscolor.js");if("1"==urlParams.offline){mxscript("js/shapes.min.js");var c=document.createElement("iframe");c.setAttribute("width",
"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(d)+(null!=f?":colno:"+encodeURIComponent(f):"")+(null!=g&&null!=g.stack?"&stack="+encodeURIComponent(g.stack):"")}}catch(q){}});"atlas"==uiTheme&&mxClient.link("stylesheet","styles/atlas.css");if(null!=window.mxscript){"0"!=urlParams.chrome&&mxscript("js/jscolor/jscolor.js");if("1"==urlParams.offline){mxscript("js/shapes.min.js");var c=document.createElement("iframe");c.setAttribute("width",
"0");c.setAttribute("height","0");c.setAttribute("src","offline.html");document.body.appendChild(c);mxStencilRegistry.stencilSet={};mxStencilRegistry.getStencil=function(a){return mxStencilRegistry.stencils[a]};mxStencilRegistry.loadStencilSet=function(a,b,c){a=a.substring(a.indexOf("/")+1);a="mxgraph."+a.substring(0,a.length-4).replace(/\//g,".");a=mxStencilRegistry.stencilSet[a];null!=a&&mxStencilRegistry.parseStencilSet(a,b,!1)};for(c=mxUtils.load("stencils.xml").getXml().documentElement.firstChild;null!=
c;)"shapes"==c.nodeName&&null!=c.getAttribute("name")&&(mxStencilRegistry.stencilSet[c.getAttribute("name").toLowerCase()]=c,mxStencilRegistry.parseStencilSet(c)),c=c.nextSibling}"0"==urlParams.picker||mxClient.IS_QUIRKS||8==document.documentMode||mxscript(document.location.protocol+"//www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22picker%22%2C%22version%22%3A%221%22%2C%22language%22%3A%22"+mxClient.language+"%22%7D%5D%7D");if("0"!=urlParams.plugins&&"1"!=urlParams.offline){var c=
mxSettings.getPlugins(),d=urlParams.p;(null!=d||null!=c&&0<c.length)&&App.initPluginCallback();if(null!=d)for(var f=d.split(";"),d=0;d<f.length;d++){var g=App.pluginRegistry[f[d]];null!=g?mxscript(g):null!=window.console&&console.log("Unknown plugin:",f[d])}if(null!=c&&0<c.length&&"0"!=urlParams.plugins){f=window.location.protocol+"//"+window.location.host;g=!0;for(d=0;d<c.length&&g;d++)"/"!=c[d].charAt(0)&&c[d].substring(0,f.length)!=f&&(g=!1);if(g||mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n",
[c.join("\n")]).replace(/\\n/g,"\n")))for(d=0;d<c.length;d++)try{mxscript(c[d])}catch(k){}}}"function"===typeof window.DriveClient&&"undefined"===typeof gapi&&("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&isSvgBrowser&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode)?mxscript("https://apis.google.com/js/api.js?onload=DrawGapiClientCallback"):"undefined"===typeof window.gapi&&(window.DriveClient=null)}"0"!=urlParams.math&&Editor.initMath();
mxResources.loadDefaultBundle=!1;c=mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage);mxUtils.getAll("1"!=urlParams.dev?[c]:[c,STYLE_PATH+"/default.xml"],function(b){mxResources.parse(b[0].getText());1<b.length&&(Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=b[1].getDocumentElement());b=new App(new Editor("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)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.ONEDRIVE_URL,window.DrawOneDriveClientCallback):"undefined"===typeof window.OneDrive&&(window.OneDriveClient=null)}null!=a&&a(b);"0"!=urlParams.chrome&&"1"==urlParams.test&&(mxLog.show(),mxLog.debug("Started in "+((new Date).getTime()-t0.getTime())+"ms"),mxLog.debug("Export:",EXPORT_URL),mxLog.debug("Development mode:",
"1"==urlParams.dev?"active":"inactive"),mxLog.debug("Test mode:","1"==urlParams.test?"active":"inactive"))},function(){document.getElementById("geStatus").innerHTML='Error loading page. <a href="javascript:void(0);" onclick="location.reload();">Please try refreshing.</a>'})};mxUtils.extend(App,EditorUi);App.prototype.defaultUserPicture="https://lh3.googleusercontent.com/-HIzvXUy6QUY/AAAAAAAAAAI/AAAAAAAAAAA/giuR7PQyjEk/photo.jpg?sz=30";App.prototype.shareImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowOTgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMjU2NzdEMTcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMjU2NzdEMDcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNjgwMTE3NDA3MjA2ODExODcxRkM4MUY1OTFDMjQ5OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrM/fs0AAADgSURBVHjaYmDAA/7//88MwgzkAKDGFiD+BsQ/QWxSNaf9RwN37twpI8WAS+gGfP78+RpQSoRYA36iG/D379+vQClNdLVMOMz4gi7w79+/n0CKg1gD9qELvH379hzIHGK9oA508ieY8//8+fO5rq4uFCilRKwL1JmYmNhhHEZGRiZ+fn6Q2meEbDYG4u3/cYCfP38uA7kOm0ZOIJ7zn0jw48ePPiDFhmzArv8kgi9fvuwB+w5qwH9ykjswbFSZyM4sEMDPBDTlL5BxkFSd7969OwZ2BZKYGhDzkmjOJ4AAAwBhpRqGnEFb8QAAAABJRU5ErkJggg==";
mxSettings.getPlugins(),d=urlParams.p;(null!=d||null!=c&&0<c.length)&&App.initPluginCallback();if(null!=d){var f="";"1"==urlParams.drawdev&&(f=document.location.protocol+"//drawhost.jgraph.com/");for(var g=d.split(";"),d=0;d<g.length;d++){var k=App.pluginRegistry[g[d]];null!=k?mxscript(f+k):null!=window.console&&console.log("Unknown plugin:",g[d])}}if(null!=c&&0<c.length&&"0"!=urlParams.plugins){f=window.location.protocol+"//"+window.location.host;g=!0;for(d=0;d<c.length&&g;d++)"/"!=c[d].charAt(0)&&
c[d].substring(0,f.length)!=f&&(g=!1);if(g||mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n",[c.join("\n")]).replace(/\\n/g,"\n")))for(d=0;d<c.length;d++)try{mxscript(c[d])}catch(e){}}}"function"===typeof window.DriveClient&&"undefined"===typeof gapi&&("1"!=urlParams.embed&&"0"!=urlParams.gapi||
"1"==urlParams.embed&&"1"==urlParams.gapi)&&isSvgBrowser&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode)?mxscript("https://apis.google.com/js/api.js?onload=DrawGapiClientCallback"):"undefined"===typeof window.gapi&&(window.DriveClient=null)}"0"!=urlParams.math&&Editor.initMath();mxResources.loadDefaultBundle=!1;c=mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage);mxUtils.getAll("1"!=urlParams.dev?[c]:[c,STYLE_PATH+
"/default.xml"],function(b){mxResources.parse(b[0].getText());1<b.length&&(Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=b[1].getDocumentElement());b=new App(new Editor("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)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.ONEDRIVE_URL,
window.DrawOneDriveClientCallback):"undefined"===typeof window.OneDrive&&(window.OneDriveClient=null)}null!=a&&a(b);"0"!=urlParams.chrome&&"1"==urlParams.test&&(mxLog.show(),mxLog.debug("Started in "+((new Date).getTime()-t0.getTime())+"ms"),mxLog.debug("Export:",EXPORT_URL),mxLog.debug("Development mode:","1"==urlParams.dev?"active":"inactive"),mxLog.debug("Test mode:","1"==urlParams.test?"active":"inactive"))},function(){document.getElementById("geStatus").innerHTML='Error loading page. <a href="javascript:void(0);" onclick="location.reload();">Please try refreshing.</a>'})};
mxUtils.extend(App,EditorUi);App.prototype.defaultUserPicture="https://lh3.googleusercontent.com/-HIzvXUy6QUY/AAAAAAAAAAI/AAAAAAAAAAA/giuR7PQyjEk/photo.jpg?sz=30";App.prototype.shareImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowOTgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMjU2NzdEMTcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMjU2NzdEMDcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNjgwMTE3NDA3MjA2ODExODcxRkM4MUY1OTFDMjQ5OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrM/fs0AAADgSURBVHjaYmDAA/7//88MwgzkAKDGFiD+BsQ/QWxSNaf9RwN37twpI8WAS+gGfP78+RpQSoRYA36iG/D379+vQClNdLVMOMz4gi7w79+/n0CKg1gD9qELvH379hzIHGK9oA508ieY8//8+fO5rq4uFCilRKwL1JmYmNhhHEZGRiZ+fn6Q2meEbDYG4u3/cYCfP38uA7kOm0ZOIJ7zn0jw48ePPiDFhmzArv8kgi9fvuwB+w5qwH9ykjswbFSZyM4sEMDPBDTlL5BxkFSd7969OwZ2BZKYGhDzkmjOJ4AAAwBhpRqGnEFb8QAAAABJRU5ErkJggg==";
App.prototype.chevronUpImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg2NEE3NUY1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg2NEE3NjA1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODY0QTc1RDUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODY0QTc1RTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg+qUokAAAAMUExURQAAANnZ2b+/v////5bgre4AAAAEdFJOU////wBAKqn0AAAAL0lEQVR42mJgRgMMRAswMKAKMDDARBjg8lARBoR6KImkH0wTbygT6YaS4DmAAAMAYPkClOEDDD0AAAAASUVORK5CYII=":
IMAGE_PATH+"/chevron-up.png";
App.prototype.chevronDownImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg2NEE3NUI1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg2NEE3NUM1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODY0QTc1OTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODY0QTc1QTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsCtve8AAAAMUExURQAAANnZ2b+/v////5bgre4AAAAEdFJOU////wBAKqn0AAAALUlEQVR42mJgRgMMRAkwQEXBNAOcBSPhclB1cNVwfcxI+vEZykSpoSR6DiDAAF23ApT99bZ+AAAAAElFTkSuQmCC":IMAGE_PATH+
@ -6835,8 +6836,8 @@ null!=b&&this.sidebar.showEntries(b)}),h=mxUtils.bind(this,function(){c||null==e
p():a.saveFile(a.getTitle(),!1,mxUtils.bind(this,function(){p()}),mxUtils.bind(this,function(a){n();this.handleError(a)}))}};
App.prototype.loadFile=function(a,b,c){this.hideDialog();var d=mxUtils.bind(this,function(){if(null==a||0==a.length)this.editor.setStatus(""),this.fileLoaded(null);else if(this.spinner.spin(document.body,mxResources.get("loading")))if("L"==a.charAt(0))if(this.spinner.stop(),isLocalStorage)try{a=decodeURIComponent(a.substring(1));var d=localStorage.getItem(a);if(null!=d)this.fileLoaded(new StorageFile(this,d,a));else throw{message:mxResources.get("fileNotFound")};}catch(h){this.handleError(h,mxResources.get("errorLoadingFile"),
mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""}))}else this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""}));else if(null!=c)this.spinner.stop(),this.fileLoaded(c);else if("R"==a.charAt(0))this.spinner.stop(),d=decodeURIComponent(a.substring(1)),"<"!=d.charAt(0)&&(d=this.editor.graph.decompress(d)),
d=new LocalFile(this,d,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0),d.getHash=function(){return a},this.fileLoaded(d);else if("U"==a.charAt(0)){var f=decodeURIComponent(a.substring(1));this.loadTemplate(f,mxUtils.bind(this,function(c){this.spinner.stop();if(null!=c&&0<c.length){var d=this.defaultFilename;if(null==urlParams.title&&"1"!=urlParams.notitle){var e=f,g=f.lastIndexOf("."),h=e.lastIndexOf("/");g>h&&0<h&&(e=e.substring(h+1,g),g=f.substring(g),".png"==
g&&(g=".xml"),".svg"===g||".xml"===g||".html"===g)&&(d=e+g)}c=new LocalFile(this,c,null!=urlParams.title?decodeURIComponent(urlParams.title):d,!0);c.getHash=function(){return a};this.fileLoaded(c)||"https://drive.google.com/uc?id="!=f.substring(0,31)||null==this.drive&&"function"!==typeof window.DriveClient||(this.hideDialog(),c=mxUtils.bind(this,function(){return null!=this.drive?(this.spinner.stop(),this.loadFile("G"+f.substring(31,f.lastIndexOf("&")),b),!0):!1}),!c()&&this.spinner.spin(document.body,
d=new LocalFile(this,d,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0),d.getHash=function(){return a},this.fileLoaded(d);else if("U"==a.charAt(0)){var e=decodeURIComponent(a.substring(1));this.loadTemplate(e,mxUtils.bind(this,function(c){this.spinner.stop();if(null!=c&&0<c.length){var d=this.defaultFilename;if(null==urlParams.title&&"1"!=urlParams.notitle){var f=e,g=e.lastIndexOf("."),h=f.lastIndexOf("/");g>h&&0<h&&(f=f.substring(h+1,g),g=e.substring(g),".png"==
g&&(g=".xml"),".svg"===g||".xml"===g||".html"===g)&&(d=f+g)}c=new LocalFile(this,c,null!=urlParams.title?decodeURIComponent(urlParams.title):d,!0);c.getHash=function(){return a};this.fileLoaded(c)||"https://drive.google.com/uc?id="!=e.substring(0,31)||null==this.drive&&"function"!==typeof window.DriveClient||(this.hideDialog(),c=mxUtils.bind(this,function(){return null!=this.drive?(this.spinner.stop(),this.loadFile("G"+e.substring(31,e.lastIndexOf("&")),b),!0):!1}),!c()&&this.spinner.spin(document.body,
mxResources.get("loading"))&&this.addListener("clientLoaded",c))}}),mxUtils.bind(this,function(){this.spinner.stop();this.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile"))}))}else d=null,"G"==a.charAt(0)?d=this.drive:"D"==a.charAt(0)?d=this.dropbox:"W"==a.charAt(0)?d=this.oneDrive:"H"==a.charAt(0)&&(d=this.gitHub),null==d?this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=
this.getCurrentFile();window.location.hash=null!=a?a.getHash():""})):(a=decodeURIComponent(a.substring(1)),d.getFile(a,mxUtils.bind(this,function(a){this.spinner.stop();this.fileLoaded(a)}),mxUtils.bind(this,function(b){null!=window.console&&null!=b&&console.log("error in loadFile:",a,b);this.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null,mxUtils.bind(this,function(){var a=this.getCurrentFile();null==a?(window.location.hash="",this.showSplash()):window.location.hash=a.getHash()}))})))}),
f=this.getCurrentFile(),g=mxUtils.bind(this,function(){null!=f&&f.isModified()?this.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){null!=f&&(window.location.hash=f.getHash())}),d,mxResources.get("cancel"),mxResources.get("discardChanges")):d()});null==a||0==a.length?g():null!=f&&f.isModified()&&!b?window.openWindow(this.getUrl()+"#"+a,null,g):g()};

File diff suppressed because one or more lines are too long

1081
war/js/atlas.min.js vendored

File diff suppressed because one or more lines are too long

View file

@ -492,6 +492,14 @@ App.main = function(callback)
if (temp != null)
{
// Used to request draw.io sources in dev mode
var drawDevUrl = '';
if (urlParams['drawdev'] == '1')
{
drawDevUrl = document.location.protocol + '//drawhost.jgraph.com/';
}
// Mapping from key to URL in App.plugins
var t = temp.split(';');
@ -501,7 +509,7 @@ App.main = function(callback)
if (url != null)
{
mxscript(url);
mxscript(drawDevUrl + url);
}
else if (window.console != null)
{

View file

@ -801,5 +801,17 @@ FeedbackDialog.feedbackUrl = 'https://log.draw.io/email';
}), 0);
};
EditorUi.prototype.createImageUrlConverter = function()
{
var converter = new mxUrlConverter();
converter.updateBaseUrl();
return converter;
};
EditorUi.prototype.isCorsEnabledForUrl = function()
{
return true;
}
EditorUi.prototype.addBeforeUnloadListener = function() {};
})();

View file

@ -2085,9 +2085,10 @@
if (p != null)
{
//adds label
cell.value = convertText(p);
//adds labels and font size
//adds font size
var isV = 0;
if (p.Text != null)
@ -2108,7 +2109,7 @@
isV = 1;
var fontSize = currM.v;
fontSize = fontSize / 2;
fontSize = Math.round(fontSize / 1.7);
cell.style += 'fontSize=' + fontSize + ';';
}
}
@ -2119,7 +2120,45 @@
if (isV == 0)
{
cell.style += 'fontSize=9;';
cell.style += 'fontSize=10;';
}
//adds font color
var isC = 0;
if (p.Text != null)
{
if (p.Text.m != null)
{
var m = p.Text.m;
var i = 0;
while ((isC == 0) && (i < m.length))
{
var currM = m[i];
if (currM.n == 'c')
{
if (currM.v != null)
{
isC = 1;
var currV = currM.v;
if (currV.charAt(0) != '#')
{
currV = '#' + currV;
}
var currV = currV.substring(0, 7);
cell.style += mxConstants.STYLE_FONTCOLOR + '=' + currV + ';';
}
}
i++;
}
}
}
// Converts images

View file

@ -81,7 +81,7 @@ v,k,f));else if(c.c&a.c.RCDATA)d.F&&d.F(e(l),f,g,h(d,b,v,k,f));else throw Error(
e[1].toLowerCase(),n;if(e[2]){n=e[3];var v=n.charCodeAt(0);if(34===v||39===v)n=n.substr(1,n.length-2);n=c(n.replace(F,""))}else n="";l.push(m,n);g=g.substr(e[0].length)}else g=g.replace(/^[\s\S][^a-z\s]*/,"");f.R=l;f.next=h+1;return f}}function n(b){function c(a,b){f||b.push(a)}var e,f;return g({startDoc:function(){e=[];f=!1},startTag:function(c,g,h){if(!f&&a.f.hasOwnProperty(c)){var k=a.f[c];if(!(k&a.c.FOLDABLE)){var l=b(c,g);if(l){if("object"!==typeof l)throw Error("tagPolicy did not return object (old API?)");
if("attribs"in l)g=l.attribs;else throw Error("tagPolicy gave no attribs");var m;"tagName"in l?(m=l.tagName,l=a.f[m]):(m=c,l=k);if(k&a.c.OPTIONAL_ENDTAG){var n=e[e.length-1];n&&n.D===c&&(n.v!==m||c!==m)&&h.push("</",n.v,">")}k&a.c.EMPTY||e.push({D:c,v:m});h.push("<",m);c=0;for(n=g.length;c<n;c+=2){var v=g[c],C=g[c+1];null!==C&&void 0!==C&&h.push(" ",v,'="',d(C),'"')}h.push(">");k&a.c.EMPTY&&!(l&a.c.EMPTY)&&h.push("</",m,">")}else f=!(k&a.c.EMPTY)}}},endTag:function(b,c){if(f)f=!1;else if(a.f.hasOwnProperty(b)){var d=
a.f[b];if(!(d&(a.c.EMPTY|a.c.FOLDABLE))){if(d&a.c.OPTIONAL_ENDTAG)for(d=e.length;0<=--d;){var g=e[d].D;if(g===b)break;if(!(a.f[g]&a.c.OPTIONAL_ENDTAG))return}else for(d=e.length;0<=--d&&e[d].D!==b;);if(!(0>d)){for(g=e.length;--g>d;){var h=e[g].v;a.f[h]&a.c.OPTIONAL_ENDTAG||c.push("</",h,">")}d<e.length&&(b=e[d].v);e.length=d;c.push("</",b,">")}}}},pcdata:c,rcdata:c,cdata:c,endDoc:function(a){for(;e.length;e.length--)a.push("</",e[e.length-1].v,">")}})}function p(a,b,c,d,e){if(!e)return null;try{var g=
f.parse(""+a);if(g&&(!g.K()||fa.test(g.W()))){var h=e(g,b,c,d);return h?h.toString():null}}catch(va){}return null}function r(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function C(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+c;if(a.hasOwnProperty(b))return a[b]}function H(b,c,d,e,f){for(var g=0;g<c.length;g+=2){var h=c[g],k=c[g+1],l=k,m=null,n;if((n=
f.parse(""+a);if(g&&(!g.K()||fa.test(g.W()))){var h=e(g,b,c,d);return h?h.toString():null}}catch(wa){}return null}function r(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function C(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+c;if(a.hasOwnProperty(b))return a[b]}function H(b,c,d,e,f){for(var g=0;g<c.length;g+=2){var h=c[g],k=c[g+1],l=k,m=null,n;if((n=
b+"::"+h,a.m.hasOwnProperty(n))||(n="*::"+h,a.m.hasOwnProperty(n)))m=a.m[n];if(null!==m)switch(m){case a.d.NONE:break;case a.d.SCRIPT:k=null;f&&r(f,b,h,l,k);break;case a.d.STYLE:if("undefined"===typeof U){k=null;f&&r(f,b,h,l,k);break}var v=[];U(k,{declaration:function(b,c){var e=b.toLowerCase();S(e,c,d?function(b){return p(b,a.P.ja,a.M.ka,{TYPE:"CSS",CSS_PROP:e},d)}:null);c.length&&v.push(e+": "+c.join(" "))}});k=0<v.length?v.join(" ; "):null;f&&r(f,b,h,l,k);break;case a.d.ID:case a.d.IDREF:case a.d.IDREFS:case a.d.GLOBAL_NAME:case a.d.LOCAL_NAME:case a.d.CLASSES:k=
e?e(k):k;f&&r(f,b,h,l,k);break;case a.d.URI:k=p(k,C(a.J,b,h),C(a.I,b,h),{TYPE:"MARKUP",XML_ATTR:h,XML_TAG:b},d);f&&r(f,b,h,l,k);break;case a.d.URI_FRAGMENT:k&&"#"===k.charAt(0)?(k=k.substring(1),k=e?e(k):k,null!==k&&void 0!==k&&(k="#"+k)):k=null;f&&r(f,b,h,l,k);break;default:k=null,f&&r(f,b,h,l,k)}else k=null,f&&r(f,b,h,l,k);c[g+1]=k}return c}function M(b,c,d){return function(e,f){if(a.f[e]&a.c.UNSAFE)d&&r(d,e,void 0,void 0,void 0);else return{attribs:H(e,f,b,c,d)}}}function J(a,b){var c=[];n(b)(a,
c);return c.join("")}var U,S;"undefined"!==typeof window&&(U=window.parseCssDeclarations,S=window.sanitizeCssProperty);var aa={lt:"<",LT:"<",gt:">",GT:">",amp:"&",AMP:"&",quot:'"',apos:"'",nbsp:" "},A=/^#(\d+)$/,v=/^#x([0-9A-Fa-f]+)$/,R=/^[A-Za-z][A-za-z0-9]+$/,K="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):null,F=/\0/g,ca=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,N=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,G=/&/g,Y=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,T=
@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+x.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();var mxBasePath="https://www.draw.io/mxgraph/",mxLoadStylesheets=mxLoadResources=!1,mxLanguage="en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"7.0.7",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"7.0.8",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT:0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@ -1741,10 +1741,10 @@ var A=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function()
a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,q.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,q.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,q.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,q.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
this.canvas.curveTo=mxUtils.bind(this,q.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,q.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function x(){mxActor.call(this)}function w(){mxActor.call(this)}function z(){mxRectangleShape.call(this)}function y(){mxRectangleShape.call(this)}function u(){mxCylinder.call(this)}function I(){mxShape.call(this)}function L(){mxShape.call(this)}function D(){mxEllipse.call(this)}function B(){mxShape.call(this)}
function E(){mxShape.call(this)}function C(){mxRectangleShape.call(this)}function H(){mxShape.call(this)}function M(){mxShape.call(this)}function J(){mxShape.call(this)}function U(){mxCylinder.call(this)}function S(){mxDoubleEllipse.call(this)}function aa(){mxDoubleEllipse.call(this)}function A(){mxArrowConnector.call(this);this.spacing=0}function v(){mxArrowConnector.call(this);this.spacing=0}function R(){mxActor.call(this)}function K(){mxRectangleShape.call(this)}function F(){mxActor.call(this)}
function ca(){mxActor.call(this)}function N(){mxActor.call(this)}function G(){mxActor.call(this)}function Y(){mxActor.call(this)}function T(){mxActor.call(this)}function Z(){mxActor.call(this)}function da(){mxActor.call(this)}function P(){mxActor.call(this)}function ea(){mxActor.call(this)}function W(){mxEllipse.call(this)}function O(){mxEllipse.call(this)}function Q(){mxEllipse.call(this)}function fa(){mxRhombus.call(this)}function V(){mxEllipse.call(this)}function X(){mxEllipse.call(this)}function ua(){mxEllipse.call(this)}
function oa(){mxEllipse.call(this)}function pa(){mxActor.call(this)}function la(){mxActor.call(this)}function ma(){mxActor.call(this)}function ja(){mxConnector.call(this)}function va(a,b,c,d,e,f,g,h,k,l){g+=k;var m=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,
"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.cube=a;var wa=Math.tan(mxUtils.toRadians(30)),ka=(.5-wa)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/wa);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ka);a.lineTo(b,
.25*b);a.lineTo(.5*b,(.5-ka)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.isoRectangle=b;mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+wa));f?(a.moveTo(0,.25*b),a.lineTo(.5*b,(.5-ka)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ka)*b),a.lineTo(.5*b,(1-ka)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ka),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-ka)*b),a.lineTo(0,.75*b),
function ca(){mxActor.call(this)}function N(){mxActor.call(this)}function G(){mxActor.call(this)}function Y(){mxActor.call(this)}function T(){mxActor.call(this)}function Z(){mxActor.call(this)}function da(){mxActor.call(this)}function P(){mxActor.call(this)}function ea(){mxActor.call(this)}function W(){mxEllipse.call(this)}function O(){mxEllipse.call(this)}function Q(){mxEllipse.call(this)}function fa(){mxRhombus.call(this)}function V(){mxEllipse.call(this)}function X(){mxEllipse.call(this)}function va(){mxEllipse.call(this)}
function pa(){mxEllipse.call(this)}function qa(){mxActor.call(this)}function la(){mxActor.call(this)}function ma(){mxActor.call(this)}function ja(){mxConnector.call(this)}function wa(a,b,c,d,e,f,g,h,k,l){g+=k;var m=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,
"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.cube=a;var xa=Math.tan(mxUtils.toRadians(30)),ka=(.5-xa)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/xa);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ka);a.lineTo(b,
.25*b);a.lineTo(.5*b,(.5-ka)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.isoRectangle=b;mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+xa));f?(a.moveTo(0,.25*b),a.lineTo(.5*b,(.5-ka)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ka)*b),a.lineTo(.5*b,(1-ka)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ka),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-ka)*b),a.lineTo(0,.75*b),
a.close());a.end()};mxCellRenderer.prototype.defaultShapes.isoCube=c;mxUtils.extend(d,mxCylinder);d.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(f&&null!=this.fill||!f&&null==this.fill)a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,-b);f||(a.moveTo(0,
b),a.curveTo(0,-b/3,d,-b/3,d,b),a.lineTo(d,e-b),a.curveTo(d,e+b/3,0,e+b/3,0,e-b),a.close())};d.prototype.getLabelBounds=function(a){var b=2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1);if(!this.flipV&&(null==this.direction||this.direction==mxConstants.DIRECTION_EAST)||this.flipV&&this.direction==mxConstants.DIRECTION_WEST)a.y+=b,a.height-=b;else if(!this.flipV&&this.direction==mxConstants.DIRECTION_SOUTH||this.flipV&&this.direction==mxConstants.DIRECTION_NORTH)a.width-=b;else if(!this.flipV&&
this.direction==mxConstants.DIRECTION_WEST||this.flipV&&(null==this.direction||this.direction==mxConstants.DIRECTION_EAST))a.height-=b;else if(!this.flipV&&this.direction==mxConstants.DIRECTION_NORTH||this.flipV&&this.direction==mxConstants.DIRECTION_SOUTH)a.x+=b,a.width-=b;return a};mxCellRenderer.prototype.defaultShapes.datastore=d;mxUtils.extend(e,mxCylinder);e.prototype.size=30;e.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,
@ -1759,18 +1759,18 @@ mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),
function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};q.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)};q.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};q.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,
arguments);this.lastX=e;this.lastY=f};q.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};q.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),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),h=this.defaultVariation;
5>g&&(g=5,h/=3);for(var k=c(a-this.lastX)*d/g,c=c(b-this.lastY)*e/g,d=d/f,e=e/f,f=0;f<g;f++){var l=(Math.random()-.5)*h;this.originalLineTo.call(this.canvas,k*f+this.lastX-l*e,c*f+this.lastY-l*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};q.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};var Ca=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new q(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ca.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Da=mxRectangleShape.prototype.isHtmlAllowed;
mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Da.apply(this,arguments)};var Ea=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ea.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=
this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var Da=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new q(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Da.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ea=mxRectangleShape.prototype.isHtmlAllowed;
mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ea.apply(this,arguments)};var Fa=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Fa.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=
mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadTo(b,c,b+f,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 Fa=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Fa.apply(this,arguments)};mxUtils.extend(t,mxRectangleShape);t.prototype.size=.1;t.prototype.isHtmlAllowed=function(){return!1};t.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.close(),a.end(),a.fillAndStroke()}};var Ga=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Ga.apply(this,arguments)};mxUtils.extend(t,mxRectangleShape);t.prototype.size=.1;t.prototype.isHtmlAllowed=function(){return!1};t.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+=d;a.width-=2*d}return a};t.prototype.paintForeground=function(a,b,c,d,e){var f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));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));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.prototype.defaultShapes.process=t;mxUtils.extend(x,mxActor);x.prototype.size=.2;x.prototype.redrawPath=function(a,b,c,d,e){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(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.prototype.defaultShapes.step=x;mxUtils.extend(w,mxHexagon);w.prototype.size=.25;w.prototype.redrawPath=function(a,b,c,d,e){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(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.prototype.defaultShapes.hexagon=w;mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.paintForeground=function(a,b,c,d,e){var f=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+f);a.lineTo(b+d/2,c+e-f);a.moveTo(b+f,c+e/2);a.lineTo(b+d-f,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
arguments)};mxCellRenderer.prototype.defaultShapes.plus=z;var za=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){za.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),za.apply(this,[a,b,c,d,e]))}};mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.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};y.prototype.paintForeground=function(a,b,c,
arguments)};mxCellRenderer.prototype.defaultShapes.plus=z;var Aa=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){Aa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),Aa.apply(this,[a,b,c,d,e]))}};mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.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};y.prototype.paintForeground=function(a,b,c,
d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var f=0,g;do{g=mxCellRenderer.prototype.defaultShapes[this.style["symbol"+f]];if(null!=g){var h=this.style["symbol"+f+"Align"],k=this.style["symbol"+f+"VerticalAlign"],l=this.style["symbol"+f+"Width"],m=this.style["symbol"+f+"Height"],
ra=this.style["symbol"+f+"Spacing"]||0,n=this.style["symbol"+f+"VSpacing"]||ra,p=this.style["symbol"+f+"ArcSpacing"];null!=p&&(p*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),ra+=p,n+=p);var p=b,q=c,p=h==mxConstants.ALIGN_CENTER?p+(d-l)/2:h==mxConstants.ALIGN_RIGHT?p+(d-l-ra):p+ra,q=k==mxConstants.ALIGN_MIDDLE?q+(e-m)/2:k==mxConstants.ALIGN_BOTTOM?q+(e-m-n):q+n;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,p,q,l,m);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
sa=this.style["symbol"+f+"Spacing"]||0,n=this.style["symbol"+f+"VSpacing"]||sa,p=this.style["symbol"+f+"ArcSpacing"];null!=p&&(p*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),sa+=p,n+=p);var p=b,oa=c,p=h==mxConstants.ALIGN_CENTER?p+(d-l)/2:h==mxConstants.ALIGN_RIGHT?p+(d-l-sa):p+sa,oa=k==mxConstants.ALIGN_MIDDLE?oa+(e-m)/2:k==mxConstants.ALIGN_BOTTOM?oa+(e-m-n):oa+n;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,p,oa,l,m);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
arguments)};mxCellRenderer.prototype.defaultShapes.ext=y;mxUtils.extend(u,mxCylinder);u.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.prototype.defaultShapes.message=u;mxUtils.extend(I,mxShape);I.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.prototype.defaultShapes.umlActor=I;mxUtils.extend(L,mxShape);L.prototype.getLabelBounds=function(a){return new mxRectangle(a.x+a.width/6,a.y,5*a.width/6,a.height)};L.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.prototype.defaultShapes.umlBoundary=L;mxUtils.extend(D,mxEllipse);D.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.prototype.defaultShapes.umlEntity=D;mxUtils.extend(B,mxShape);B.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,
@ -1781,93 +1781,93 @@ a,b,c,d,Math.min(e,f))};mxCellRenderer.prototype.defaultShapes.umlLifeline=C;mxU
e){var f=this.corner,g=Math.min(d,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),h=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height))));a.begin();a.moveTo(b,c);a.lineTo(b+g,c);a.lineTo(b+g,c+Math.max(0,h-1.5*f));a.lineTo(b+Math.max(0,g-f),c+h);a.lineTo(b,c+h);a.close();a.fillAndStroke();a.begin();a.moveTo(b+g,c);a.lineTo(b+d,c);a.lineTo(b+d,c+e);a.lineTo(b,c+e);a.lineTo(b,c+h);a.stroke()};mxCellRenderer.prototype.defaultShapes.umlFrame=
H;mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=C.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.lineIntersection=function(a,b,c,d){var e=(d.y-c.y)*(b.x-a.x)-(d.x-c.x)*(b.y-a.y);if(0==e)return null;var f=a.y-c.y,f=((d.x-c.x)*f-(d.y-c.y)*(a.x-c.x))/e;c=a.x+f*(b.x-a.x);a=a.y+f*(b.y-a.y);return 0<f&&1>=f?(f=d.x-c,d=d.y-a,{dist:Math.sqrt(d*d+f*f),p:new mxPoint(c,a)}):null};mxPerimeter.getPerimeterPoint=function(a,b,c){for(var d=
!1,e=0;e<a.length-1;e++){var f=mxPerimeter.lineIntersection(a[e],a[e+1],b,c);null!=f&&(!d||d.dist>f.dist)&&(d=f)}return d.p};mxPerimeter.ParallelogramPerimeter=function(a,b,c,d){d=m.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d));b=a.width*Math.max(0,Math.min(1,d));d=a.x;var e=a.y,f=a.width,g=a.height;b=[new mxPoint(d+b,e),new mxPoint(d+f,e),new mxPoint(d+f-b,e+g),new mxPoint(d,e+g),new mxPoint(d+b,e)];d=a.getCenterX();a=a.getCenterY();return mxPerimeter.getPerimeterPoint(b,new mxPoint(d,
a),c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){d=n.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d));b=a.width*Math.max(0,Math.min(1,d));d=a.x;var e=a.y,f=a.width,g=a.height;b=[new mxPoint(d+b,e),new mxPoint(d+f-b,e),new mxPoint(d+f,e+g),new mxPoint(d,e+g),new mxPoint(d+b,e)];d=a.getCenterX();a=a.getCenterY();return mxPerimeter.getPerimeterPoint(b,new mxPoint(d,a),c)};mxStyleRegistry.putValue("trapezoidPerimeter",
mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){d=x.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d));d=a.width*Math.max(0,Math.min(1,d));var e=a.x,f=a.y,g=a.width,h=a.height;b=a.getCenterX();a=a.getCenterY();d=[new mxPoint(e,f),new mxPoint(e+g-d,f),new mxPoint(e+g,a),new mxPoint(e+g-d,f+h),new mxPoint(e,f+h),new mxPoint(e+d,a),new mxPoint(e,f)];return mxPerimeter.getPerimeterPoint(d,new mxPoint(b,a),c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);
mxPerimeter.HexagonPerimeter2=function(a,b,c,d){d=w.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d));d=a.width*Math.max(0,Math.min(1,d));var e=a.x,f=a.y,g=a.width,h=a.height;b=a.getCenterX();a=a.getCenterY();d=[new mxPoint(e+d,f),new mxPoint(e+g-d,f),new mxPoint(e+g,a),new mxPoint(e+g-d,f+h),new mxPoint(e+d,f+h),new mxPoint(e,a),new mxPoint(e+d,f)];return mxPerimeter.getPerimeterPoint(d,new mxPoint(b,a),c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);
mxUtils.extend(M,mxShape);M.prototype.size=10;M.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.prototype.defaultShapes.lollipop=M;mxUtils.extend(J,mxShape);J.prototype.size=10;J.prototype.inset=2;J.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.prototype.defaultShapes.requires=J;mxUtils.extend(U,mxCylinder);U.prototype.jettyWidth=32;U.prototype.jettyHeight=12;U.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,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+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,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.component=
U;mxUtils.extend(S,mxDoubleEllipse);S.prototype.outerStroke=!0;S.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.prototype.defaultShapes.endState=S;mxUtils.extend(aa,S);aa.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=aa;mxUtils.extend(A,mxArrowConnector);A.prototype.defaultWidth=4;A.prototype.isOpenEnded=
function(){return!0};A.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};A.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=A;mxUtils.extend(v,mxArrowConnector);v.prototype.defaultWidth=10;v.prototype.defaultArrowWidth=20;v.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};v.prototype.getEndArrowWidth=
function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};v.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=v;mxUtils.extend(R,mxActor);R.prototype.size=30;R.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.prototype.defaultShapes.manualInput=R;mxUtils.extend(K,mxRectangleShape);K.prototype.dx=20;K.prototype.dy=20;K.prototype.isHtmlAllowed=function(){return!1};K.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.prototype.defaultShapes.internalStorage=K;mxUtils.extend(F,mxActor);F.prototype.dx=20;F.prototype.dy=20;F.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.prototype.defaultShapes.corner=
F;mxUtils.extend(ca,mxActor);ca.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.prototype.defaultShapes.crossbar=ca;mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.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.prototype.defaultShapes.tee=N;mxUtils.extend(G,mxActor);G.prototype.arrowWidth=.3;G.prototype.arrowSize=.2;G.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.prototype.defaultShapes.singleArrow=
G;mxUtils.extend(Y,mxActor);Y.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",G.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",G.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.prototype.defaultShapes.doubleArrow=Y;mxUtils.extend(T,mxActor);T.prototype.size=.1;T.prototype.redrawPath=function(a,b,c,d,e){b=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.prototype.defaultShapes.dataStorage=T;mxUtils.extend(Z,
mxActor);Z.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.or=Z;mxUtils.extend(da,mxActor);da.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.prototype.defaultShapes.xor=da;mxUtils.extend(P,mxActor);P.prototype.size=20;P.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.prototype.defaultShapes.loopLimit=P;mxUtils.extend(ea,mxActor);ea.prototype.size=.375;ea.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.prototype.defaultShapes.offPageConnector=ea;mxUtils.extend(W,mxEllipse);W.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.prototype.defaultShapes.tapeData=
W;mxUtils.extend(O,mxEllipse);O.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.prototype.defaultShapes.orEllipse=O;mxUtils.extend(Q,mxEllipse);Q.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.prototype.defaultShapes.sumEllipse=Q;mxUtils.extend(fa,mxRhombus);fa.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.prototype.defaultShapes.sortShape=fa;mxUtils.extend(V,
mxEllipse);V.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.prototype.defaultShapes.collate=V;mxUtils.extend(X,mxEllipse);X.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.prototype.defaultShapes.dimension=X;mxUtils.extend(ua,mxEllipse);ua.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),"1"==mxUtils.getValue(this.style,"top","1")&&(a.begin(),
a.moveTo(b,c),a.lineTo(b+d,c),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"right","1")&&(a.begin(),a.moveTo(b+d,c),a.lineTo(b+d,c+e),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"bottom","1")&&(a.begin(),a.moveTo(b+d,c+e),a.lineTo(b,c+e),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"left","1")&&(a.begin(),a.moveTo(b,c+e),a.lineTo(b,c),a.end(),a.stroke()))};mxCellRenderer.prototype.defaultShapes.partialRectangle=ua;mxUtils.extend(oa,mxEllipse);oa.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.prototype.defaultShapes.lineEllipse=oa;mxUtils.extend(pa,mxActor);pa.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.prototype.defaultShapes.delay=
pa;mxUtils.extend(la,mxActor);la.prototype.size=.2;la.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.prototype.defaultShapes.cross=la;mxUtils.extend(ma,mxActor);ma.prototype.size=
.25;ma.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.prototype.defaultShapes.display=ma;mxUtils.extend(ja,mxConnector);ja.prototype.origPaintEdgeShape=ja.prototype.paintEdgeShape;ja.prototype.paintEdgeShape=function(a,b,c){var d=a.state.dashed,e=a.state.fixDash;ja.prototype.origPaintEdgeShape.apply(this,
arguments);if(3<=a.state.strokeWidth){var f=mxUtils.getValue(this.style,"fillColor",null);null!=f&&(a.setStrokeColor(f),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(d,e),ja.prototype.origPaintEdgeShape.apply(this,arguments))}};mxCellRenderer.prototype.defaultShapes.filledEdge=ja;mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",
function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",va);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=va.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*
k,m.y-2*q+f*k);a.moveTo(m.x-p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);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 m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);h?a.lineTo(m.x-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.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,m){f*=h+l;g*=h+l;var n=e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Aa=function(a,b,c){return na(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})},na=
function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,h=a.view.translate,k=a.view.scale,l=c?f[0]:f[g],m=c?f[1]:f[g-1],n=m.x-l.x,p=m.y-l.y,q=Math.sqrt(n*n+p*p);return ba(a,b,function(a){a=d.call(this,q,n/q,p/q,l,m);return new mxPoint(a.x/k-h.x,a.y/k-h.y)},function(a,b,c){a=Math.sqrt(n*n+p*p);b.x=(b.x+h.x)*k;b.y=(b.y+h.y)*k;e.call(this,a,n/a,p/a,l,m,b,c)})},ha=function(a){return function(b){return[ba(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
"arrowWidth",G.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",G.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))})]}},xa=function(a,b,c){return function(d){var e=[ba(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)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},qa=function(a,b,c){c=null!=c?c:1;return function(d){var e=[ba(d,["size"],function(b){var c=parseFloat(mxUtils.getValue(this.state.style,"size",a));return new mxPoint(b.x+c*b.width,b.getCenterY())},
function(a,b){this.state.style.size=Math.max(0,Math.min(c,(b.x-a.x)/a.width))})];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},Ba=function(a){return function(b){var c=[ba(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))})];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,
!1)&&c.push(ga(b));return c}},ia=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b}},ga=function(a,b){return ba(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=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)*d),c.y+(null!=b?b:c.height/8))},function(a,b,c){this.state.style[mxConstants.STYLE_ARCSIZE]=
Math.round(Math.min(50,Math.max(0,100*(a.width-b.x+a.x)/Math.min(a.width,a.height))))})},ba=function(a,b,c,d,e){a=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);a.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};a.getPosition=c;a.setPosition=d;a.ignoreGrid=null!=e?e:!0;return a},ya={link:function(a){return[Aa(a,!0,10),Aa(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(na(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(na(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(na(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(na(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*
a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=
a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[ba(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,
mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=
parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ga(a,c/2))}return b},label:ia(),ext:ia(),rectangle:ia(),triangle:ia(),rhombus:ia(),umlLifeline:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",C.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){var b=
[ba(a,["width","height"],function(a){var b=Math.max(H.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",H.prototype.width))),c=Math.max(1.5*H.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",H.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(H.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*H.prototype.corner,Math.min(a.height,b.y-a.y)))},
!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},process:function(a){var b=[ba(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},cross:function(a){return[ba(a,["size"],function(a){var b=
Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",la.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",
e.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[ba(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",R.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,
mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},dataStorage:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",T.prototype.size))));return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width))})]},internalStorage:function(a){var b=[ba(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",K.prototype.dx))),
c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",K.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},corner:function(a){return[ba(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",F.prototype.dx))),
c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",F.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[ba(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",N.prototype.dy)));
return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:ha(1),doubleArrow:ha(.5),folder:function(a){return[ba(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",
g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[ba(a,["size"],
function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=
Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.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))})]},step:qa(x.prototype.size,!0),hexagon:qa(w.prototype.size,!0,.5),curlyBracket:qa(p.prototype.size,!1),display:qa(ma.prototype.size,!1),cube:xa(1,
a.prototype.size,!1),card:xa(.5,h.prototype.size,!0),loopLimit:xa(.5,P.prototype.size,!0),trapezoid:Ba(.5),parallelogram:Ba(1)};Graph.createHandle=ba;Graph.handleFactory=ya;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=ya[a];if(null!=a)return a(this.state)}return null};
mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=ya[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var sa=new mxPoint(1,0),ta=new mxPoint(1,0),ha=mxUtils.toRadians(-30),sa=mxUtils.getRotatedPoint(sa,Math.cos(ha),Math.sin(ha)),
ha=mxUtils.toRadians(-150),ta=mxUtils.getRotatedPoint(ta,Math.cos(ha),Math.sin(ha));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=sa.x,l=sa.y,m=ta.x,n=ta.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=
g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ga=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=
function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Ga.apply(this,arguments)};b.prototype.constraints=[];c.prototype.constraints=[];mxRectangleShape.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),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,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))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=
mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;K.prototype.constraints=mxRectangleShape.prototype.constraints;T.prototype.constraints=mxRectangleShape.prototype.constraints;W.prototype.constraints=mxEllipse.prototype.constraints;O.prototype.constraints=mxEllipse.prototype.constraints;Q.prototype.constraints=mxEllipse.prototype.constraints;
oa.prototype.constraints=mxEllipse.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;pa.prototype.constraints=mxRectangleShape.prototype.constraints;ma.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=mxRectangleShape.prototype.constraints;ea.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)];I.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)];U.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)];
f.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)];k.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)];x.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(.1,.25),!1),new mxConnectionConstraint(new mxPoint(.2,.5),!1),new mxConnectionConstraint(new mxPoint(.1,.75),!1),new mxConnectionConstraint(new mxPoint(.9,.25),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.9,.75),!1)];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)];M.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(.125,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.125,.75),!1),new mxConnectionConstraint(new mxPoint(.875,
.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.875,.75),!1),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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=
mxRectangleShape.prototype.constraints;l.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;N.prototype.constraints=null;F.prototype.constraints=null;ca.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)];G.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];Y.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];la.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,
1),!1)];C.prototype.constraints=null;Z.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)];da.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)]})();
(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.lineIntersection=function(a,b,c,d){var e=(d.y-c.y)*(b.x-a.x)-(d.x-c.x)*(b.y-a.y);if(0==e)return null;var f=a.y-c.y,f=((d.x-c.x)*f-(d.y-c.y)*(a.x-c.x))/e;c=a.x+f*(b.x-a.x);a=a.y+f*(b.y-a.y);return 0<=f&&1>=f?(f=d.x-c,d=d.y-a,{dist:Math.sqrt(d*d+f*f),p:new mxPoint(c,a)}):null};mxPerimeter.getPerimeterPoint=function(a,b,c){for(var d=
!1,e=0;e<a.length-1;e++){var f=mxPerimeter.lineIntersection(a[e],a[e+1],b,c);null!=f&&(!d||d.dist>f.dist)&&(d=f)}return d.p};mxPerimeter.ParallelogramPerimeter=function(a,b,c,d){var e=m.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.width*Math.max(0,Math.min(1,e));b=a.x;var g=a.y,e=a.width,h=a.height,f=[new mxPoint(b+f,g),new mxPoint(b+e,g),new mxPoint(b+e-f,g+h),new mxPoint(b,g+h),new mxPoint(b+f,g)],g=a.getCenterX();a=a.getCenterY();a=new mxPoint(g,a);d&&(c.x<b||c.x>b+e?
a.y=c.y:a.x=c.x);return mxPerimeter.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){var e=n.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.width*Math.max(0,Math.min(1,e));b=a.x;var g=a.y,e=a.width,h=a.height,f=[new mxPoint(b+f,g),new mxPoint(b+e-f,g),new mxPoint(b+e,g+h),new mxPoint(b,g+h),new mxPoint(b+f,g)],g=a.getCenterX();a=a.getCenterY();a=new mxPoint(g,a);
d&&(c.x<b||c.x>b+e?a.y=c.y:a.x=c.x);return mxPerimeter.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){var e=x.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.width*Math.max(0,Math.min(1,e));b=a.x;var g=a.y,e=a.width,h=a.height,k=a.getCenterX();a=a.getCenterY();f=[new mxPoint(b,g),new mxPoint(b+e-f,g),new mxPoint(b+e,a),new mxPoint(b+e-f,g+h),new mxPoint(b,g+h),new mxPoint(b+
f,a),new mxPoint(b,g)];a=new mxPoint(k,a);d&&(c.x<b||c.x>b+e?a.y=c.y:a.x=c.x);return mxPerimeter.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e=w.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.width*Math.max(0,Math.min(1,e));b=a.x;var g=a.y,e=a.width,h=a.height,k=a.getCenterX();a=a.getCenterY();f=[new mxPoint(b+f,g),new mxPoint(b+e-f,g),new mxPoint(b+e,a),new mxPoint(b+e-f,
g+h),new mxPoint(b+f,g+h),new mxPoint(b,a),new mxPoint(b+f,g)];a=new mxPoint(k,a);d&&(c.x<b||c.x>b+e?a.y=c.y:a.x=c.x);return mxPerimeter.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(M,mxShape);M.prototype.size=10;M.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.prototype.defaultShapes.lollipop=M;mxUtils.extend(J,mxShape);J.prototype.size=10;J.prototype.inset=2;J.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.prototype.defaultShapes.requires=J;mxUtils.extend(U,mxCylinder);U.prototype.jettyWidth=32;U.prototype.jettyHeight=12;U.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,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+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,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.component=U;mxUtils.extend(S,mxDoubleEllipse);S.prototype.outerStroke=!0;S.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.prototype.defaultShapes.endState=S;mxUtils.extend(aa,S);aa.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=aa;mxUtils.extend(A,mxArrowConnector);A.prototype.defaultWidth=4;A.prototype.isOpenEnded=function(){return!0};A.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};A.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=
A;mxUtils.extend(v,mxArrowConnector);v.prototype.defaultWidth=10;v.prototype.defaultArrowWidth=20;v.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};v.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};v.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=
v;mxUtils.extend(R,mxActor);R.prototype.size=30;R.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.prototype.defaultShapes.manualInput=R;mxUtils.extend(K,mxRectangleShape);K.prototype.dx=20;K.prototype.dy=20;K.prototype.isHtmlAllowed=
function(){return!1};K.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.prototype.defaultShapes.internalStorage=K;mxUtils.extend(F,mxActor);F.prototype.dx=20;F.prototype.dy=20;F.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.prototype.defaultShapes.corner=F;mxUtils.extend(ca,mxActor);ca.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.prototype.defaultShapes.crossbar=ca;mxUtils.extend(N,mxActor);N.prototype.dx=
20;N.prototype.dy=20;N.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.prototype.defaultShapes.tee=N;mxUtils.extend(G,mxActor);G.prototype.arrowWidth=.3;G.prototype.arrowSize=.2;G.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.prototype.defaultShapes.singleArrow=G;mxUtils.extend(Y,mxActor);Y.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",G.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"arrowSize",G.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.prototype.defaultShapes.doubleArrow=Y;mxUtils.extend(T,mxActor);T.prototype.size=.1;T.prototype.redrawPath=function(a,
b,c,d,e){b=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.prototype.defaultShapes.dataStorage=T;mxUtils.extend(Z,mxActor);Z.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.or=Z;mxUtils.extend(da,mxActor);da.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.prototype.defaultShapes.xor=da;mxUtils.extend(P,mxActor);P.prototype.size=20;P.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.prototype.defaultShapes.loopLimit=P;mxUtils.extend(ea,mxActor);ea.prototype.size=.375;ea.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.prototype.defaultShapes.offPageConnector=ea;mxUtils.extend(W,mxEllipse);W.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.prototype.defaultShapes.tapeData=W;mxUtils.extend(O,mxEllipse);O.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.prototype.defaultShapes.orEllipse=O;mxUtils.extend(Q,mxEllipse);Q.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.prototype.defaultShapes.sumEllipse=
Q;mxUtils.extend(fa,mxRhombus);fa.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.prototype.defaultShapes.sortShape=fa;mxUtils.extend(V,mxEllipse);V.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.prototype.defaultShapes.collate=V;mxUtils.extend(X,mxEllipse);X.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.prototype.defaultShapes.dimension=X;mxUtils.extend(va,
mxEllipse);va.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),"1"==mxUtils.getValue(this.style,"top","1")&&(a.begin(),a.moveTo(b,c),a.lineTo(b+d,c),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"right","1")&&(a.begin(),a.moveTo(b+d,c),a.lineTo(b+d,c+e),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"bottom","1")&&
(a.begin(),a.moveTo(b+d,c+e),a.lineTo(b,c+e),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"left","1")&&(a.begin(),a.moveTo(b,c+e),a.lineTo(b,c),a.end(),a.stroke()))};mxCellRenderer.prototype.defaultShapes.partialRectangle=va;mxUtils.extend(pa,mxEllipse);pa.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.prototype.defaultShapes.lineEllipse=pa;mxUtils.extend(qa,mxActor);qa.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.prototype.defaultShapes.delay=qa;mxUtils.extend(la,mxActor);la.prototype.size=.2;la.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.prototype.defaultShapes.cross=la;mxUtils.extend(ma,mxActor);ma.prototype.size=.25;ma.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.prototype.defaultShapes.display=ma;mxUtils.extend(ja,mxConnector);ja.prototype.origPaintEdgeShape=ja.prototype.paintEdgeShape;ja.prototype.paintEdgeShape=function(a,b,c){var d=a.state.dashed,e=a.state.fixDash;ja.prototype.origPaintEdgeShape.apply(this,arguments);if(3<=a.state.strokeWidth){var f=mxUtils.getValue(this.style,"fillColor",null);null!=f&&(a.setStrokeColor(f),a.setStrokeWidth(a.state.strokeWidth-
2),a.setDashed(d,e),ja.prototype.origPaintEdgeShape.apply(this,arguments))}};mxCellRenderer.prototype.defaultShapes.filledEdge=ja;mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-
3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",wa);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=wa.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*k,m.y-2*q+f*k);a.moveTo(m.x-p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);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 m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);h?a.lineTo(m.x-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.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,m){f*=h+l;g*=h+l;var n=e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/
a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ba=function(a,b,c){return na(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})},na=function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,h=a.view.translate,k=a.view.scale,l=c?f[0]:f[g],m=c?f[1]:f[g-1],n=m.x-l.x,p=m.y-l.y,q=Math.sqrt(n*
n+p*p);return ba(a,b,function(a){a=d.call(this,q,n/q,p/q,l,m);return new mxPoint(a.x/k-h.x,a.y/k-h.y)},function(a,b,c){a=Math.sqrt(n*n+p*p);b.x=(b.x+h.x)*k;b.y=(b.y+h.y)*k;e.call(this,a,n/a,p/a,l,m,b,c)})},ha=function(a){return function(b){return[ba(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",G.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",G.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))})]}},ya=function(a,b,c){return function(d){var e=[ba(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)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},ra=function(a,b,c){c=null!=c?c:1;return function(d){var e=[ba(d,["size"],function(b){var c=parseFloat(mxUtils.getValue(this.state.style,"size",a));return new mxPoint(b.x+c*b.width,b.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(c,(b.x-a.x)/a.width))})];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},Ca=function(a){return function(b){var c=
[ba(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))})];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ga(b));return c}},ia=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b}},ga=function(a,b){return ba(a,
[mxConstants.STYLE_ARCSIZE],function(c){var d=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)*d),c.y+(null!=b?b:c.height/8))},function(a,b,c){this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(a.width-b.x+a.x)/Math.min(a.width,a.height))))})},ba=function(a,b,c,d,e){a=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);
a.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};a.getPosition=c;a.setPosition=d;a.ignoreGrid=null!=e?e:!0;return a},za={link:function(a){return[Ba(a,!0,10),Ba(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(na(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(na(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(na(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(na(a,
["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-
d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=
a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[ba(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,
c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ga(a,c/2))}return b},label:ia(),ext:ia(),rectangle:ia(),triangle:ia(),rhombus:ia(),umlLifeline:function(a){return[ba(a,
["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",C.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){var b=[ba(a,["width","height"],function(a){var b=Math.max(H.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",H.prototype.width))),c=Math.max(1.5*H.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,
"height",H.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(H.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*H.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},process:function(a){var b=[ba(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));
return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},cross:function(a){return[ba(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",la.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=
Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",e.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[ba(a,["size"],
function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",R.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},dataStorage:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",T.prototype.size))));return new mxPoint(a.x+
(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width))})]},internalStorage:function(a){var b=[ba(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",K.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",K.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=
Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},corner:function(a){return[ba(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",F.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",F.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=
Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[ba(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",N.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},
singleArrow:ha(1),doubleArrow:ha(.5),folder:function(a){return[ba(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,
b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,
Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.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))})]},step:ra(x.prototype.size,!0),hexagon:ra(w.prototype.size,!0,.5),curlyBracket:ra(p.prototype.size,!1),display:ra(ma.prototype.size,!1),cube:ya(1,a.prototype.size,!1),card:ya(.5,h.prototype.size,!0),loopLimit:ya(.5,P.prototype.size,!0),trapezoid:Ca(.5),parallelogram:Ca(1)};Graph.createHandle=ba;Graph.handleFactory=za;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&
this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=za[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
a=za[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var ta=new mxPoint(1,0),ua=new mxPoint(1,0),ha=mxUtils.toRadians(-30),ta=mxUtils.getRotatedPoint(ta,Math.cos(ha),Math.sin(ha)),ha=mxUtils.toRadians(-150),ua=mxUtils.getRotatedPoint(ua,Math.cos(ha),Math.sin(ha));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=ta.x,l=ta.y,m=ua.x,n=ua.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};
var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ha=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Ha.apply(this,arguments)};b.prototype.constraints=[];c.prototype.constraints=[];mxRectangleShape.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),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),
new mxConnectionConstraint(new mxPoint(.75,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))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;
mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;K.prototype.constraints=mxRectangleShape.prototype.constraints;
T.prototype.constraints=mxRectangleShape.prototype.constraints;W.prototype.constraints=mxEllipse.prototype.constraints;O.prototype.constraints=mxEllipse.prototype.constraints;Q.prototype.constraints=mxEllipse.prototype.constraints;pa.prototype.constraints=mxEllipse.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;ma.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=
mxRectangleShape.prototype.constraints;ea.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)];I.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)];U.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)];f.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)];k.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)];x.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(.1,.25),!1),new mxConnectionConstraint(new mxPoint(.2,.5),!1),new mxConnectionConstraint(new mxPoint(.1,.75),!1),new mxConnectionConstraint(new mxPoint(.9,.25),!1),
new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.9,.75),!1)];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)];M.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(.125,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.125,.75),!1),new mxConnectionConstraint(new mxPoint(.875,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.875,.75),!1),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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=mxRectangleShape.prototype.constraints;l.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;N.prototype.constraints=null;F.prototype.constraints=null;ca.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)];G.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];Y.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),
new mxConnectionConstraint(new mxPoint(1,.5),!1)];la.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];C.prototype.constraints=null;Z.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)];da.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)]})();
(function(x,r){function N(){if(!t){t=!0;window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config({"HTML-CSS":{availableFonts:[],webFont:"STIX-Web",imageFont:null}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<p.length;a++)MathJax.Hub.Queue(["Typeset",MathJax.Hub,p[a]])})}};var a=document.createElement("script");a.type="text/javascript";a.src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(a)}}function O(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?MathJax.Hub.Queue(["Typeset",MathJax.Hub,a.container]):p.push(a.container);a.addListener(mxEvent.SIZE,function(e,m){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a.container])})}mxStencilRegistry.dynamicLoading=!1;try{var e=document.createElement("style");e.type="text/css";e.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}";
document.getElementsByTagName("head")[0].appendChild(e)}catch(a){}var G=mxClient.NO_FO,t="undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub,p=[];mxGraph.prototype.getImageFromBundles=function(a){return null!=a?("http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a="https://www.draw.io/"+a),a):null};if(null!=r)for(e=0;e<r.length;e++){var y=mxUtils.parseXml(r[e]);mxStencilRegistry.parseStencilSet(y.documentElement)}mxClient.IS_TOUCH&&

View file

@ -1,113 +1,113 @@
(function(){function w(a){a=null!=a.Text?a.Text:null!=a.Value?a.Value:a.Lane_0;return null!=a&&null!=a.t?a.t:""}function q(a){return null!=a.Action?a.Action:a}function x(a,c){var d=q(c);if(null!=d){var b=z[d.Class];null!=b&&(a.style+=b);b=null!=d.Properties?d.Properties:d;if(null!=b){a.value=w(b);var f=0;if(null!=b.Text&&null!=b.Text.m)for(var r=b.Text.m,h=0;0==f&&h<r.length;){var l=r[h];"s"==l.n&&null!=l.v&&(f=1,l=l.v,l/=2,a.style+="fontSize="+l+";");h++}0==f&&(a.style+="fontSize=9;");"ImageSearchBlock2"==
d.Class&&(a.style+="image="+b.URL+";");a.style+=k(mxConstants.STYLE_STROKEWIDTH,b.LineWidth,"1");["DefaultTextBlock","UI2HotspotBlock"].includes(d.Class)||(a.style+=k(mxConstants.STYLE_STROKECOLOR,b.LineColor.substring(0,7),"#000000"));a.style+=k(mxConstants.STYLE_ALIGN,b.TextAlign,"center");a.style+=k(mxConstants.STYLE_VERTICAL_ALIGN,b.TextVAlign,"middle");["UI2HotspotBlock"].includes(d.Class)||(a.style+=k(mxConstants.STYLE_OPACITY,b.Opacity,"100"));null!=b.Rotation&&(f=mxUtils.toDegree(parseFloat(b.Rotation)),
r=["AEUSBBlock","AGSCutandpasteBlock","iOSDeviceiPadLandscape","iOSDeviceiPadProLandscape"],"AdvancedSwimLaneBlockRotated"==d.Class?(f+=90,a.geometry.rotate90()):r.includes(d.Class)&&(f-=90,a.geometry.rotate90(),a.geometry.rotate90(),a.geometry.rotate90()),a.style+="rotation="+f+";");b.FlipX&&(a.style+="flipH=1;");b.FlipY&&(a.style+="flipV=1;");null!=b.Shadow&&(a.style+=mxConstants.STYLE_SHADOW+"=1;");"dashed"==b.StrokeStyle?a.style+="dashed=1;":"dotted"==b.StrokeStyle&&(a.style+="dashed=1;dashPattern=1 4;");
null==b.FillColor||"AWSAndroidBlock3 AWSiOSBlock3 AWSJavaBlock3 AWSJavaScript AWSNetBlock3 AWSNodeJSBlock3 AWSPHPBlock3 AWSPythonBlock3 AWSRubyBlock3 AWSXamarin AWSCLIBlock3 AWSEclipseToolkitBlock3 AWSVisualStudioToolkitBlock3 AWSWindowsPowershellToolkitBlock3 DefaultTextBlock".split(" ").includes(d.Class)||("object"===typeof b.FillColor?null!=b.FillColor.cs&&1<b.FillColor.cs.length&&(a.style+=k(mxConstants.STYLE_FILLCOLOR,b.FillColor.cs[0].c.substring(0,7)),a.style+=k(mxConstants.STYLE_GRADIENTCOLOR,
b.FillColor.cs[1].c.substring(0,7))):"string"===typeof b.FillColor&&(a.style+=k(mxConstants.STYLE_FILLCOLOR,b.FillColor.substring(0,7),"#FFFFFF")));if(a.edge){a.style+="rounded=1;arcSize=5;";if("diagonal"!=b.Shape)if(null!=b.ElbowPoints)for(a.geometry.points=[],h=0;h<b.ElbowPoints.length;h++)a.geometry.points.push(new mxPoint(Math.round(.6*b.ElbowPoints[h].x+0),Math.round(.6*b.ElbowPoints[h].y+0)));else"elbow"==b.Shape?a.style=null!=b.Endpoint1.Block&&null!=b.Endpoint1.Block?a.style+"edgeStyle=orthogonalEdgeStyle;":
a.style+"edgeStyle=elbowEdgeStyle;":null!=b.Endpoint1.Block&&null!=b.Endpoint1.Block&&(a.style+="edgeStyle=orthogonalEdgeStyle;","curve"==b.Shape&&(a.style+="curved=1;"));n(a,b.Endpoint1,!0);n(a,b.Endpoint2,!1)}}}}function y(a){var c=q(a).Properties.BoundingBox;null!=a.Class&&"AWS"===a.Class.substring(0,3)&&(c.h-=20);v=new mxCell("",new mxGeometry(Math.round(.6*c.x+0),Math.round(.6*c.y+0),Math.round(.6*c.w),Math.round(.6*c.h)),"html=1;whiteSpace=wrap;");v.vertex=!0;x(v,a);return v}function k(a,c,
d,b){null!=c&&null!=b&&(c=b(c));return null!=c&&c!=d?a+"="+c+";":""}function n(a,c,d){null!=c&&(null!=c.LinkX&&null!=c.LinkY&&(a.style+=(d?"exitX":"entryX")+"="+c.LinkX+";"+(d?"exitY":"entryY")+"="+c.LinkY+";"+(d?"exitPerimeter":"entryPerimeter")+"=0;"),"Arrow"==c.Style?a.style+=(d?"startArrow":"endArrow")+"=block;":"Hollow Arrow"==c.Style?(a.style+=(d?"startArrow":"endArrow")+"=block;",a.style+=(d?"startFill":"endFill")+"=0;"):"Open Arrow"==c.Style&&(a.style+=(d?"startArrow":"endArrow")+"=open;",
a.style+=(d?"startSize":"endSize")+"=12;"))}var z={DefaultTextBlockNew:"text;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;",DefaultTextBlock:"text;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;",DefaultSquareBlock:"rounded=1;arcSize=5;",DefaultNoteBlock:"shape=note;size=15;",DefaultNoteBlockV2:"shape=note;size=15;",HotspotBlock:"strokeColor=none;opacity=50;",ImageSearchBlock2:"shape=image;",ProcessBlock:"rounded=1;arcSize=5;",DecisionBlock:"rhombus;rounded=1;arcSize=5;",
TerminatorBlock:"rounded=1;arcSize=50;",PredefinedProcessBlock:"shape=process;rounded=1;arcSize=5;",DocumentBlock:"shape=document;",MultiDocumentBlock:"shape=mxgraph.flowchart.multi-document;",ManualInputBlock:"shape=manualInput;size=15;rounded=1;arcSize=5;",PreparationBlock:"shape=hexagon;rounded=1;arcSize=5;",DataBlock:"shape=parallelogram;rounded=1;arcSize=5;",DataBlockNew:"shape=parallelogram;rounded=1;arcSize=5;",DatabaseBlock:"shape=cylinder;",DirectAccessStorageBlock:"shape=mxgraph.flowchart.direct_data;",
InternalStorageBlock:"shape=internalStorage;rounded=1;arcSize=5;dx=10;dy=10;",PaperTapeBlock:"shape=tape;size=0.2;",ManualOperationBlockNew:"shape=trapezoid;rounded=1;arcSize=5;flipV=1;",DelayBlock:"shape=delay;",StoredDataBlock:"shape=dataStorage;",MergeBlock:"triangle;direction=south;rounded=1;arcSize=5;",ConnectorBlock:"ellipse;",OrBlock:"shape=mxgraph.flowchart.summing_function;",SummingJunctionBlock:"shape=mxgraph.flowchart.or;",DisplayBlock:"shape=display;",OffPageLinkBlock:"shape=offPageConnector;rounded=1;arcSize=5;",
BraceNoteBlock:"shape=curlyBracket;rounded=1;",NoteBlock:"shape=mxgraph.flowchart.annotation_1;",AdvancedSwimLaneBlock:"swimlane;rounded=1;arcSize=5;",AdvancedSwimLaneBlockRotated:"swimlane;horizontal=0;rounded=1;arcSize=5;",RectangleContainerBlock:"fillColor=none;container=1;rounded=1;arcSize=5;",DiamondContainerBlock:"shape=rhombus;fillColor=none;container=1;",RoundedRectangleContainerBlock:"rounded=1;fillColor=none;container=1;",CircleContainerBlock:"shape=ellipse;fillColor=none;container=1;",
PillContainerBlock:"rounded=1;arcSize=50;fillColor=none;container=1;",IsoscelesTriangleBlock:"triangle;direction=north;",RightTriangleBlock:"shape=mxgraph.basic.orthogonal_triangle;",PentagonBlock:"shape=mxgraph.basic.pentagon;",HexagonBlock:"shape=hexagon;rounded=1;arcSize=5;",OctagonBlock:"shape=mxgraph.basic.octagon;",CrossBlock:"shape=cross;size=0.6;",CloudBlock:"ellipse;shape=cloud;",HeartBlock:"shape=mxgraph.basic.heart;",RightArrowBlock:"shape=singleArrow;arrowWidth=0.5;arrowSize=0.3;",DoubleArrowBlock:"shape=doubleArrow;arrowWidth=0.5;arrowSize=0.3;",
CalloutBlock:"shape=mxgraph.basic.rectangular_callout;",ShapeCircleBlock:"ellipse;",ShapePolyStarBlock:"shape=mxgraph.basic.star;",ShapeDiamondBlock:"rhombus;rounded=1;arcSize=5;",UI2HotspotBlock:"shape=rect;opacity=50;strokeColor=none;rounded=1;",AndroidIconCheck:"shape=mxgraph.ios7.misc.check;",AndroidIconCancel:"shape=mxgraph.atlassian.x;",AndroidIconCollapse:"shape=mxgraph.ios7.misc.up;",AndroidIconExpand:"shape=mxgraph.ios7.misc.down;",AndroidIconNext:"shape=mxgraph.ios7.misc.right;",AndroidIconPrevious:"shape=mxgraph.ios7.misc.left;",
AndroidIconRefresh:NaN,AndroidIconInformation:"shape=mxgraph.ios7.icons.info;",AndroidIconSearch:"shape=mxgraph.ios7.icons.looking_glass;",AndroidIconSettings:"shape=mxgraph.ios7.icons.volume;direction=south;",AndroidIconTrash:"shape=mxgraph.ios7.icons.trashcan;",AndroidIconEmail:"shape=mxgraph.mockup.misc.mail2;",AndroidIconNew:"shape=mxgraph.ios7.misc.flagged;",iOSDeviceiPhoneSE:"shape=mxgraph.ios7.misc.iphone;",iOSDeviceiPhone6s:"shape=mxgraph.ios7.misc.iphone;",iOSDeviceiPhone6sPlus:"shape=mxgraph.ios7.misc.iphone;",
iOSDeviceiPadPortrait:"shape=mxgraph.ios7.misc.ipad7inch;",iOSDeviceiPadLandscape:"shape=mxgraph.ios7.misc.ipad7inch;",iOSDeviceiPadProPortrait:"shape=mxgraph.ios7.misc.ipad7inch;",iOSDeviceiPadProLandscape:"shape=mxgraph.ios7.misc.ipad10inch;",iOSButton:"shape=rect;",iOSStepper:"shape=mxgraph.ios7.misc.adjust;",iOSToggle:"shape=mxgraph.ios7ui.onOffButton;buttonState=on;strokeColor2=#aaaaaa;fillColor2=#ffffff;",iOSSlider:"shape=mxgraph.ios7ui.slider;barPos=20;strokeColor2=#a0a0a0;",iOSProgressBar:"shape=mxgraph.ios.iCloudProgressBar;barPos=20;",
iOSPageControls:"shape=mxgraph.ios.iCloudProgressBar;barPos=20;",iOSUniversalKeyboard:"shape=mxgraph.ios.iKeybLett;",MindMapBlock:"shape=rect;rounded=1;",MindMapStadiumBlock:"shape=rect;rounded=1;arcSize=50;",MindMapCloud:"shape=cloud;",MindMapCircle:"shape=ellipse;",MindMapIsoscelesTriangleBlock:"shape=triangle;direction=north;",MindMapDiamondBlock:"shape=rhombus;",MindMapPentagonBlock:"shape=mxgraph.basic.pentagon;",MindMapHexagonBlock:"shape=hexagon;",MindMapOctagonBlock:"shape=mxgraph.basic.octagon;",
MindMapCrossBlock:"shape=mxgraph.basic.cross2;dx=20;",UMLClassBlock:"rounded=1;",UMLActiveClassBlock:"shape=mxgraph.flowchart.predefined_process;",UMLPackageBlock:"shape=folder;tabPosition=left;",UMLNoteBlock:"shape=note;size=15;",UMLTextBlock:"shape=text;strokeColor=none;fillColor=none;",UMLActorBlock:"shape=umlActor;",UMLUseCaseBlock:"shape=ellipse;",UMLCircleContainerBlock:"shape=ellipse;container=1;",UMLRectangleContainerBlock:"rounded=1;container=1;",UMLOptionLoopBlock:"shape=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;",
UMLStartBlock:"shape=ellipse;fillColor=#000000;",UMLStateBlock:"shape=rect;rounded=1;",UMLDecisionBlock:"shape=rhombus;rounded=1;",UMLHForkJoinBlock:"shape=rect;rounded=1;fillColor=#000000;",UMLVForkJoinBlock:"shape=rect;rounded=1;fillColor=#000000;",UMLFlowFinalBlock:"shape=mxgraph.flowchart.or;",UMLHistoryStateBlock:"shape=ellipse;",UMLEndBlock:"shape=mxgraph.bpmn.shape;outline=end;symbol=terminate;",UMLObjectBlock:"shape=rect;rounded=1;",UMLSendSignalBlock:"shape=mxgraph.sysml.sendSigAct;",UMLReceiveSignalBlock:"shape=mxgraph.sysml.accEvent;flipH=1;",
UMLAcceptTimeEventActionBlock:"shape=mxgraph.sysml.timeEvent;",UMLOffPageLinkBlock:"shape=mxgraph.sysml.sendSigAct;direction=south;",UMLActivationBlock:"shape=rect;rounded=1;",UMLDeletionBlock:"shape=mxgraph.sysml.x;strokeWidth=4;",UMLSeqEntityBlock:"shape=mxgraph.electrical.radio.microphone_1;direction=north;",UMLComponentBlock:"shape=component;align=left;spacingLeft=36;",UMLNodeBlock:"shape=cube;size=12;flipH=1;",UMLComponentInterfaceBlock:"shape=ellipse;",UMLProvidedInterfaceBlock:"shape=lollipop;direction=south;",
UMLRequiredInterfaceBlock:"shape=requires;direction=north;",UMLEntityBlock:"shape=rect;rounded=1;",UMLWeakEntityBlock:"shape=ext;double=1;rounded=1;",UMLAttributeBlock:"shape=ellipse;",UMLMultivaluedAttributeBlock:"shape=doubleEllipse;",UMLRelationshipBlock:"shape=rhombus;rounded=1;",UMLWeakRelationshipBlock:"shape=rhombus;rounded=1;double=1;",DFDExternalEntityBlock2:"shape=rect;rounded=1;",YDMDFDProcessBlock:"shape=ellipse;",YDMDFDDataStoreBlock:"shape=partialRectangle;right=0;left=0;",GSDFDProcessBlock:"shape=swimlane;rounded=1;",
GSDFDProcessBlock2:"shape=rect;rounded=1;",GSDFDDataStoreBlock2:"shape=partialRectangle;right=0;",OrgBlock:"shape=rect;rounded=1;",VSMCustomerSupplierBlock:"shape=mxgraph.lean_mapping.outside_sources;",VSMDedicatedProcessBlock:"shape=mxgraph.lean_mapping.manufacturing_process;",VSMSharedProcessBlock:"shape=mxgraph.lean_mapping.manufacturing_process_shared;",VSMWorkcellBlock:"shape=mxgraph.lean_mapping.work_cell;",VSMInventoryBlock:"shape=mxgraph.lean_mapping.inventory_box;",VSMPhysicalPullBlock:"shape=mxgraph.lean_mapping.physical_pull;direction=south;",
VSMFIFOLaneBlock:"shape=mxgraph.lean_mapping.fifo_sequence_flow;fontStyle=0;fontSize=20",VSMExternalShipmentAirplaneBlock:"shape=mxgraph.lean_mapping.airplane_7;",VSMExternalShipmentForkliftBlock:"shape=mxgraph.lean_mapping.move_by_forklift;",VSMExternalShipmentTruckBlock:"shape=mxgraph.lean_mapping.truck_shipment;",VSMExternalShipmentBoatBlock:"shape=mxgraph.lean_mapping.boat_shipment;",VSMProductionControlBlock:"shape=mxgraph.lean_mapping.manufacturing_process;",VSMOtherInformationBlock:"shape=rect;rounded=1;",
VSMSequencedPullBallBlock:"shape=mxgraph.lean_mapping.sequenced_pull_ball;",VSMMRPERPBlock:"shape=mxgraph.lean_mapping.mrp_erp;whiteSpace=wrap;",VSMLoadLevelingBlock:"shape=mxgraph.lean_mapping.load_leveling;",VSMGoSeeBlock:"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;",VSMGoSeeProductionBlock:"shape=ellipse;",VSMVerbalInfoBlock:"shape=mxgraph.lean_mapping.verbal;",VSMKaizenBurstBlock:"shape=mxgraph.lean_mapping.kaizen_lightening_burst;",VSMOperatorBlock:"shape=mxgraph.lean_mapping.operator;flipV=1;",
VSMQualityProblemBlock:"shape=mxgraph.lean_mapping.quality_problem;",VSMProductionKanbanSingleBlock:"shape=mxgraph.lean_mapping.production_kanban;",VSMWithdrawalKanbanBlock:"shape=mxgraph.lean_mapping.withdrawal_kanban;",VSMSignalKanbanBlock:"shape=mxgraph.lean_mapping.signal_kanban;",VSMKanbanPostBlock:"shape=mxgraph.lean_mapping.kanban_post;",VSMShipmentArrow:"shape=singleArrow;arrowWidth=0.5;arrowSize=0.13;",VSMPushArrow:"shape=mxgraph.lean_mapping.push_arrow;",AWSElasticComputeCloudBlock2:"strokeColor=none;shape=mxgraph.aws3.ec2;",
AWSInstanceBlock2:"strokeColor=none;shape=mxgraph.aws3.instance;",AWSInstancesBlock2:"strokeColor=none;shape=mxgraph.aws3.instances;",AWSAMIBlock2:"strokeColor=none;shape=mxgraph.aws3.ami;",AWSDBonInstanceBlock2:"strokeColor=none;shape=mxgraph.aws3.db_on_instance;",AWSInstanceCloudWatchBlock2:"strokeColor=none;shape=mxgraph.aws3.instance_with_cloudwatch;",AWSElasticIPBlock2:"strokeColor=none;shape=mxgraph.aws3.elastic_ip;",AWSHDFSClusterBlock2:"strokeColor=none;shape=mxgraph.aws3.hdfs_cluster;",AWSAutoScalingBlock2:"strokeColor=none;shape=mxgraph.aws3.auto_scaling;",
AWSEC2OptimizedInstance2:"strokeColor=none;shape=mxgraph.aws3.optimized_instance;","AWSAmazonEC2(Spotinstance)":"strokeColor=none;shape=mxgraph.aws3.spot_instance;",AWSAmazonECR:"strokeColor=none;shape=mxgraph.aws3.ecr;",AWSAmazonECS:"strokeColor=none;shape=mxgraph.aws3.ecs;",AWSLambda2:"strokeColor=none;shape=mxgraph.aws3.lambda;",AWSElasticLoadBalancing:"strokeColor=none;shape=mxgraph.aws3.elastic_load_balancing;",AWSElasticLoadBlock2:"strokeColor=none;shape=mxgraph.aws3.classic_load_balancer;",
AWSDirectConnectBlock3:"strokeColor=none;shape=mxgraph.aws3.direct_connect;",AWSElasticNetworkBlock2:"strokeColor=none;shape=mxgraph.aws3.elastic_network_interface;",AWSRoute53Block2:"strokeColor=none;shape=mxgraph.aws3.route_53;",AWSHostedZoneBlock2:"strokeColor=none;shape=mxgraph.aws3.hosted_zone;fontColor=#FFFFFF;fontStyle=1;",AWSRouteTableBlock2:"strokeColor=none;shape=mxgraph.aws3.route_table;",AWSVPCBlock2:"strokeColor=none;shape=mxgraph.aws3.vpc;",AWSVPNConnectionBlock2:"strokeColor=none;shape=mxgraph.aws3.vpn_connection;",
AWSVPNGatewayBlock2:"strokeColor=none;shape=mxgraph.aws3.vpn_gateway;",AWSCustomerGatewayBlock2:"strokeColor=none;shape=mxgraph.aws3.customer_gateway;",AWSCustomerGatewayBlock3:"strokeColor=none;shape=mxgraph.aws3.customer_gateway;",AWSInternetGatewayBlock2:"strokeColor=none;shape=mxgraph.aws3.internet_gateway;",AWSRouterBlock2:"strokeColor=none;shape=mxgraph.aws3.router;",AWSRouterBlock3:"strokeColor=none;shape=mxgraph.aws3.router;","AWSAmazonVPC(endpoints)":"strokeColor=none;shape=mxgraph.aws3.endpoints;",
"AWSAmazonVPC(flowlogs)":"strokeColor=none;shape=mxgraph.aws3.flow_logs;","AWSAmazonVPC(VPCNATgateway)":"strokeColor=none;shape=mxgraph.aws3.vpc_nat_gateway;",AWSVPCPeering3:"strokeColor=none;shape=mxgraph.aws3.vpc_peering;",AWSSimpleStorageBlock2:"strokeColor=none;shape=mxgraph.aws3.s3;",AWSBucketBlock2:"strokeColor=none;shape=mxgraph.aws3.bucket;fontStyle=1;fontColor=#ffffff;",AWSBuckethWithObjectsBlock2:"strokeColor=none;shape=mxgraph.aws3.bucket_with_objects;",AWSObjectBlock2:"strokeColor=none;shape=mxgraph.aws3.object;fontStyle=1;fontColor=#ffffff;",
AWSImportExportBlock2:"strokeColor=none;shape=mxgraph.aws3.import_export;",AWSStorageGatewayBlock2:"strokeColor=none;shape=mxgraph.aws3.storage_gateway;",AWSElasticBlockStorageBlock2:"strokeColor=none;shape=mxgraph.aws3.volume;fontStyle=1;fontColor=#ffffff;",AWSVolumeBlock3:"strokeColor=none;shape=mxgraph.aws3.volume;fontStyle=1;fontColor=#ffffff;",AWSSnapshotBlock2:"strokeColor=none;shape=mxgraph.aws3.snapshot;fontStyle=1;fontColor=#ffffff;",AWSGlacierArchiveBlock3:"strokeColor=none;shape=mxgraph.aws3.archive;",
AWSGlacierVaultBlock3:"strokeColor=none;shape=mxgraph.aws3.vault;",AWSAmazonEFS:"strokeColor=none;shape=mxgraph.aws3.efs;",AWSGlacierBlock2:"strokeColor=none;shape=mxgraph.aws3.glacier;",AWSAWSImportExportSnowball:"strokeColor=none;shape=mxgraph.aws3.snowball;",AWSStorageGatewayCachedVolumn2:"strokeColor=none;shape=mxgraph.aws3.cached_volume;","AWSStorageGatewayNon-CachedVolumn2":"strokeColor=none;shape=mxgraph.aws3.non_cached_volume;",AWSStorageGatewayVirtualTapeLibrary2:"strokeColor=none;shape=mxgraph.aws3.virtual_tape_library;",
AWSCloudFrontBlock2:"strokeColor=none;shape=mxgraph.aws3.cloudfront;",AWSDownloadDistBlock2:"strokeColor=none;shape=mxgraph.aws3.download_distribution;",AWSStreamingBlock2:"strokeColor=none;shape=mxgraph.aws3.streaming_distribution;",AWSEdgeLocationBlock2:"strokeColor=none;shape=mxgraph.aws3.edge_location;",AWSItemBlock2:"strokeColor=none;shape=mxgraph.aws3.item;",AWSItemsBlock2:"strokeColor=none;shape=mxgraph.aws3.items;",AWSAttributeBlock2:"strokeColor=none;shape=mxgraph.aws3.attribute;",AWSAttributesBlock2:"strokeColor=none;shape=mxgraph.aws3.attributes;",
AWSRDBSBlock2:"strokeColor=none;shape=mxgraph.aws3.rds;",AWSRDSInstanceBlock2:"strokeColor=none;shape=mxgraph.aws3.rds_db_instance;",AWSRDSStandbyBlock2:"strokeColor=none;shape=mxgraph.aws3.rds_db_instance_standby_multi_az;",AWSRDSInstanceReadBlock2:"strokeColor=none;shape=mxgraph.aws3.rds_db_instance_read_replica;",AWSOracleDBBlock2:"strokeColor=none;shape=mxgraph.aws3.oracle_db_instance;",AWSMySQLDBBlock2:"strokeColor=none;shape=mxgraph.aws3.mysql_db_instance;",AWSDynamoDBBlock2:"strokeColor=none;shape=mxgraph.aws3.dynamo_db;",
AWSSimpleDatabaseBlock3:"strokeColor=none;shape=mxgraph.aws2.database.simpledb;",AWSSimpleDatabaseDomainBlock3:"strokeColor=none;shape=mxgraph.aws2.database.simpledb_domain;",AWSTableBlock2:"strokeColor=none;shape=mxgraph.aws3.table;",AWSAmazonRedShiftBlock3:"strokeColor=none;shape=mxgraph.aws3.redshift;",AWSElastiCacheNodeBlock2:"strokeColor=none;shape=mxgraph.aws3.cache_node;",AWSElastiCacheBlock2:"strokeColor=none;shape=mxgraph.aws3.elasticache;",AWSDynamoDBGlobalSecondaryIndexes2:"strokeColor=none;shape=mxgraph.aws3.global_secondary_index;",
AWSAmazonElastiCacheMemcache2:"strokeColor=none;shape=mxgraph.aws3.memcached;",AWSAmazonElastiCacheRedis2:"strokeColor=none;shape=mxgraph.aws3.redis;",AWSAmazonRDSMSSQLInstance2:"strokeColor=none;shape=mxgraph.aws3.ms_sql_instance_2;",AWSMSSQLDBBlock3:"strokeColor=none;shape=mxgraph.aws3.ms_sql_instance;",AWSAmazonRDSMySQLDBInstance2:"strokeColor=none;shape=mxgraph.aws3.mysql_db_instance_2;",AWSAmazonRDSOracleDBInstance2:"strokeColor=none;shape=mxgraph.aws3.oracle_db_instance_2;",AWSRDSReplicasetswithPIOP2:"strokeColor=none;shape=mxgraph.aws3.piop;",
AWSAmazonRDSPostgreSQL2:"strokeColor=none;shape=mxgraph.aws3.postgre_sql_instance;",AWSRDSMasterSQL2:"strokeColor=none;shape=mxgraph.aws3.sql_master;",AWSRDSSlaveSQL2:"strokeColor=none;shape=mxgraph.aws3.sql_slave;","AWSAmazonRedshift(densecomputenode)":"strokeColor=none;shape=mxgraph.aws3.dense_compute_node;","AWSAmazonRedshift(densestoragenode)":"strokeColor=none;shape=mxgraph.aws3.dense_storage_node;",AWSAWSDatabaseMigrationService:"strokeColor=none;shape=mxgraph.aws3.database_migration_service;",
AWSACM:"strokeColor=none;shape=mxgraph.aws3.certificate_manager;",AWSAmazonInspector:"strokeColor=none;shape=mxgraph.aws3.inspector;",AWSAWSCloudHSM:"strokeColor=none;shape=mxgraph.aws3.cloudhsm;",AWSDirectoryService2:"strokeColor=none;shape=mxgraph.aws3.directory_service;",AWSAWSKMS:"strokeColor=none;shape=mxgraph.aws3.kms;",AWSAWSWAF:"strokeColor=none;shape=mxgraph.aws3.waf;","AWSACM(certificate-manager)":"strokeColor=none;shape=mxgraph.aws3.certificate_manager_2;",AWSSESBlock2:"strokeColor=none;shape=mxgraph.aws3.ses;",
AWSEmailBlock2:"strokeColor=none;shape=mxgraph.aws3.email;",AWSSNSBlock2:"strokeColor=none;shape=mxgraph.aws3.sns;",AWSSQSBlock3:"strokeColor=none;shape=mxgraph.aws3.sqs;",AWSQueueBlock2:"strokeColor=none;shape=mxgraph.aws3.queue;",AWSMessageBlock2:"strokeColor=none;shape=mxgraph.aws3.message;",AWSDeciderBlock2:"strokeColor=none;shape=mxgraph.aws3.decider;",AWSSWFBlock2:"strokeColor=none;shape=mxgraph.aws3.swf;",AWSWorkerBlock2:"strokeColor=none;shape=mxgraph.aws3.worker;",AWSCloudSearchBlock2:"strokeColor=none;shape=mxgraph.aws3.cloudsearch;",
AWSCloudSearchMetadataBlock3:"strokeColor=none;shape=mxgraph.aws3.search_documents;",AWSElasticTranscoder3:"strokeColor=none;shape=mxgraph.aws3.elastic_transcoder;",AWSAmazonAPIGateway:"strokeColor=none;shape=mxgraph.aws3.api_gateway;",AWSAppStream2:"strokeColor=none;shape=mxgraph.aws3.appstream;",AWSCloudFormationBlock2:"strokeColor=none;shape=mxgraph.aws3.cloudformation;",AWSDataPipelineBlock3:"strokeColor=none;shape=mxgraph.aws3.data_pipeline;",AWSDataPipelineBlock2:"strokeColor=none;shape=mxgraph.aws3.data_pipeline;",
AWSTemplageBlock2:"strokeColor=none;shape=mxgraph.aws3.template;",AWSStackBlock2:"strokeColor=none;shape=mxgraph.aws3.stack_aws_cloudformation;",AWSBeanStockBlock2:"strokeColor=none;shape=mxgraph.aws3.elastic_beanstalk;",AWSApplicationBlock2:"strokeColor=none;shape=mxgraph.aws3.application;",AWSBeanstalkDeploymentBlock3:"strokeColor=none;shape=mxgraph.aws3.deployment;",AWSIAMBlock3:"strokeColor=none;shape=mxgraph.aws3.iam;",AWSIAMSTSBlock3:"strokeColor=none;shape=mxgraph.aws3.sts;",AWSIAMAddonBlock2:"strokeColor=none;shape=mxgraph.aws3.add_on;",
AWSCloudWatchBlock3:"strokeColor=none;shape=mxgraph.aws3.cloudwatch;",AWSCloudWatchAlarmBlock2:"strokeColor=none;shape=mxgraph.aws3.alarm;",AWSIAMSecurityTokenService2:"strokeColor=none;shape=mxgraph.aws3.sts_2;",AWSIAMDataEncryptionKey2:"strokeColor=none;shape=mxgraph.aws3.data_encryption_key;",AWSIAMEncryptedData2:"strokeColor=none;shape=mxgraph.aws3.encrypted_data;","AWSAWSIAM(long-termsecuritycredential)":"strokeColor=none;shape=mxgraph.aws3.long_term_security_credential;",AWSIAMMFAToken2:"strokeColor=none;shape=mxgraph.aws3.mfa_token;",
AWSIAMPermissions2:"strokeColor=none;shape=mxgraph.aws3.permissions_2;",AWSIAMRoles2:"strokeColor=none;shape=mxgraph.aws3.role;","AWSAWSIAM(temporarysecuritycredential)":"strokeColor=none;shape=mxgraph.aws3.long_term_security_credential;",AWSCloudTrail2:"strokeColor=none;shape=mxgraph.aws3.cloudtrail;",AWSConfig2:"strokeColor=none;shape=mxgraph.aws3.config;",AWSOpsWorksBlock3:"strokeColor=none;shape=mxgraph.aws3.opsworks;",AWSAWSServiceCatalog:"strokeColor=none;shape=mxgraph.aws3.service_catalog;",
AWSTrustedAdvisor2:"strokeColor=none;shape=mxgraph.aws3.trusted_advisor;",AWSOpsWorksApps2:"strokeColor=none;shape=mxgraph.aws3.apps;",AWSOpsWorksDeployments2:"strokeColor=none;shape=mxgraph.aws3.deployments;",AWSOpsWorksInstances2:"strokeColor=none;shape=mxgraph.aws3.instances_2;",AWSOpsWorksLayers2:"strokeColor=none;shape=mxgraph.aws3.layers;",AWSOpsWorksMonitoring2:"strokeColor=none;shape=mxgraph.aws3.monitoring;",AWSOpsWorksPermissions2:"strokeColor=none;shape=mxgraph.aws3.permissions;",AWSOpsWorksResources2:"strokeColor=none;shape=mxgraph.aws3.resources;",
AWSOpsWorksStack2:"strokeColor=none;shape=mxgraph.aws3.stack_aws_opsworks;",AWSMechanicalTurkBlock3:"strokeColor=none;shape=mxgraph.aws3.mechanical_turk;",AWSHumanITBlock2:"strokeColor=none;shape=mxgraph.aws3.human_intelligence_tasks_hit;",AWSAssignmentTaskBlock2:"strokeColor=none;shape=mxgraph.aws3.requester;",AWSWorkersBlock2:"strokeColor=none;shape=mxgraph.aws3.users;",AWSRequesterBlock2:"strokeColor=none;shape=mxgraph.aws3.assignment_task;",AWSAndroidBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#96BF3D;",
AWSiOSBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#CFCFCF;",AWSJavaBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#EE472A;",AWSJavaScript:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#205E00;",AWSNetBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#115193;",AWSNodeJSBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#8CC64F;",AWSPHPBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#5A69A4;",AWSPythonBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#FFD44F;",
AWSRubyBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#AE1F23;",AWSXamarin:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#4090D7;",AWSCLIBlock3:"strokeColor=none;shape=mxgraph.aws3.cli;fillColor=#444444;",AWSEclipseToolkitBlock3:"strokeColor=none;shape=mxgraph.aws3.toolkit_for_eclipse;fillColor=#342074;",AWSVisualStudioToolkitBlock3:"strokeColor=none;shape=mxgraph.aws3.toolkit_for_visual_studio;fillColor=#53B1CB;",AWSWindowsPowershellToolkitBlock3:"strokeColor=none;shape=mxgraph.aws3.toolkit_for_windows_powershell;fillColor=#737373;",
AWSAmazonElasticsearchService:"strokeColor=none;shape=mxgraph.aws3.elasticsearch_service;",AWSElasticMapReduceBlock2:"strokeColor=none;shape=mxgraph.aws3.emr;",AWSClusterBlock2:"strokeColor=none;shape=mxgraph.aws3.emr_cluster;",AWSEMREngine2:"strokeColor=none;shape=mxgraph.aws3.emr_engine;",AWSEMRMapRM3Engine2:"strokeColor=none;shape=mxgraph.aws3.emr_engine_mapr_m3;",AWSEMRMapRM5Engine2:"strokeColor=none;shape=mxgraph.aws3.emr_engine_mapr_m5;",AWSEMRMapRM7Engine2:"strokeColor=none;shape=mxgraph.aws3.emr_engine_mapr_m7;",
AWSKinesis2:"strokeColor=none;shape=mxgraph.aws3.kinesis;","AWSAmazonKinesis(AmazonKinesisAnalytics)":"strokeColor=none;shape=mxgraph.aws3.kinesis;",AWSKinesisEnabledApp2:"strokeColor=none;shape=mxgraph.aws3.kinesis_enabled_app;","AWSAmazonKinesis(AmazonKinesisFirehose)":"strokeColor=none;shape=mxgraph.aws3.kinesis_firehose;","AWSAmazonKinesis(AmazonKinesisStreams)":"strokeColor=none;shape=mxgraph.aws3.kinesis_streams;",AWSAmazonMachineLearning:"strokeColor=none;shape=mxgraph.aws3.machine_learning;",
AWSAmazonQuickSight:"strokeColor=none;shape=mxgraph.aws3.quicksight;",AWSCognito2:"strokeColor=none;shape=mxgraph.aws3.cognito;",AWSMobileAnalytics2:"strokeColor=none;shape=mxgraph.aws3.mobile_analytics;",AWSAWSDeviceFarm:"strokeColor=none;shape=mxgraph.aws3.device_farm;",AWSAWSMobileHub:"strokeColor=none;shape=mxgraph.aws3.mobile_hub;gradientColor=#AD688A;gradientDirection=east;",AWSTopicBlock2:"strokeColor=none;shape=mxgraph.aws3.topic_2;fontStyle=1;fontColor=#ffffff;verticalAlign=top;spacingTop=-5;",
AWSEmailNotificationBlock2:"strokeColor=none;shape=mxgraph.aws3.email_notification;",AWSHTTPNotificationBlock2:"strokeColor=none;shape=mxgraph.aws3.http_notification;",AWSAWSCodeCommit:"strokeColor=none;shape=mxgraph.aws3.codecommit;",AWSCodeDeploy2:"strokeColor=none;shape=mxgraph.aws3.codedeploy;",AWSAWSCodePipeline:"strokeColor=none;shape=mxgraph.aws3.codepipeline;",AWSWorkDocs2:"strokeColor=none;shape=mxgraph.aws3.workdocs;",AWSAmazonWorkMail:"strokeColor=none;shape=mxgraph.aws3.workmail;",AWSAmazonWorkSpaces2:"strokeColor=none;shape=mxgraph.aws3.workspaces;",
AWSAWSIoT:"strokeColor=none;shape=mxgraph.aws3.aws_iot;","AWSAWSIoT(action)":"strokeColor=none;shape=mxgraph.aws3.action;","AWSAWSIoT(actuator)":"strokeColor=none;shape=mxgraph.aws3.actuator;","AWSAWSIoT(certificate)":"strokeColor=none;shape=mxgraph.aws3.certificate;","AWSAWSIoT(desiredstate)":"strokeColor=none;shape=mxgraph.aws3.desired_state;","AWSAWSIoT(hardwareboard)":"strokeColor=none;shape=mxgraph.aws3.hardware_board;","AWSAWSIoT(HTTP2protocol)":"strokeColor=none;shape=mxgraph.aws3.http_2_protocol;",
"AWSAWSIoT(HTTPprotocol)":"strokeColor=none;shape=mxgraph.aws3.http_protocol;","AWSAWSIoT(MQTTprotocol)":"strokeColor=none;shape=mxgraph.aws3.mqtt_protocol;","AWSAWSIoT(policy)":"strokeColor=none;shape=mxgraph.aws3.policy;","AWSAWSIoT(reportedstate)":"strokeColor=none;shape=mxgraph.aws3.reported_state;","AWSAWSIoT(rule)":"strokeColor=none;shape=mxgraph.aws3.rule;","AWSAWSIoT(sensor)":"strokeColor=none;shape=mxgraph.aws3.sensor;","AWSAWSIoT(servo)":"strokeColor=none;shape=mxgraph.aws3.servo;","AWSAWSIoT(shadow)":"strokeColor=none;shape=mxgraph.aws3.shadow;",
"AWSAWSIoT(simulator)":"strokeColor=none;shape=mxgraph.aws3.simulator;","AWSAWSIoT(thingbank)":"strokeColor=none;shape=mxgraph.aws3.bank;","AWSAWSIoT(thingbicycle)":"strokeColor=none;shape=mxgraph.aws3.bicycle;","AWSAWSIoT(thingcamera)":"strokeColor=none;shape=mxgraph.aws3.camera;","AWSAWSIoT(thingcar)":"strokeColor=none;shape=mxgraph.aws3.car;","AWSAWSIoT(thingcart)":"strokeColor=none;shape=mxgraph.aws3.cart;","AWSAWSIoT(thingcoffeepot)":"strokeColor=none;shape=mxgraph.aws3.coffee_pot;","AWSAWSIoT(thingdoorlock)":"strokeColor=none;shape=mxgraph.aws3.door_lock;",
"AWSAWSIoT(thingfactory)":"strokeColor=none;shape=mxgraph.aws3.factory;","AWSAWSIoT(thinggeneric)":"strokeColor=none;shape=mxgraph.aws3.generic;","AWSAWSIoT(thinghouse)":"strokeColor=none;shape=mxgraph.aws3.house;","AWSAWSIoT(thinglightbulb)":"strokeColor=none;shape=mxgraph.aws3.lightbulb;","AWSAWSIoT(thingmedicalemergency)":"strokeColor=none;shape=mxgraph.aws3.medical_emergency;","AWSAWSIoT(thingpoliceemergency)":"strokeColor=none;shape=mxgraph.aws3.police_emergency;","AWSAWSIoT(thingthermostat)":"strokeColor=none;shape=mxgraph.aws3.thermostat;",
"AWSAWSIoT(thingtravel)":"strokeColor=none;shape=mxgraph.aws3.travel;","AWSAWSIoT(thingutility)":"strokeColor=none;shape=mxgraph.aws3.utility;","AWSAWSIoT(thingwindfarm)":"strokeColor=none;shape=mxgraph.aws3.windfarm;","AWSAWSIoT(topic)":"strokeColor=none;shape=mxgraph.aws3.topic;",AWSCloudBlock2:"strokeColor=none;shape=mxgraph.aws3.cloud;",AWSVPCloudBlock3:"strokeColor=none;shape=mxgraph.aws3.virtual_private_cloud;",AWSUserBlock2:"strokeColor=none;shape=mxgraph.aws3.user;",AWSUsersBlock2:"strokeColor=none;shape=mxgraph.aws3.users;",
AWSClientBlock2:"strokeColor=none;shape=mxgraph.aws3.management_console;",AWSMobileClientBlock2:"strokeColor=none;shape=mxgraph.aws3.mobile_client;",AWSGenericDatabaseBlock3:"strokeColor=none;shape=mxgraph.aws3.generic_database;",AWSDiskBlock3:"strokeColor=none;shape=mxgraph.aws3.disk;",AWSTapeStorageBlock3:"strokeColor=none;shape=mxgraph.aws3.tape_storage;",AWSMediaBlock2:"strokeColor=none;shape=mxgraph.aws3.multimedia;",AWSDataCenterBlock2:"strokeColor=none;shape=mxgraph.aws3.corporate_data_center;",
AWSServerBlock2:"strokeColor=none;shape=mxgraph.aws3.traditional_server;",AWSInternetBlock2:"strokeColor=none;shape=mxgraph.aws2.non-service_specific.internet;",AWSForumsBlock3:"strokeColor=none;shape=mxgraph.aws3.forums;",AWSManagementBlock2:"strokeColor=none;shape=mxgraph.aws3.management_console;",AWSAmazonElasticCacheNode2:"strokeColor=none;shape=mxgraph.aws3.cache_node;",AWSAmazonRedshiftDW1Cluster2:"strokeColor=none;shape=mxgraph.aws3.dense_compute_node;",AWSAmazonRedshiftDW2Cluster2:"strokeColor=none;shape=mxgraph.aws3.dense_storage_node;",
AWSAmazonRedshiftSSDFamilyCluster2:"strokeColor=none;shape=mxgraph.aws3.dense_storage_node;",AWSAmazonRoute53RouteTable2:"strokeColor=none;shape=mxgraph.aws3.route_table;",AWSSubnetBlock2:"strokeColor=none;shape=mxgraph.aws3.permissions;",ACAccessControlBlock:"strokeColor=none;shape=mxgraph.azure.access_control;",ACAPIAppsBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.api_app;",ACAPIManagementBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.api_management;",ACAppInsightsBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.application_insights;",
ACAppServicesBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.app_service;",ACAutoscalingBlock:"strokeColor=none;shape=mxgraph.azure.autoscale;",ACAzureActiveDirectoryBlock:"strokeColor=none;shape=mxgraph.azure.azure_active_directory;",ACAzurealertBlock:"strokeColor=none;shape=mxgraph.azure.azure_alert;",ACAzureAutomationBlock:"strokeColor=none;shape=mxgraph.azure.automation;",ACAzureBatchBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_batch;",ACAzureRedisBlock:"strokeColor=none;shape=mxgraph.azure.azure_cache;",
ACAzureFilesBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_files_service;",ACAzureloadbalancerBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_automatic_load_balancer;",ACAzureMarketplaceBlock:"strokeColor=none;shape=mxgraph.azure.azure_marketplace;",ACAzureRightManagementRMSBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_rights_management_rms;",ACAzureSDKBlock:"strokeColor=none;shape=mxgraph.azure.azure_sdk;",ACAzureSearchBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_search;",
ACAzureSQLdatabaseBlock:"strokeColor=none;shape=mxgraph.azure.sql_database_sql_azure;",ACAzuresubscriptionBlock:"strokeColor=none;shape=mxgraph.azure.azure_subscription;",ACAzureWebsitesBlock:"strokeColor=none;shape=mxgraph.azure.azure_website;",ACBackupServiceBlock:"strokeColor=none;shape=mxgraph.azure.backup_service;",ACBitbucketcodesourceBlock:"strokeColor=none;shape=mxgraph.azure.bitbucket_code_source;",ACBizTalkServicesBlock:"strokeColor=none;shape=mxgraph.azure.biztalk_services;",ACCloudServiceBlock:"strokeColor=none;shape=mxgraph.azure.cloud_service;",
ACCodePlexBlock:"strokeColor=none;shape=mxgraph.azure.codeplex_code_source;",ACContentDeliveryNetworkBlock:"strokeColor=none;shape=mxgraph.azure.content_delivery_network;",ACDataFactoryBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.data_factory;",ACDocumentDBBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.documentdb;",ACDropboxcodesourceBlock:"strokeColor=none;shape=mxgraph.azure.dropbox_code_source;",ACEventsHubBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.event_hubs;",ACExpressRouteBlock:"strokeColor=none;shape=mxgraph.azure.express_route;",
ACGitHubBlock:"strokeColor=none;shape=mxgraph.azure.github_code;",ACGitrepositoryBlock:"strokeColor=none;shape=mxgraph.azure.git_repository;",ACHDInsightBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.hdinsight;",ACHealthmonitoringBlock:"strokeColor=none;shape=mxgraph.azure.health_monitoring;",ACHealthyBlock:"strokeColor=none;shape=mxgraph.azure.healthy;",ACHybridConnectionBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.hybrid_connections;",ACBizTalkhybridconnectionBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.hybrid_connection_manager;",
ACKeyVaultBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.key_vault;",ACLogicAppBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.logic_app;",ACMachineLearningBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.machine_learning;",ACMediaServicesBlock:"strokeColor=none;shape=mxgraph.azure.media_service;",ACMicrosoftaccountBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.microsoft_account;",ACMicrosoftAzureBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.microsoft_azure;",ACMobileEngagementBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.mobile_engagement;",
ACMobileServicesBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.mobile_app;",ACMultiFactorAuthBlock:"strokeColor=none;shape=mxgraph.azure.multi_factor_authentication;",ACMySQLdatabaseBlock:"strokeColor=none;shape=mxgraph.azure.mysql_database;",ACNotificationHubsBlock:"strokeColor=none;shape=mxgraph.azure.notification_hub;",ACNotificationtopicBlock:"strokeColor=none;shape=mxgraph.azure.notification_topic;",ACOperationalInsightsBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.operational_insights;",
ACOSimageBlock:"strokeColor=none;shape=mxgraph.azure.operating_system_image;",ACRemoteAppBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.remoteapp;",ACrpdRemotingfileBlock:"strokeColor=none;shape=mxgraph.azure.rdp_remoting_file;",ACSchedulerBlock:"strokeColor=none;shape=mxgraph.azure.scheduler;",ACServiceBusBlock:"strokeColor=none;shape=mxgraph.azure.service_bus;",ACServiceBusQueueBlock:"strokeColor=none;shape=mxgraph.azure.service_bus_queues;",ACServiceBusRelayBlock:"strokeColor=none;shape=mxgraph.azure.service_bus_relay;",
ACServiceBusTopicBlock:"strokeColor=none;shape=mxgraph.azure.service_bus_topics_and_subscriptions;",ACServiceEndpointBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.service_endpoint;",ACServicepackageBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.service_package;",ACSiteRecoveryBlock:"strokeColor=none;shape=mxgraph.azure.hyper_v_recovery_manager;",ACSQLdatabasegenericBlock:"strokeColor=none;shape=mxgraph.azure.sql_database;",ACSQLdatasyncBlock:"strokeColor=none;shape=mxgraph.azure.sql_datasync;",
ACSQLreportingdeprecatedBlock:"strokeColor=none;shape=mxgraph.azure.sql_reporting;",ACStartuptaskBlock:"strokeColor=none;shape=mxgraph.azure.startup_task;",ACStorageAzureBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_storage;",ACStorageblobBlock:"strokeColor=none;shape=mxgraph.azure.storage_blob;",ACStoragequeueBlock:"strokeColor=none;shape=mxgraph.azure.storage_queue;",ACStoragetableBlock:"strokeColor=none;shape=mxgraph.azure.storage_table;",ACStorSimpleBlock:"strokeColor=none;shape=mxgraph.azure.storsimple;",
ACStreamAnalyticsBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.stream_analytics;",ACTrafficManagerBlock:"strokeColor=none;shape=mxgraph.azure.traffic_manager;",ACAlienBlock:"strokeColor=none;shape=mxgraph.azure.unidentified_code_object;",ACVHDBlock:"strokeColor=none;shape=mxgraph.azure.vhd;",ACVHDdatadiskBlock:"strokeColor=none;shape=mxgraph.azure.vhd_data_disk;",ACVirtualmachineBlock:"strokeColor=none;shape=mxgraph.azure.virtual_machine;",ACVirtualmachinecontainerBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.virtual_machine_container;",
ACVirtualnetworkBlock:"strokeColor=none;shape=mxgraph.azure.virtual_network;",ACVisualStudioOnlineBlock:"strokeColor=none;shape=mxgraph.azure.visual_studio_online;",ACVMsymbolonlyBlock:"strokeColor=none;shape=mxgraph.azure.virtual_machine_feature;",ACWebJobsBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.webjobs;",ACWebroleBlock:"strokeColor=none;shape=mxgraph.azure.web_role;",ACWebrolesBlock:"strokeColor=none;shape=mxgraph.azure.web_roles;",ACWorkaccountBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.work_account;",
ACWorkerroleBlock:"strokeColor=none;shape=mxgraph.azure.worker_role;",ACWorkerrolesBlock:"strokeColor=none;shape=mxgraph.azure.worker_roles;",ADNSBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_dns;",ACLoadBalancerBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_load_balancer_feature;",ACResourceGroupBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.resource_group;",ACVPNGatewayBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.vpn_gateway;",AEActiveDirectoryFSPBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.d;",
AEADFSBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.ad_fs;",AEAndroidPhoneBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.android_phone;",AEappblankfortextBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.application_blank;",AEAppGenericBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.app_generic;",AEAppserverBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.application_server;",AEBackuplocalBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.backup_local;",AEBackuponlineBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.backup_online;",
AECalendarBlock:"strokeColor=none;shape=mxgraph.mscae.general.calendar;",AECertificateBlock:"strokeColor=none;shape=mxgraph.azure.certificate;",AEClientAppBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.client_application;",AECloudBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.internet;",AEClusterserverBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.cluster_server;",AECodefileBlock:"strokeColor=none;shape=mxgraph.azure.code_file;",AEConnectorsBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.connectors;",
AEDatabasegenericBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.database_generic;",AEDatabaseserverBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.database_server;",AEDatabasesyncBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.database_synchronization;",AEDeviceBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.device;",AEDirectaccessBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.direct_access_feature;",AEDocumentBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.document;",
AEDomaincontrollerBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.domain_controller;",AEEnterpriseBuildingBlock:"strokeColor=none;shape=mxgraph.azure.enterprise;",AEFilegeneralBlock:"strokeColor=none;shape=mxgraph.azure.file;",AEFilterBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.filter;",AEFirewallBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.firewall;",AEFolderBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.folder;",AEGatewayBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.gateway;",
AEGenericcodeBlock:"strokeColor=none;shape=mxgraph.azure.code_file;",AEGraphBlock:"strokeColor=none;shape=mxgraph.mscae.general.graph;",AEHealthmonitoringBlock:"strokeColor=none;shape=mxgraph.azure.health_monitoring;",AEHealthyBlock:"strokeColor=none;shape=mxgraph.azure.healthy;",AEImportgenericBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.import_generic;",AEInternetBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.internet;",AEKeyboardBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.keyboard;",
AEKeypermissionsBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.key_permissions;",AELaptopcomputerBlock:"strokeColor=none;shape=mxgraph.azure.laptop;",AELoadbalancerBlock:"strokeColor=none;shape=mxgraph.azure.load_balancer_generic;",AELoadTestingBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.load_testing;",AELockprotectedBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.lock;",AELockunprotectedBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.lock_unlocked;",AEMaintenanceBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.maintenance;",
AEManagementconsoleBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.management_console;",AEMessageBlock:"strokeColor=none;shape=mxgraph.azure.message;",AEMonitorBlock:"strokeColor=none;shape=mxgraph.azure.computer;",AEMonitorrunningappsBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.monitor_running_apps;",AEMouseBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.mouse;",AENetworkcardBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.network_card;",AENotallowedBlock:"strokeColor=none;shape=mxgraph.mscae.general.not_allowed;",
AEPerformanceBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.performance;",AEPerformancemonitorBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.performance_monitor;",AEPhoneBlock:"strokeColor=none;shape=mxgraph.azure.mobile;",AEPlugandplayBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.plug_and_play;",AEPowershellscriptfileBlock:"strokeColor=none;shape=mxgraph.azure.powershell_file;",AEProtocolstackBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.protocol_stack;",AEQueuegeneralBlock:"strokeColor=none;shape=mxgraph.azure.queue_generic;",
AERMSconnectorBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.rms_connector;",AERouterBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.router;",AEScriptfileBlock:"strokeColor=none;shape=mxgraph.azure.script_file;",AESecurevirtualmachineBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.secure_virtual_machine;",AEServerbladeBlock:"strokeColor=none;shape=mxgraph.azure.server;",AEServerdirectoryBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.server_directory;",AEServerfarmBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.server_farm;",
AEServergenericBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.server_generic;",AEServerrackBlock:"strokeColor=none;shape=mxgraph.azure.server_rack;",AESettingsBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.settings;",AESharedfolderBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.shared_folder;",AESmartcardBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.smartcard;",AEStorageBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.storage;",AETableBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.table;",
AETabletBlock:"strokeColor=none;shape=mxgraph.azure.tablet;",AEToolBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.tool;",AETunnelBlock:"strokeColor=none;shape=mxgraph.mscae.general.tunnel;",AEUnhealthyBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.unhealthy;",AEUSBBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.usb;",AEUserBlock:"strokeColor=none;shape=mxgraph.azure.user;",AEVideoBlock:"strokeColor=none;shape=mxgraph.mscae.general.video;",AEVirtualmachineBlock:"strokeColor=none;shape=mxgraph.azure.virtual_machine_feature;",
AEWebBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.web;",AEWebserverBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.web_server;",AEWindowsserverBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.windows_server;",AEWirelessconnectionBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.wireless_connection;",AEWorkstationclientBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.workstation_client;",AEXMLwebserviceBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.xml_web_service;",
AGSAudioBlock:"strokeColor=none;shape=mxgraph.mscae.general.audio;",AGSBugBlock:"strokeColor=none;shape=mxgraph.mscae.general.bug;",AGSCablesettopTVboxBlock:"strokeColor=none;shape=mxgraph.mscae.general.cable_settop_tv_box;",AGSCalendarBlock:"strokeColor=none;shape=mxgraph.mscae.general.calendar;",AGSChartBlock:"strokeColor=none;shape=mxgraph.mscae.general.chart;",AGSCheckmarkSuccessBlock:"strokeColor=none;shape=mxgraph.mscae.general.checkmark;",AGSContinousCycleCircleBlock:"strokeColor=none;shape=mxgraph.mscae.general.continuous_cycle;",
AGSCrossoutFailureBlock:"strokeColor=none;shape=mxgraph.mscae.general.crossout;",AGSCutandpasteBlock:"strokeColor=none;shape=mxgraph.mscae.general.cut_and_paste;",AGSFolderBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.folder;",AGSGamecontrollerBlock:"strokeColor=none;shape=mxgraph.mscae.general.game_controller;",AGSGearsBlock:"strokeColor=none;shape=mxgraph.mscae.general.gears;",AGSGraphBlock:"strokeColor=none;shape=mxgraph.mscae.general.graph;",AGSLikeBlock:"strokeColor=none;shape=mxgraph.mscae.general.like;",
AGSNotallowedBlock:"strokeColor=none;shape=mxgraph.mscae.general.not_allowed;",AGSSliderbarhorizontalBlock:"strokeColor=none;shape=mxgraph.mscae.general.slider_bar_horizontal;",AGSSliderbarvertBlock:"strokeColor=none;shape=mxgraph.mscae.general.slider_bar_vertical;",AGSTasklistorBacklogBlock:"strokeColor=none;shape=mxgraph.mscae.general.task_list;",AGSTasksBlock:"strokeColor=none;shape=mxgraph.mscae.general.tasks;",AGSTunnelBlock:"strokeColor=none;shape=mxgraph.mscae.general.tunnel;",AGSUserBlock:"strokeColor=none;shape=mxgraph.azure.user;",
AGSVideoBlock:"strokeColor=none;shape=mxgraph.mscae.general.video;",Cisco_cisco_androgenous_person:"shape=mxgraph.cisco.people.androgenous_person;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_switch:"shape=mxgraph.cisco.switches.atm_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cloud:"shape=mxgraph.cisco.storage.cloud;strokeColor=#036897;fillColor=#ffffff;",Cisco_cisco_fileserver:"shape=mxgraph.cisco.servers.fileserver;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_firewall:"shape=mxgraph.cisco.security.firewall;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_generic_building:"shape=mxgraph.cisco.buildings.generic_building;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_laptop:"shape=mxgraph.cisco.computers_and_peripherals.laptop;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_lock:"shape=mxgraph.cisco.security.lock;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_microwebserver:"shape=mxgraph.cisco.servers.microwebserver;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pc:"shape=mxgraph.cisco.computers_and_peripherals.pc;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_pda:"shape=mxgraph.cisco.misc.pda;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_phone:"shape=mxgraph.cisco.modems_and_phones.hootphone;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_printer:"shape=mxgraph.cisco.computers_and_peripherals.printer;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_relational_database:"shape=mxgraph.cisco.storage.relational_database;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_router:"shape=mxgraph.cisco.routers.router;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_standing_man:"shape=mxgraph.cisco.people.standing_man;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_standing_woman:"shape=mxgraph.cisco.people.standing_woman;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ups:"shape=mxgraph.cisco.misc.ups;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_wireless_router:"shape=mxgraph.cisco.routers.wireless_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_100baset_hub:"shape=mxgraph.cisco.hubs_and_gateways.100baset_hub;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_10700:"shape=mxgraph.cisco.routers.10700;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_10GE_FCoE:"shape=mxgraph.cisco.controllers_and_modules.10ge_fcoe;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_15200:"shape=mxgraph.cisco.misc.15200;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_3174__desktop_:"shape=mxgraph.cisco.controllers_and_modules.3174_(desktop)_cluster_controller;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_3200_mobile_access_router:"shape=mxgraph.cisco.routers.mobile_access_router;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_3x74__floor_:"shape=mxgraph.cisco.controllers_and_modules.3x74_(floor)_cluster_controller;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_6700_series:"shape=mxgraph.cisco.misc.6700_series;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_7500ars__7513_:"shape=mxgraph.cisco.misc.7500ars_(7513);fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_accesspoint:"shape=mxgraph.cisco.misc.access_point;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ace:"shape=mxgraph.cisco.misc.ace;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_ACS:"shape=mxgraph.cisco.misc.acs;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_adm:"shape=mxgraph.cisco.misc.adm;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_antenna:"shape=mxgraph.cisco.wireless.antenna;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_asic_processor:"shape=mxgraph.cisco.misc.asic_processor;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ASR_1000_Series:"shape=mxgraph.cisco.misc.asr_1000_series;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ata:"shape=mxgraph.cisco.misc.ata;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_atm_3800:"shape=mxgraph.cisco.misc.atm_3800;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_fast_gigabit_etherswitch:"shape=mxgraph.cisco.switches.atm_fast_gigabit_etherswitch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_router:"shape=mxgraph.cisco.routers.atm_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_tag_switch_router:"shape=mxgraph.cisco.routers.atm_tag_switch_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_avs:"shape=mxgraph.cisco.misc.avs;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_AXP:"shape=mxgraph.cisco.misc.axp;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_bbsm:"shape=mxgraph.cisco.misc.bbsm;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_branch_office:"shape=mxgraph.cisco.buildings.branch_office;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_breakout_box:"shape=mxgraph.cisco.misc.breakout_box;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_bridge:"shape=mxgraph.cisco.misc.bridge;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_broadband_router:"shape=mxgraph.cisco.routers.broadcast_router;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_bts_10200:"shape=mxgraph.cisco.misc.bts_10200;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cable_modem:"shape=mxgraph.cisco.modems_and_phones.cable_modem;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_callmanager:"shape=mxgraph.cisco.misc.call_manager;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_car:"shape=mxgraph.cisco.misc.car;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_carrier_routing_system:"shape=mxgraph.cisco.misc.carrier_routing_system;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_cddi_fddi:"shape=mxgraph.cisco.misc.cddi_fddi;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cdm:"shape=mxgraph.cisco.misc.cdm;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cellular_phone:"shape=mxgraph.cisco.modems_and_phones.cell_phone;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_centri_firewall:"shape=mxgraph.cisco.security.centri_firewall;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_1000:"shape=mxgraph.cisco.misc.cisco_1000;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_cisco_asa_5500:"shape=mxgraph.cisco.misc.asa_5500;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_ca:"shape=mxgraph.cisco.misc.cisco_ca;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_file_engine:"shape=mxgraph.cisco.storage.cisco_file_engine;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_hub:"shape=mxgraph.cisco.hubs_and_gateways.cisco_hub;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ciscosecurity:"shape=mxgraph.cisco.security.cisco_security;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_cisco_unified_presence_server:"shape=mxgraph.cisco.servers.cisco_unified_presence_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_unityexpress:"shape=mxgraph.cisco.misc.cisco_unity_express;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ciscoworks:"shape=mxgraph.cisco.misc.cisco_works;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_class_4_5_switch:"shape=mxgraph.cisco.switches.class_4_5_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_communications_server:"shape=mxgraph.cisco.servers.communications_server;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_contact_center:"shape=mxgraph.cisco.misc.contact_center;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_engine__cache_director_:"shape=mxgraph.cisco.directors.content_engine_(cache_director);fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_service_router:"shape=mxgraph.cisco.routers.content_service_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_service_switch_1100:"shape=mxgraph.cisco.switches.content_service_switch_1100;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_content_switch_module:"shape=mxgraph.cisco.controllers_and_modules.content_switch_module;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_switch:"shape=mxgraph.cisco.switches.content_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_transformation_engine__cte_:"shape=mxgraph.cisco.misc.content_transformation_engine_(cte);fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cs_mars:"shape=mxgraph.cisco.misc.cs-mars;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_csm_s:"shape=mxgraph.cisco.misc.csm-s;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_csu_dsu:"shape=mxgraph.cisco.misc.csu_dsu;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_CUBE:"shape=mxgraph.cisco.misc.cube;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_detector:"shape=mxgraph.cisco.misc.detector;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_director_class_fibre_channel_director:"shape=mxgraph.cisco.directors.director-class_fibre_channel_director;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_directory_server:"shape=mxgraph.cisco.servers.directory_server;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_diskette:"shape=mxgraph.cisco.storage.diskette;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_distributed_director:"shape=mxgraph.cisco.directors.distributed_director;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_dot_dot:"shape=mxgraph.cisco.misc.dot-dot;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_dpt:"shape=mxgraph.cisco.misc.dpt;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_dslam:"shape=mxgraph.cisco.misc.dslam;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_dual_mode_ap:"shape=mxgraph.cisco.misc.dual_mode;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_dwdm_filter:"shape=mxgraph.cisco.misc.dwdm_filter;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_end_office:"shape=mxgraph.cisco.buildings.end_office;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_fax:"shape=mxgraph.cisco.modems_and_phones.fax;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_fc_storage:"shape=mxgraph.cisco.storage.fc_storage;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_fddi_ring:"shape=mxgraph.cisco.misc.fddi_ring;strokeColor=#036897;",Cisco_cisco_fibre_channel_disk_subsystem:"shape=mxgraph.cisco.storage.fibre_channel_disk_subsystem;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_fibre_channel_fabric_switch:"shape=mxgraph.cisco.switches.fibre_channel_fabric_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_file_cabinet:"shape=mxgraph.cisco.storage.file_cabinet;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_file_server:"shape=mxgraph.cisco.servers.file_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_firewall_service_module__fwsm_:"shape=mxgraph.cisco.controllers_and_modules.firewall_service_module_(fwsm);fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_front_end_processor:"shape=mxgraph.cisco.misc.front_end_processor;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_gatekeeper:"shape=mxgraph.cisco.security.gatekeeper;strokeColor=#036897;",Cisco_cisco_general_applicance:"shape=mxgraph.cisco.misc.general_appliance;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_generic_gateway:"shape=mxgraph.cisco.hubs_and_gateways.generic_gateway;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_generic_processor:"shape=mxgraph.cisco.misc.generic_processor;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_generic_softswitch:"shape=mxgraph.cisco.switches.generic_softswitch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_gigabit_switch_atm_tag_router:"shape=mxgraph.cisco.routers.gigabit_switch_atm_tag_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_government_building:"shape=mxgraph.cisco.buildings.government_building;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_Ground_terminal:"shape=mxgraph.cisco.wireless.ground_terminal;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_guard:"shape=mxgraph.cisco.security.guard;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_handheld:"shape=mxgraph.cisco.misc.handheld;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_hootphone:"shape=mxgraph.cisco.modems_and_phones.hootphone;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_host:"shape=mxgraph.cisco.servers.host;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_hp_mini:"shape=mxgraph.cisco.misc.hp_mini;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_h:"shape=mxgraph.cisco.misc.h_323;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_hub:"shape=mxgraph.cisco.hubs_and_gateways.hub;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_iad_router:"shape=mxgraph.cisco.routers.iad_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ibm_mainframe:"shape=mxgraph.cisco.computers_and_peripherals.ibm_mainframe;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ibm_mini_as400:"shape=mxgraph.cisco.computers_and_peripherals.ibm_mini_as400;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ibm_tower:"shape=mxgraph.cisco.computers_and_peripherals.ibm_tower;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_icm:"shape=mxgraph.cisco.misc.icm;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_ics:"shape=mxgraph.cisco.misc.ics;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_intelliswitch_stack:"shape=mxgraph.cisco.switches.intelliswitch_stack;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ios_firewall:"shape=mxgraph.cisco.security.ios_firewall;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ios_slb:"shape=mxgraph.cisco.misc.ios_slb;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ip_communicator:"shape=mxgraph.cisco.misc.ip_communicator;fillColor=#036897;strokeColor=#ffffff;",
(function(){function u(a){a=null!=a.Text?a.Text:null!=a.Value?a.Value:a.Lane_0;return null!=a&&null!=a.t?a.t:""}function q(a){return null!=a.Action?a.Action:a}function w(a,c){var d=q(c);if(null!=d){var b=y[d.Class];null!=b&&(a.style+=b);b=null!=d.Properties?d.Properties:d;if(null!=b){a.value=u(b);var g=0;if(null!=b.Text&&null!=b.Text.m)for(var h=b.Text.m,k=0;0==g&&k<h.length;){var e=h[k];"s"==e.n&&null!=e.v&&(g=1,e=e.v,e=Math.round(e/1.7),a.style+="fontSize="+e+";");k++}0==g&&(a.style+="fontSize=10;");
g=0;if(null!=b.Text&&null!=b.Text.m)for(h=b.Text.m,k=0;0==g&&k<h.length;)e=h[k],"c"==e.n&&null!=e.v&&(g=1,e=e.v,"#"!=e.charAt(0)&&(e="#"+e),e=e.substring(0,7),a.style+=mxConstants.STYLE_FONTCOLOR+"="+e+";"),k++;"ImageSearchBlock2"==d.Class&&(a.style+="image="+b.URL+";");a.style+=l(mxConstants.STYLE_STROKEWIDTH,b.LineWidth,"1");["DefaultTextBlock","UI2HotspotBlock"].includes(d.Class)||(a.style+=l(mxConstants.STYLE_STROKECOLOR,b.LineColor.substring(0,7),"#000000"));a.style+=l(mxConstants.STYLE_ALIGN,
b.TextAlign,"center");a.style+=l(mxConstants.STYLE_VERTICAL_ALIGN,b.TextVAlign,"middle");["UI2HotspotBlock"].includes(d.Class)||(a.style+=l(mxConstants.STYLE_OPACITY,b.Opacity,"100"));null!=b.Rotation&&(h=mxUtils.toDegree(parseFloat(b.Rotation)),k=["AEUSBBlock","AGSCutandpasteBlock","iOSDeviceiPadLandscape","iOSDeviceiPadProLandscape"],"AdvancedSwimLaneBlockRotated"==d.Class?(h+=90,a.geometry.rotate90()):k.includes(d.Class)&&(h-=90,a.geometry.rotate90(),a.geometry.rotate90(),a.geometry.rotate90()),
a.style+="rotation="+h+";");b.FlipX&&(a.style+="flipH=1;");b.FlipY&&(a.style+="flipV=1;");null!=b.Shadow&&(a.style+=mxConstants.STYLE_SHADOW+"=1;");"dashed"==b.StrokeStyle?a.style+="dashed=1;":"dotted"==b.StrokeStyle&&(a.style+="dashed=1;dashPattern=1 4;");null==b.FillColor||"AWSAndroidBlock3 AWSiOSBlock3 AWSJavaBlock3 AWSJavaScript AWSNetBlock3 AWSNodeJSBlock3 AWSPHPBlock3 AWSPythonBlock3 AWSRubyBlock3 AWSXamarin AWSCLIBlock3 AWSEclipseToolkitBlock3 AWSVisualStudioToolkitBlock3 AWSWindowsPowershellToolkitBlock3 DefaultTextBlock".split(" ").includes(d.Class)||
("object"===typeof b.FillColor?null!=b.FillColor.cs&&1<b.FillColor.cs.length&&(a.style+=l(mxConstants.STYLE_FILLCOLOR,b.FillColor.cs[0].c.substring(0,7)),a.style+=l(mxConstants.STYLE_GRADIENTCOLOR,b.FillColor.cs[1].c.substring(0,7))):"string"===typeof b.FillColor&&(a.style+=l(mxConstants.STYLE_FILLCOLOR,b.FillColor.substring(0,7),"#FFFFFF")));if(a.edge){a.style+="rounded=1;arcSize=5;";if("diagonal"!=b.Shape)if(null!=b.ElbowPoints)for(a.geometry.points=[],k=0;k<b.ElbowPoints.length;k++)a.geometry.points.push(new mxPoint(Math.round(.6*
b.ElbowPoints[k].x+0),Math.round(.6*b.ElbowPoints[k].y+0)));else"elbow"==b.Shape?a.style=null!=b.Endpoint1.Block&&null!=b.Endpoint1.Block?a.style+"edgeStyle=orthogonalEdgeStyle;":a.style+"edgeStyle=elbowEdgeStyle;":null!=b.Endpoint1.Block&&null!=b.Endpoint1.Block&&(a.style+="edgeStyle=orthogonalEdgeStyle;","curve"==b.Shape&&(a.style+="curved=1;"));m(a,b.Endpoint1,!0);m(a,b.Endpoint2,!1)}}}}function x(a){var c=q(a).Properties.BoundingBox;null!=a.Class&&"AWS"===a.Class.substring(0,3)&&(c.h-=20);v=new mxCell("",
new mxGeometry(Math.round(.6*c.x+0),Math.round(.6*c.y+0),Math.round(.6*c.w),Math.round(.6*c.h)),"html=1;whiteSpace=wrap;");v.vertex=!0;w(v,a);return v}function l(a,c,d,b){null!=c&&null!=b&&(c=b(c));return null!=c&&c!=d?a+"="+c+";":""}function m(a,c,d){null!=c&&(null!=c.LinkX&&null!=c.LinkY&&(a.style+=(d?"exitX":"entryX")+"="+c.LinkX+";"+(d?"exitY":"entryY")+"="+c.LinkY+";"+(d?"exitPerimeter":"entryPerimeter")+"=0;"),"Arrow"==c.Style?a.style+=(d?"startArrow":"endArrow")+"=block;":"Hollow Arrow"==c.Style?
(a.style+=(d?"startArrow":"endArrow")+"=block;",a.style+=(d?"startFill":"endFill")+"=0;"):"Open Arrow"==c.Style&&(a.style+=(d?"startArrow":"endArrow")+"=open;",a.style+=(d?"startSize":"endSize")+"=12;"))}var y={DefaultTextBlockNew:"text;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;",DefaultTextBlock:"text;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;",DefaultSquareBlock:"rounded=1;arcSize=5;",DefaultNoteBlock:"shape=note;size=15;",DefaultNoteBlockV2:"shape=note;size=15;",
HotspotBlock:"strokeColor=none;opacity=50;",ImageSearchBlock2:"shape=image;",ProcessBlock:"rounded=1;arcSize=5;",DecisionBlock:"rhombus;rounded=1;arcSize=5;",TerminatorBlock:"rounded=1;arcSize=50;",PredefinedProcessBlock:"shape=process;rounded=1;arcSize=5;",DocumentBlock:"shape=document;",MultiDocumentBlock:"shape=mxgraph.flowchart.multi-document;",ManualInputBlock:"shape=manualInput;size=15;rounded=1;arcSize=5;",PreparationBlock:"shape=hexagon;rounded=1;arcSize=5;",DataBlock:"shape=parallelogram;rounded=1;arcSize=5;",
DataBlockNew:"shape=parallelogram;rounded=1;arcSize=5;",DatabaseBlock:"shape=cylinder;",DirectAccessStorageBlock:"shape=mxgraph.flowchart.direct_data;",InternalStorageBlock:"shape=internalStorage;rounded=1;arcSize=5;dx=10;dy=10;",PaperTapeBlock:"shape=tape;size=0.2;",ManualOperationBlockNew:"shape=trapezoid;rounded=1;arcSize=5;flipV=1;",DelayBlock:"shape=delay;",StoredDataBlock:"shape=dataStorage;",MergeBlock:"triangle;direction=south;rounded=1;arcSize=5;",ConnectorBlock:"ellipse;",OrBlock:"shape=mxgraph.flowchart.summing_function;",
SummingJunctionBlock:"shape=mxgraph.flowchart.or;",DisplayBlock:"shape=display;",OffPageLinkBlock:"shape=offPageConnector;rounded=1;arcSize=5;",BraceNoteBlock:"shape=curlyBracket;rounded=1;",NoteBlock:"shape=mxgraph.flowchart.annotation_1;",AdvancedSwimLaneBlock:"swimlane;rounded=1;arcSize=5;",AdvancedSwimLaneBlockRotated:"swimlane;horizontal=0;rounded=1;arcSize=5;",RectangleContainerBlock:"fillColor=none;container=1;rounded=1;arcSize=5;",DiamondContainerBlock:"shape=rhombus;fillColor=none;container=1;",
RoundedRectangleContainerBlock:"rounded=1;fillColor=none;container=1;",CircleContainerBlock:"shape=ellipse;fillColor=none;container=1;",PillContainerBlock:"rounded=1;arcSize=50;fillColor=none;container=1;",IsoscelesTriangleBlock:"triangle;direction=north;",RightTriangleBlock:"shape=mxgraph.basic.orthogonal_triangle;",PentagonBlock:"shape=mxgraph.basic.pentagon;",HexagonBlock:"shape=hexagon;rounded=1;arcSize=5;",OctagonBlock:"shape=mxgraph.basic.octagon;",CrossBlock:"shape=cross;size=0.6;",CloudBlock:"ellipse;shape=cloud;",
HeartBlock:"shape=mxgraph.basic.heart;",RightArrowBlock:"shape=singleArrow;arrowWidth=0.5;arrowSize=0.3;",DoubleArrowBlock:"shape=doubleArrow;arrowWidth=0.5;arrowSize=0.3;",CalloutBlock:"shape=mxgraph.basic.rectangular_callout;",ShapeCircleBlock:"ellipse;",ShapePolyStarBlock:"shape=mxgraph.basic.star;",ShapeDiamondBlock:"rhombus;rounded=1;arcSize=5;",UI2HotspotBlock:"shape=rect;opacity=50;strokeColor=none;rounded=1;",AndroidIconCheck:"shape=mxgraph.ios7.misc.check;",AndroidIconCancel:"shape=mxgraph.atlassian.x;",
AndroidIconCollapse:"shape=mxgraph.ios7.misc.up;",AndroidIconExpand:"shape=mxgraph.ios7.misc.down;",AndroidIconNext:"shape=mxgraph.ios7.misc.right;",AndroidIconPrevious:"shape=mxgraph.ios7.misc.left;",AndroidIconRefresh:NaN,AndroidIconInformation:"shape=mxgraph.ios7.icons.info;",AndroidIconSearch:"shape=mxgraph.ios7.icons.looking_glass;",AndroidIconSettings:"shape=mxgraph.ios7.icons.volume;direction=south;",AndroidIconTrash:"shape=mxgraph.ios7.icons.trashcan;",AndroidIconEmail:"shape=mxgraph.mockup.misc.mail2;",
AndroidIconNew:"shape=mxgraph.ios7.misc.flagged;",iOSDeviceiPhoneSE:"shape=mxgraph.ios7.misc.iphone;",iOSDeviceiPhone6s:"shape=mxgraph.ios7.misc.iphone;",iOSDeviceiPhone6sPlus:"shape=mxgraph.ios7.misc.iphone;",iOSDeviceiPadPortrait:"shape=mxgraph.ios7.misc.ipad7inch;",iOSDeviceiPadLandscape:"shape=mxgraph.ios7.misc.ipad7inch;",iOSDeviceiPadProPortrait:"shape=mxgraph.ios7.misc.ipad7inch;",iOSDeviceiPadProLandscape:"shape=mxgraph.ios7.misc.ipad10inch;",iOSButton:"shape=rect;",iOSStepper:"shape=mxgraph.ios7.misc.adjust;",
iOSToggle:"shape=mxgraph.ios7ui.onOffButton;buttonState=on;strokeColor2=#aaaaaa;fillColor2=#ffffff;",iOSSlider:"shape=mxgraph.ios7ui.slider;barPos=20;strokeColor2=#a0a0a0;",iOSProgressBar:"shape=mxgraph.ios.iCloudProgressBar;barPos=20;",iOSPageControls:"shape=mxgraph.ios.iCloudProgressBar;barPos=20;",iOSUniversalKeyboard:"shape=mxgraph.ios.iKeybLett;",MindMapBlock:"shape=rect;rounded=1;",MindMapStadiumBlock:"shape=rect;rounded=1;arcSize=50;",MindMapCloud:"shape=cloud;",MindMapCircle:"shape=ellipse;",
MindMapIsoscelesTriangleBlock:"shape=triangle;direction=north;",MindMapDiamondBlock:"shape=rhombus;",MindMapPentagonBlock:"shape=mxgraph.basic.pentagon;",MindMapHexagonBlock:"shape=hexagon;",MindMapOctagonBlock:"shape=mxgraph.basic.octagon;",MindMapCrossBlock:"shape=mxgraph.basic.cross2;dx=20;",UMLClassBlock:"rounded=1;",UMLActiveClassBlock:"shape=mxgraph.flowchart.predefined_process;",UMLPackageBlock:"shape=folder;tabPosition=left;",UMLNoteBlock:"shape=note;size=15;",UMLTextBlock:"shape=text;strokeColor=none;fillColor=none;",
UMLActorBlock:"shape=umlActor;",UMLUseCaseBlock:"shape=ellipse;",UMLCircleContainerBlock:"shape=ellipse;container=1;",UMLRectangleContainerBlock:"rounded=1;container=1;",UMLOptionLoopBlock:"shape=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;",UMLStartBlock:"shape=ellipse;fillColor=#000000;",UMLStateBlock:"shape=rect;rounded=1;",UMLDecisionBlock:"shape=rhombus;rounded=1;",UMLHForkJoinBlock:"shape=rect;rounded=1;fillColor=#000000;",UMLVForkJoinBlock:"shape=rect;rounded=1;fillColor=#000000;",
UMLFlowFinalBlock:"shape=mxgraph.flowchart.or;",UMLHistoryStateBlock:"shape=ellipse;",UMLEndBlock:"shape=mxgraph.bpmn.shape;outline=end;symbol=terminate;",UMLObjectBlock:"shape=rect;rounded=1;",UMLSendSignalBlock:"shape=mxgraph.sysml.sendSigAct;",UMLReceiveSignalBlock:"shape=mxgraph.sysml.accEvent;flipH=1;",UMLAcceptTimeEventActionBlock:"shape=mxgraph.sysml.timeEvent;",UMLOffPageLinkBlock:"shape=mxgraph.sysml.sendSigAct;direction=south;",UMLActivationBlock:"shape=rect;rounded=1;",UMLDeletionBlock:"shape=mxgraph.sysml.x;strokeWidth=4;",
UMLSeqEntityBlock:"shape=mxgraph.electrical.radio.microphone_1;direction=north;",UMLComponentBlock:"shape=component;align=left;spacingLeft=36;",UMLNodeBlock:"shape=cube;size=12;flipH=1;",UMLComponentInterfaceBlock:"shape=ellipse;",UMLProvidedInterfaceBlock:"shape=lollipop;direction=south;",UMLRequiredInterfaceBlock:"shape=requires;direction=north;",UMLEntityBlock:"shape=rect;rounded=1;",UMLWeakEntityBlock:"shape=ext;double=1;rounded=1;",UMLAttributeBlock:"shape=ellipse;",UMLMultivaluedAttributeBlock:"shape=doubleEllipse;",
UMLRelationshipBlock:"shape=rhombus;rounded=1;",UMLWeakRelationshipBlock:"shape=rhombus;rounded=1;double=1;",DFDExternalEntityBlock2:"shape=rect;rounded=1;",YDMDFDProcessBlock:"shape=ellipse;",YDMDFDDataStoreBlock:"shape=partialRectangle;right=0;left=0;",GSDFDProcessBlock:"shape=swimlane;rounded=1;",GSDFDProcessBlock2:"shape=rect;rounded=1;",GSDFDDataStoreBlock2:"shape=partialRectangle;right=0;",OrgBlock:"shape=rect;rounded=1;",VSMCustomerSupplierBlock:"shape=mxgraph.lean_mapping.outside_sources;",
VSMDedicatedProcessBlock:"shape=mxgraph.lean_mapping.manufacturing_process;",VSMSharedProcessBlock:"shape=mxgraph.lean_mapping.manufacturing_process_shared;",VSMWorkcellBlock:"shape=mxgraph.lean_mapping.work_cell;",VSMInventoryBlock:"shape=mxgraph.lean_mapping.inventory_box;",VSMPhysicalPullBlock:"shape=mxgraph.lean_mapping.physical_pull;direction=south;",VSMFIFOLaneBlock:"shape=mxgraph.lean_mapping.fifo_sequence_flow;fontStyle=0;fontSize=20",VSMExternalShipmentAirplaneBlock:"shape=mxgraph.lean_mapping.airplane_7;",
VSMExternalShipmentForkliftBlock:"shape=mxgraph.lean_mapping.move_by_forklift;",VSMExternalShipmentTruckBlock:"shape=mxgraph.lean_mapping.truck_shipment;",VSMExternalShipmentBoatBlock:"shape=mxgraph.lean_mapping.boat_shipment;",VSMProductionControlBlock:"shape=mxgraph.lean_mapping.manufacturing_process;",VSMOtherInformationBlock:"shape=rect;rounded=1;",VSMSequencedPullBallBlock:"shape=mxgraph.lean_mapping.sequenced_pull_ball;",VSMMRPERPBlock:"shape=mxgraph.lean_mapping.mrp_erp;whiteSpace=wrap;",VSMLoadLevelingBlock:"shape=mxgraph.lean_mapping.load_leveling;",
VSMGoSeeBlock:"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;",VSMGoSeeProductionBlock:"shape=ellipse;",VSMVerbalInfoBlock:"shape=mxgraph.lean_mapping.verbal;",VSMKaizenBurstBlock:"shape=mxgraph.lean_mapping.kaizen_lightening_burst;",VSMOperatorBlock:"shape=mxgraph.lean_mapping.operator;flipV=1;",VSMQualityProblemBlock:"shape=mxgraph.lean_mapping.quality_problem;",VSMProductionKanbanSingleBlock:"shape=mxgraph.lean_mapping.production_kanban;",VSMWithdrawalKanbanBlock:"shape=mxgraph.lean_mapping.withdrawal_kanban;",
VSMSignalKanbanBlock:"shape=mxgraph.lean_mapping.signal_kanban;",VSMKanbanPostBlock:"shape=mxgraph.lean_mapping.kanban_post;",VSMShipmentArrow:"shape=singleArrow;arrowWidth=0.5;arrowSize=0.13;",VSMPushArrow:"shape=mxgraph.lean_mapping.push_arrow;",AWSElasticComputeCloudBlock2:"strokeColor=none;shape=mxgraph.aws3.ec2;",AWSInstanceBlock2:"strokeColor=none;shape=mxgraph.aws3.instance;",AWSInstancesBlock2:"strokeColor=none;shape=mxgraph.aws3.instances;",AWSAMIBlock2:"strokeColor=none;shape=mxgraph.aws3.ami;",
AWSDBonInstanceBlock2:"strokeColor=none;shape=mxgraph.aws3.db_on_instance;",AWSInstanceCloudWatchBlock2:"strokeColor=none;shape=mxgraph.aws3.instance_with_cloudwatch;",AWSElasticIPBlock2:"strokeColor=none;shape=mxgraph.aws3.elastic_ip;",AWSHDFSClusterBlock2:"strokeColor=none;shape=mxgraph.aws3.hdfs_cluster;",AWSAutoScalingBlock2:"strokeColor=none;shape=mxgraph.aws3.auto_scaling;",AWSEC2OptimizedInstance2:"strokeColor=none;shape=mxgraph.aws3.optimized_instance;","AWSAmazonEC2(Spotinstance)":"strokeColor=none;shape=mxgraph.aws3.spot_instance;",
AWSAmazonECR:"strokeColor=none;shape=mxgraph.aws3.ecr;",AWSAmazonECS:"strokeColor=none;shape=mxgraph.aws3.ecs;",AWSLambda2:"strokeColor=none;shape=mxgraph.aws3.lambda;",AWSElasticLoadBalancing:"strokeColor=none;shape=mxgraph.aws3.elastic_load_balancing;",AWSElasticLoadBlock2:"strokeColor=none;shape=mxgraph.aws3.classic_load_balancer;",AWSDirectConnectBlock3:"strokeColor=none;shape=mxgraph.aws3.direct_connect;",AWSElasticNetworkBlock2:"strokeColor=none;shape=mxgraph.aws3.elastic_network_interface;",
AWSRoute53Block2:"strokeColor=none;shape=mxgraph.aws3.route_53;",AWSHostedZoneBlock2:"strokeColor=none;shape=mxgraph.aws3.hosted_zone;fontColor=#FFFFFF;fontStyle=1;",AWSRouteTableBlock2:"strokeColor=none;shape=mxgraph.aws3.route_table;",AWSVPCBlock2:"strokeColor=none;shape=mxgraph.aws3.vpc;",AWSVPNConnectionBlock2:"strokeColor=none;shape=mxgraph.aws3.vpn_connection;",AWSVPNGatewayBlock2:"strokeColor=none;shape=mxgraph.aws3.vpn_gateway;",AWSCustomerGatewayBlock2:"strokeColor=none;shape=mxgraph.aws3.customer_gateway;",
AWSCustomerGatewayBlock3:"strokeColor=none;shape=mxgraph.aws3.customer_gateway;",AWSInternetGatewayBlock2:"strokeColor=none;shape=mxgraph.aws3.internet_gateway;",AWSRouterBlock2:"strokeColor=none;shape=mxgraph.aws3.router;",AWSRouterBlock3:"strokeColor=none;shape=mxgraph.aws3.router;","AWSAmazonVPC(endpoints)":"strokeColor=none;shape=mxgraph.aws3.endpoints;","AWSAmazonVPC(flowlogs)":"strokeColor=none;shape=mxgraph.aws3.flow_logs;","AWSAmazonVPC(VPCNATgateway)":"strokeColor=none;shape=mxgraph.aws3.vpc_nat_gateway;",
AWSVPCPeering3:"strokeColor=none;shape=mxgraph.aws3.vpc_peering;",AWSSimpleStorageBlock2:"strokeColor=none;shape=mxgraph.aws3.s3;",AWSBucketBlock2:"strokeColor=none;shape=mxgraph.aws3.bucket;fontStyle=1;fontColor=#ffffff;",AWSBuckethWithObjectsBlock2:"strokeColor=none;shape=mxgraph.aws3.bucket_with_objects;",AWSObjectBlock2:"strokeColor=none;shape=mxgraph.aws3.object;fontStyle=1;fontColor=#ffffff;",AWSImportExportBlock2:"strokeColor=none;shape=mxgraph.aws3.import_export;",AWSStorageGatewayBlock2:"strokeColor=none;shape=mxgraph.aws3.storage_gateway;",
AWSElasticBlockStorageBlock2:"strokeColor=none;shape=mxgraph.aws3.volume;fontStyle=1;fontColor=#ffffff;",AWSVolumeBlock3:"strokeColor=none;shape=mxgraph.aws3.volume;fontStyle=1;fontColor=#ffffff;",AWSSnapshotBlock2:"strokeColor=none;shape=mxgraph.aws3.snapshot;fontStyle=1;fontColor=#ffffff;",AWSGlacierArchiveBlock3:"strokeColor=none;shape=mxgraph.aws3.archive;",AWSGlacierVaultBlock3:"strokeColor=none;shape=mxgraph.aws3.vault;",AWSAmazonEFS:"strokeColor=none;shape=mxgraph.aws3.efs;",AWSGlacierBlock2:"strokeColor=none;shape=mxgraph.aws3.glacier;",
AWSAWSImportExportSnowball:"strokeColor=none;shape=mxgraph.aws3.snowball;",AWSStorageGatewayCachedVolumn2:"strokeColor=none;shape=mxgraph.aws3.cached_volume;","AWSStorageGatewayNon-CachedVolumn2":"strokeColor=none;shape=mxgraph.aws3.non_cached_volume;",AWSStorageGatewayVirtualTapeLibrary2:"strokeColor=none;shape=mxgraph.aws3.virtual_tape_library;",AWSCloudFrontBlock2:"strokeColor=none;shape=mxgraph.aws3.cloudfront;",AWSDownloadDistBlock2:"strokeColor=none;shape=mxgraph.aws3.download_distribution;",
AWSStreamingBlock2:"strokeColor=none;shape=mxgraph.aws3.streaming_distribution;",AWSEdgeLocationBlock2:"strokeColor=none;shape=mxgraph.aws3.edge_location;",AWSItemBlock2:"strokeColor=none;shape=mxgraph.aws3.item;",AWSItemsBlock2:"strokeColor=none;shape=mxgraph.aws3.items;",AWSAttributeBlock2:"strokeColor=none;shape=mxgraph.aws3.attribute;",AWSAttributesBlock2:"strokeColor=none;shape=mxgraph.aws3.attributes;",AWSRDBSBlock2:"strokeColor=none;shape=mxgraph.aws3.rds;",AWSRDSInstanceBlock2:"strokeColor=none;shape=mxgraph.aws3.rds_db_instance;",
AWSRDSStandbyBlock2:"strokeColor=none;shape=mxgraph.aws3.rds_db_instance_standby_multi_az;",AWSRDSInstanceReadBlock2:"strokeColor=none;shape=mxgraph.aws3.rds_db_instance_read_replica;",AWSOracleDBBlock2:"strokeColor=none;shape=mxgraph.aws3.oracle_db_instance;",AWSMySQLDBBlock2:"strokeColor=none;shape=mxgraph.aws3.mysql_db_instance;",AWSDynamoDBBlock2:"strokeColor=none;shape=mxgraph.aws3.dynamo_db;",AWSSimpleDatabaseBlock3:"strokeColor=none;shape=mxgraph.aws2.database.simpledb;",AWSSimpleDatabaseDomainBlock3:"strokeColor=none;shape=mxgraph.aws2.database.simpledb_domain;",
AWSTableBlock2:"strokeColor=none;shape=mxgraph.aws3.table;",AWSAmazonRedShiftBlock3:"strokeColor=none;shape=mxgraph.aws3.redshift;",AWSElastiCacheNodeBlock2:"strokeColor=none;shape=mxgraph.aws3.cache_node;",AWSElastiCacheBlock2:"strokeColor=none;shape=mxgraph.aws3.elasticache;",AWSDynamoDBGlobalSecondaryIndexes2:"strokeColor=none;shape=mxgraph.aws3.global_secondary_index;",AWSAmazonElastiCacheMemcache2:"strokeColor=none;shape=mxgraph.aws3.memcached;",AWSAmazonElastiCacheRedis2:"strokeColor=none;shape=mxgraph.aws3.redis;",
AWSAmazonRDSMSSQLInstance2:"strokeColor=none;shape=mxgraph.aws3.ms_sql_instance_2;",AWSMSSQLDBBlock3:"strokeColor=none;shape=mxgraph.aws3.ms_sql_instance;",AWSAmazonRDSMySQLDBInstance2:"strokeColor=none;shape=mxgraph.aws3.mysql_db_instance_2;",AWSAmazonRDSOracleDBInstance2:"strokeColor=none;shape=mxgraph.aws3.oracle_db_instance_2;",AWSRDSReplicasetswithPIOP2:"strokeColor=none;shape=mxgraph.aws3.piop;",AWSAmazonRDSPostgreSQL2:"strokeColor=none;shape=mxgraph.aws3.postgre_sql_instance;",AWSRDSMasterSQL2:"strokeColor=none;shape=mxgraph.aws3.sql_master;",
AWSRDSSlaveSQL2:"strokeColor=none;shape=mxgraph.aws3.sql_slave;","AWSAmazonRedshift(densecomputenode)":"strokeColor=none;shape=mxgraph.aws3.dense_compute_node;","AWSAmazonRedshift(densestoragenode)":"strokeColor=none;shape=mxgraph.aws3.dense_storage_node;",AWSAWSDatabaseMigrationService:"strokeColor=none;shape=mxgraph.aws3.database_migration_service;",AWSACM:"strokeColor=none;shape=mxgraph.aws3.certificate_manager;",AWSAmazonInspector:"strokeColor=none;shape=mxgraph.aws3.inspector;",AWSAWSCloudHSM:"strokeColor=none;shape=mxgraph.aws3.cloudhsm;",
AWSDirectoryService2:"strokeColor=none;shape=mxgraph.aws3.directory_service;",AWSAWSKMS:"strokeColor=none;shape=mxgraph.aws3.kms;",AWSAWSWAF:"strokeColor=none;shape=mxgraph.aws3.waf;","AWSACM(certificate-manager)":"strokeColor=none;shape=mxgraph.aws3.certificate_manager_2;",AWSSESBlock2:"strokeColor=none;shape=mxgraph.aws3.ses;",AWSEmailBlock2:"strokeColor=none;shape=mxgraph.aws3.email;",AWSSNSBlock2:"strokeColor=none;shape=mxgraph.aws3.sns;",AWSSQSBlock3:"strokeColor=none;shape=mxgraph.aws3.sqs;",
AWSQueueBlock2:"strokeColor=none;shape=mxgraph.aws3.queue;",AWSMessageBlock2:"strokeColor=none;shape=mxgraph.aws3.message;",AWSDeciderBlock2:"strokeColor=none;shape=mxgraph.aws3.decider;",AWSSWFBlock2:"strokeColor=none;shape=mxgraph.aws3.swf;",AWSWorkerBlock2:"strokeColor=none;shape=mxgraph.aws3.worker;",AWSCloudSearchBlock2:"strokeColor=none;shape=mxgraph.aws3.cloudsearch;",AWSCloudSearchMetadataBlock3:"strokeColor=none;shape=mxgraph.aws3.search_documents;",AWSElasticTranscoder3:"strokeColor=none;shape=mxgraph.aws3.elastic_transcoder;",
AWSAmazonAPIGateway:"strokeColor=none;shape=mxgraph.aws3.api_gateway;",AWSAppStream2:"strokeColor=none;shape=mxgraph.aws3.appstream;",AWSCloudFormationBlock2:"strokeColor=none;shape=mxgraph.aws3.cloudformation;",AWSDataPipelineBlock3:"strokeColor=none;shape=mxgraph.aws3.data_pipeline;",AWSDataPipelineBlock2:"strokeColor=none;shape=mxgraph.aws3.data_pipeline;",AWSTemplageBlock2:"strokeColor=none;shape=mxgraph.aws3.template;",AWSStackBlock2:"strokeColor=none;shape=mxgraph.aws3.stack_aws_cloudformation;",
AWSBeanStockBlock2:"strokeColor=none;shape=mxgraph.aws3.elastic_beanstalk;",AWSApplicationBlock2:"strokeColor=none;shape=mxgraph.aws3.application;",AWSBeanstalkDeploymentBlock3:"strokeColor=none;shape=mxgraph.aws3.deployment;",AWSIAMBlock3:"strokeColor=none;shape=mxgraph.aws3.iam;",AWSIAMSTSBlock3:"strokeColor=none;shape=mxgraph.aws3.sts;",AWSIAMAddonBlock2:"strokeColor=none;shape=mxgraph.aws3.add_on;",AWSCloudWatchBlock3:"strokeColor=none;shape=mxgraph.aws3.cloudwatch;",AWSCloudWatchAlarmBlock2:"strokeColor=none;shape=mxgraph.aws3.alarm;",
AWSIAMSecurityTokenService2:"strokeColor=none;shape=mxgraph.aws3.sts_2;",AWSIAMDataEncryptionKey2:"strokeColor=none;shape=mxgraph.aws3.data_encryption_key;",AWSIAMEncryptedData2:"strokeColor=none;shape=mxgraph.aws3.encrypted_data;","AWSAWSIAM(long-termsecuritycredential)":"strokeColor=none;shape=mxgraph.aws3.long_term_security_credential;",AWSIAMMFAToken2:"strokeColor=none;shape=mxgraph.aws3.mfa_token;",AWSIAMPermissions2:"strokeColor=none;shape=mxgraph.aws3.permissions_2;",AWSIAMRoles2:"strokeColor=none;shape=mxgraph.aws3.role;",
"AWSAWSIAM(temporarysecuritycredential)":"strokeColor=none;shape=mxgraph.aws3.long_term_security_credential;",AWSCloudTrail2:"strokeColor=none;shape=mxgraph.aws3.cloudtrail;",AWSConfig2:"strokeColor=none;shape=mxgraph.aws3.config;",AWSOpsWorksBlock3:"strokeColor=none;shape=mxgraph.aws3.opsworks;",AWSAWSServiceCatalog:"strokeColor=none;shape=mxgraph.aws3.service_catalog;",AWSTrustedAdvisor2:"strokeColor=none;shape=mxgraph.aws3.trusted_advisor;",AWSOpsWorksApps2:"strokeColor=none;shape=mxgraph.aws3.apps;",
AWSOpsWorksDeployments2:"strokeColor=none;shape=mxgraph.aws3.deployments;",AWSOpsWorksInstances2:"strokeColor=none;shape=mxgraph.aws3.instances_2;",AWSOpsWorksLayers2:"strokeColor=none;shape=mxgraph.aws3.layers;",AWSOpsWorksMonitoring2:"strokeColor=none;shape=mxgraph.aws3.monitoring;",AWSOpsWorksPermissions2:"strokeColor=none;shape=mxgraph.aws3.permissions;",AWSOpsWorksResources2:"strokeColor=none;shape=mxgraph.aws3.resources;",AWSOpsWorksStack2:"strokeColor=none;shape=mxgraph.aws3.stack_aws_opsworks;",
AWSMechanicalTurkBlock3:"strokeColor=none;shape=mxgraph.aws3.mechanical_turk;",AWSHumanITBlock2:"strokeColor=none;shape=mxgraph.aws3.human_intelligence_tasks_hit;",AWSAssignmentTaskBlock2:"strokeColor=none;shape=mxgraph.aws3.requester;",AWSWorkersBlock2:"strokeColor=none;shape=mxgraph.aws3.users;",AWSRequesterBlock2:"strokeColor=none;shape=mxgraph.aws3.assignment_task;",AWSAndroidBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#96BF3D;",AWSiOSBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#CFCFCF;",
AWSJavaBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#EE472A;",AWSJavaScript:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#205E00;",AWSNetBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#115193;",AWSNodeJSBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#8CC64F;",AWSPHPBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#5A69A4;",AWSPythonBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#FFD44F;",AWSRubyBlock3:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#AE1F23;",
AWSXamarin:"strokeColor=none;shape=mxgraph.aws3.android;fillColor=#4090D7;",AWSCLIBlock3:"strokeColor=none;shape=mxgraph.aws3.cli;fillColor=#444444;",AWSEclipseToolkitBlock3:"strokeColor=none;shape=mxgraph.aws3.toolkit_for_eclipse;fillColor=#342074;",AWSVisualStudioToolkitBlock3:"strokeColor=none;shape=mxgraph.aws3.toolkit_for_visual_studio;fillColor=#53B1CB;",AWSWindowsPowershellToolkitBlock3:"strokeColor=none;shape=mxgraph.aws3.toolkit_for_windows_powershell;fillColor=#737373;",AWSAmazonElasticsearchService:"strokeColor=none;shape=mxgraph.aws3.elasticsearch_service;",
AWSElasticMapReduceBlock2:"strokeColor=none;shape=mxgraph.aws3.emr;",AWSClusterBlock2:"strokeColor=none;shape=mxgraph.aws3.emr_cluster;",AWSEMREngine2:"strokeColor=none;shape=mxgraph.aws3.emr_engine;",AWSEMRMapRM3Engine2:"strokeColor=none;shape=mxgraph.aws3.emr_engine_mapr_m3;",AWSEMRMapRM5Engine2:"strokeColor=none;shape=mxgraph.aws3.emr_engine_mapr_m5;",AWSEMRMapRM7Engine2:"strokeColor=none;shape=mxgraph.aws3.emr_engine_mapr_m7;",AWSKinesis2:"strokeColor=none;shape=mxgraph.aws3.kinesis;","AWSAmazonKinesis(AmazonKinesisAnalytics)":"strokeColor=none;shape=mxgraph.aws3.kinesis;",
AWSKinesisEnabledApp2:"strokeColor=none;shape=mxgraph.aws3.kinesis_enabled_app;","AWSAmazonKinesis(AmazonKinesisFirehose)":"strokeColor=none;shape=mxgraph.aws3.kinesis_firehose;","AWSAmazonKinesis(AmazonKinesisStreams)":"strokeColor=none;shape=mxgraph.aws3.kinesis_streams;",AWSAmazonMachineLearning:"strokeColor=none;shape=mxgraph.aws3.machine_learning;",AWSAmazonQuickSight:"strokeColor=none;shape=mxgraph.aws3.quicksight;",AWSCognito2:"strokeColor=none;shape=mxgraph.aws3.cognito;",AWSMobileAnalytics2:"strokeColor=none;shape=mxgraph.aws3.mobile_analytics;",
AWSAWSDeviceFarm:"strokeColor=none;shape=mxgraph.aws3.device_farm;",AWSAWSMobileHub:"strokeColor=none;shape=mxgraph.aws3.mobile_hub;gradientColor=#AD688A;gradientDirection=east;",AWSTopicBlock2:"strokeColor=none;shape=mxgraph.aws3.topic_2;fontStyle=1;fontColor=#ffffff;verticalAlign=top;spacingTop=-5;",AWSEmailNotificationBlock2:"strokeColor=none;shape=mxgraph.aws3.email_notification;",AWSHTTPNotificationBlock2:"strokeColor=none;shape=mxgraph.aws3.http_notification;",AWSAWSCodeCommit:"strokeColor=none;shape=mxgraph.aws3.codecommit;",
AWSCodeDeploy2:"strokeColor=none;shape=mxgraph.aws3.codedeploy;",AWSAWSCodePipeline:"strokeColor=none;shape=mxgraph.aws3.codepipeline;",AWSWorkDocs2:"strokeColor=none;shape=mxgraph.aws3.workdocs;",AWSAmazonWorkMail:"strokeColor=none;shape=mxgraph.aws3.workmail;",AWSAmazonWorkSpaces2:"strokeColor=none;shape=mxgraph.aws3.workspaces;",AWSAWSIoT:"strokeColor=none;shape=mxgraph.aws3.aws_iot;","AWSAWSIoT(action)":"strokeColor=none;shape=mxgraph.aws3.action;","AWSAWSIoT(actuator)":"strokeColor=none;shape=mxgraph.aws3.actuator;",
"AWSAWSIoT(certificate)":"strokeColor=none;shape=mxgraph.aws3.certificate;","AWSAWSIoT(desiredstate)":"strokeColor=none;shape=mxgraph.aws3.desired_state;","AWSAWSIoT(hardwareboard)":"strokeColor=none;shape=mxgraph.aws3.hardware_board;","AWSAWSIoT(HTTP2protocol)":"strokeColor=none;shape=mxgraph.aws3.http_2_protocol;","AWSAWSIoT(HTTPprotocol)":"strokeColor=none;shape=mxgraph.aws3.http_protocol;","AWSAWSIoT(MQTTprotocol)":"strokeColor=none;shape=mxgraph.aws3.mqtt_protocol;","AWSAWSIoT(policy)":"strokeColor=none;shape=mxgraph.aws3.policy;",
"AWSAWSIoT(reportedstate)":"strokeColor=none;shape=mxgraph.aws3.reported_state;","AWSAWSIoT(rule)":"strokeColor=none;shape=mxgraph.aws3.rule;","AWSAWSIoT(sensor)":"strokeColor=none;shape=mxgraph.aws3.sensor;","AWSAWSIoT(servo)":"strokeColor=none;shape=mxgraph.aws3.servo;","AWSAWSIoT(shadow)":"strokeColor=none;shape=mxgraph.aws3.shadow;","AWSAWSIoT(simulator)":"strokeColor=none;shape=mxgraph.aws3.simulator;","AWSAWSIoT(thingbank)":"strokeColor=none;shape=mxgraph.aws3.bank;","AWSAWSIoT(thingbicycle)":"strokeColor=none;shape=mxgraph.aws3.bicycle;",
"AWSAWSIoT(thingcamera)":"strokeColor=none;shape=mxgraph.aws3.camera;","AWSAWSIoT(thingcar)":"strokeColor=none;shape=mxgraph.aws3.car;","AWSAWSIoT(thingcart)":"strokeColor=none;shape=mxgraph.aws3.cart;","AWSAWSIoT(thingcoffeepot)":"strokeColor=none;shape=mxgraph.aws3.coffee_pot;","AWSAWSIoT(thingdoorlock)":"strokeColor=none;shape=mxgraph.aws3.door_lock;","AWSAWSIoT(thingfactory)":"strokeColor=none;shape=mxgraph.aws3.factory;","AWSAWSIoT(thinggeneric)":"strokeColor=none;shape=mxgraph.aws3.generic;",
"AWSAWSIoT(thinghouse)":"strokeColor=none;shape=mxgraph.aws3.house;","AWSAWSIoT(thinglightbulb)":"strokeColor=none;shape=mxgraph.aws3.lightbulb;","AWSAWSIoT(thingmedicalemergency)":"strokeColor=none;shape=mxgraph.aws3.medical_emergency;","AWSAWSIoT(thingpoliceemergency)":"strokeColor=none;shape=mxgraph.aws3.police_emergency;","AWSAWSIoT(thingthermostat)":"strokeColor=none;shape=mxgraph.aws3.thermostat;","AWSAWSIoT(thingtravel)":"strokeColor=none;shape=mxgraph.aws3.travel;","AWSAWSIoT(thingutility)":"strokeColor=none;shape=mxgraph.aws3.utility;",
"AWSAWSIoT(thingwindfarm)":"strokeColor=none;shape=mxgraph.aws3.windfarm;","AWSAWSIoT(topic)":"strokeColor=none;shape=mxgraph.aws3.topic;",AWSCloudBlock2:"strokeColor=none;shape=mxgraph.aws3.cloud;",AWSVPCloudBlock3:"strokeColor=none;shape=mxgraph.aws3.virtual_private_cloud;",AWSUserBlock2:"strokeColor=none;shape=mxgraph.aws3.user;",AWSUsersBlock2:"strokeColor=none;shape=mxgraph.aws3.users;",AWSClientBlock2:"strokeColor=none;shape=mxgraph.aws3.management_console;",AWSMobileClientBlock2:"strokeColor=none;shape=mxgraph.aws3.mobile_client;",
AWSGenericDatabaseBlock3:"strokeColor=none;shape=mxgraph.aws3.generic_database;",AWSDiskBlock3:"strokeColor=none;shape=mxgraph.aws3.disk;",AWSTapeStorageBlock3:"strokeColor=none;shape=mxgraph.aws3.tape_storage;",AWSMediaBlock2:"strokeColor=none;shape=mxgraph.aws3.multimedia;",AWSDataCenterBlock2:"strokeColor=none;shape=mxgraph.aws3.corporate_data_center;",AWSServerBlock2:"strokeColor=none;shape=mxgraph.aws3.traditional_server;",AWSInternetBlock2:"strokeColor=none;shape=mxgraph.aws2.non-service_specific.internet;",
AWSForumsBlock3:"strokeColor=none;shape=mxgraph.aws3.forums;",AWSManagementBlock2:"strokeColor=none;shape=mxgraph.aws3.management_console;",AWSAmazonElasticCacheNode2:"strokeColor=none;shape=mxgraph.aws3.cache_node;",AWSAmazonRedshiftDW1Cluster2:"strokeColor=none;shape=mxgraph.aws3.dense_compute_node;",AWSAmazonRedshiftDW2Cluster2:"strokeColor=none;shape=mxgraph.aws3.dense_storage_node;",AWSAmazonRedshiftSSDFamilyCluster2:"strokeColor=none;shape=mxgraph.aws3.dense_storage_node;",AWSAmazonRoute53RouteTable2:"strokeColor=none;shape=mxgraph.aws3.route_table;",
AWSSubnetBlock2:"strokeColor=none;shape=mxgraph.aws3.permissions;",ACAccessControlBlock:"strokeColor=none;shape=mxgraph.azure.access_control;",ACAPIAppsBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.api_app;",ACAPIManagementBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.api_management;",ACAppInsightsBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.application_insights;",ACAppServicesBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.app_service;",ACAutoscalingBlock:"strokeColor=none;shape=mxgraph.azure.autoscale;",
ACAzureActiveDirectoryBlock:"strokeColor=none;shape=mxgraph.azure.azure_active_directory;",ACAzurealertBlock:"strokeColor=none;shape=mxgraph.azure.azure_alert;",ACAzureAutomationBlock:"strokeColor=none;shape=mxgraph.azure.automation;",ACAzureBatchBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_batch;",ACAzureRedisBlock:"strokeColor=none;shape=mxgraph.azure.azure_cache;",ACAzureFilesBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_files_service;",ACAzureloadbalancerBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_automatic_load_balancer;",
ACAzureMarketplaceBlock:"strokeColor=none;shape=mxgraph.azure.azure_marketplace;",ACAzureRightManagementRMSBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_rights_management_rms;",ACAzureSDKBlock:"strokeColor=none;shape=mxgraph.azure.azure_sdk;",ACAzureSearchBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_search;",ACAzureSQLdatabaseBlock:"strokeColor=none;shape=mxgraph.azure.sql_database_sql_azure;",ACAzuresubscriptionBlock:"strokeColor=none;shape=mxgraph.azure.azure_subscription;",
ACAzureWebsitesBlock:"strokeColor=none;shape=mxgraph.azure.azure_website;",ACBackupServiceBlock:"strokeColor=none;shape=mxgraph.azure.backup_service;",ACBitbucketcodesourceBlock:"strokeColor=none;shape=mxgraph.azure.bitbucket_code_source;",ACBizTalkServicesBlock:"strokeColor=none;shape=mxgraph.azure.biztalk_services;",ACCloudServiceBlock:"strokeColor=none;shape=mxgraph.azure.cloud_service;",ACCodePlexBlock:"strokeColor=none;shape=mxgraph.azure.codeplex_code_source;",ACContentDeliveryNetworkBlock:"strokeColor=none;shape=mxgraph.azure.content_delivery_network;",
ACDataFactoryBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.data_factory;",ACDocumentDBBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.documentdb;",ACDropboxcodesourceBlock:"strokeColor=none;shape=mxgraph.azure.dropbox_code_source;",ACEventsHubBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.event_hubs;",ACExpressRouteBlock:"strokeColor=none;shape=mxgraph.azure.express_route;",ACGitHubBlock:"strokeColor=none;shape=mxgraph.azure.github_code;",ACGitrepositoryBlock:"strokeColor=none;shape=mxgraph.azure.git_repository;",
ACHDInsightBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.hdinsight;",ACHealthmonitoringBlock:"strokeColor=none;shape=mxgraph.azure.health_monitoring;",ACHealthyBlock:"strokeColor=none;shape=mxgraph.azure.healthy;",ACHybridConnectionBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.hybrid_connections;",ACBizTalkhybridconnectionBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.hybrid_connection_manager;",ACKeyVaultBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.key_vault;",ACLogicAppBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.logic_app;",
ACMachineLearningBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.machine_learning;",ACMediaServicesBlock:"strokeColor=none;shape=mxgraph.azure.media_service;",ACMicrosoftaccountBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.microsoft_account;",ACMicrosoftAzureBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.microsoft_azure;",ACMobileEngagementBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.mobile_engagement;",ACMobileServicesBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.mobile_app;",ACMultiFactorAuthBlock:"strokeColor=none;shape=mxgraph.azure.multi_factor_authentication;",
ACMySQLdatabaseBlock:"strokeColor=none;shape=mxgraph.azure.mysql_database;",ACNotificationHubsBlock:"strokeColor=none;shape=mxgraph.azure.notification_hub;",ACNotificationtopicBlock:"strokeColor=none;shape=mxgraph.azure.notification_topic;",ACOperationalInsightsBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.operational_insights;",ACOSimageBlock:"strokeColor=none;shape=mxgraph.azure.operating_system_image;",ACRemoteAppBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.remoteapp;",ACrpdRemotingfileBlock:"strokeColor=none;shape=mxgraph.azure.rdp_remoting_file;",
ACSchedulerBlock:"strokeColor=none;shape=mxgraph.azure.scheduler;",ACServiceBusBlock:"strokeColor=none;shape=mxgraph.azure.service_bus;",ACServiceBusQueueBlock:"strokeColor=none;shape=mxgraph.azure.service_bus_queues;",ACServiceBusRelayBlock:"strokeColor=none;shape=mxgraph.azure.service_bus_relay;",ACServiceBusTopicBlock:"strokeColor=none;shape=mxgraph.azure.service_bus_topics_and_subscriptions;",ACServiceEndpointBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.service_endpoint;",ACServicepackageBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.service_package;",
ACSiteRecoveryBlock:"strokeColor=none;shape=mxgraph.azure.hyper_v_recovery_manager;",ACSQLdatabasegenericBlock:"strokeColor=none;shape=mxgraph.azure.sql_database;",ACSQLdatasyncBlock:"strokeColor=none;shape=mxgraph.azure.sql_datasync;",ACSQLreportingdeprecatedBlock:"strokeColor=none;shape=mxgraph.azure.sql_reporting;",ACStartuptaskBlock:"strokeColor=none;shape=mxgraph.azure.startup_task;",ACStorageAzureBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_storage;",ACStorageblobBlock:"strokeColor=none;shape=mxgraph.azure.storage_blob;",
ACStoragequeueBlock:"strokeColor=none;shape=mxgraph.azure.storage_queue;",ACStoragetableBlock:"strokeColor=none;shape=mxgraph.azure.storage_table;",ACStorSimpleBlock:"strokeColor=none;shape=mxgraph.azure.storsimple;",ACStreamAnalyticsBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.stream_analytics;",ACTrafficManagerBlock:"strokeColor=none;shape=mxgraph.azure.traffic_manager;",ACAlienBlock:"strokeColor=none;shape=mxgraph.azure.unidentified_code_object;",ACVHDBlock:"strokeColor=none;shape=mxgraph.azure.vhd;",
ACVHDdatadiskBlock:"strokeColor=none;shape=mxgraph.azure.vhd_data_disk;",ACVirtualmachineBlock:"strokeColor=none;shape=mxgraph.azure.virtual_machine;",ACVirtualmachinecontainerBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.virtual_machine_container;",ACVirtualnetworkBlock:"strokeColor=none;shape=mxgraph.azure.virtual_network;",ACVisualStudioOnlineBlock:"strokeColor=none;shape=mxgraph.azure.visual_studio_online;",ACVMsymbolonlyBlock:"strokeColor=none;shape=mxgraph.azure.virtual_machine_feature;",
ACWebJobsBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.webjobs;",ACWebroleBlock:"strokeColor=none;shape=mxgraph.azure.web_role;",ACWebrolesBlock:"strokeColor=none;shape=mxgraph.azure.web_roles;",ACWorkaccountBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.work_account;",ACWorkerroleBlock:"strokeColor=none;shape=mxgraph.azure.worker_role;",ACWorkerrolesBlock:"strokeColor=none;shape=mxgraph.azure.worker_roles;",ADNSBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_dns;",ACLoadBalancerBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.azure_load_balancer_feature;",
ACResourceGroupBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.resource_group;",ACVPNGatewayBlock:"strokeColor=none;shape=mxgraph.mscae.cloud.vpn_gateway;",AEActiveDirectoryFSPBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.d;",AEADFSBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.ad_fs;",AEAndroidPhoneBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.android_phone;",AEappblankfortextBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.application_blank;",AEAppGenericBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.app_generic;",
AEAppserverBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.application_server;",AEBackuplocalBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.backup_local;",AEBackuponlineBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.backup_online;",AECalendarBlock:"strokeColor=none;shape=mxgraph.mscae.general.calendar;",AECertificateBlock:"strokeColor=none;shape=mxgraph.azure.certificate;",AEClientAppBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.client_application;",AECloudBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.internet;",
AEClusterserverBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.cluster_server;",AECodefileBlock:"strokeColor=none;shape=mxgraph.azure.code_file;",AEConnectorsBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.connectors;",AEDatabasegenericBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.database_generic;",AEDatabaseserverBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.database_server;",AEDatabasesyncBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.database_synchronization;",
AEDeviceBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.device;",AEDirectaccessBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.direct_access_feature;",AEDocumentBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.document;",AEDomaincontrollerBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.domain_controller;",AEEnterpriseBuildingBlock:"strokeColor=none;shape=mxgraph.azure.enterprise;",AEFilegeneralBlock:"strokeColor=none;shape=mxgraph.azure.file;",AEFilterBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.filter;",
AEFirewallBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.firewall;",AEFolderBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.folder;",AEGatewayBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.gateway;",AEGenericcodeBlock:"strokeColor=none;shape=mxgraph.azure.code_file;",AEGraphBlock:"strokeColor=none;shape=mxgraph.mscae.general.graph;",AEHealthmonitoringBlock:"strokeColor=none;shape=mxgraph.azure.health_monitoring;",AEHealthyBlock:"strokeColor=none;shape=mxgraph.azure.healthy;",
AEImportgenericBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.import_generic;",AEInternetBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.internet;",AEKeyboardBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.keyboard;",AEKeypermissionsBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.key_permissions;",AELaptopcomputerBlock:"strokeColor=none;shape=mxgraph.azure.laptop;",AELoadbalancerBlock:"strokeColor=none;shape=mxgraph.azure.load_balancer_generic;",AELoadTestingBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.load_testing;",
AELockprotectedBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.lock;",AELockunprotectedBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.lock_unlocked;",AEMaintenanceBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.maintenance;",AEManagementconsoleBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.management_console;",AEMessageBlock:"strokeColor=none;shape=mxgraph.azure.message;",AEMonitorBlock:"strokeColor=none;shape=mxgraph.azure.computer;",AEMonitorrunningappsBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.monitor_running_apps;",
AEMouseBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.mouse;",AENetworkcardBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.network_card;",AENotallowedBlock:"strokeColor=none;shape=mxgraph.mscae.general.not_allowed;",AEPerformanceBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.performance;",AEPerformancemonitorBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.performance_monitor;",AEPhoneBlock:"strokeColor=none;shape=mxgraph.azure.mobile;",AEPlugandplayBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.plug_and_play;",
AEPowershellscriptfileBlock:"strokeColor=none;shape=mxgraph.azure.powershell_file;",AEProtocolstackBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.protocol_stack;",AEQueuegeneralBlock:"strokeColor=none;shape=mxgraph.azure.queue_generic;",AERMSconnectorBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.rms_connector;",AERouterBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.router;",AEScriptfileBlock:"strokeColor=none;shape=mxgraph.azure.script_file;",AESecurevirtualmachineBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.secure_virtual_machine;",
AEServerbladeBlock:"strokeColor=none;shape=mxgraph.azure.server;",AEServerdirectoryBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.server_directory;",AEServerfarmBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.server_farm;",AEServergenericBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.server_generic;",AEServerrackBlock:"strokeColor=none;shape=mxgraph.azure.server_rack;",AESettingsBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.settings;",AESharedfolderBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.shared_folder;",
AESmartcardBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.smartcard;",AEStorageBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.storage;",AETableBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.table;",AETabletBlock:"strokeColor=none;shape=mxgraph.azure.tablet;",AEToolBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.tool;",AETunnelBlock:"strokeColor=none;shape=mxgraph.mscae.general.tunnel;",AEUnhealthyBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.unhealthy;",AEUSBBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.usb;",
AEUserBlock:"strokeColor=none;shape=mxgraph.azure.user;",AEVideoBlock:"strokeColor=none;shape=mxgraph.mscae.general.video;",AEVirtualmachineBlock:"strokeColor=none;shape=mxgraph.azure.virtual_machine_feature;",AEWebBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.web;",AEWebserverBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.web_server;",AEWindowsserverBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.windows_server;",AEWirelessconnectionBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.wireless_connection;",
AEWorkstationclientBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.workstation_client;",AEXMLwebserviceBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.xml_web_service;",AGSAudioBlock:"strokeColor=none;shape=mxgraph.mscae.general.audio;",AGSBugBlock:"strokeColor=none;shape=mxgraph.mscae.general.bug;",AGSCablesettopTVboxBlock:"strokeColor=none;shape=mxgraph.mscae.general.cable_settop_tv_box;",AGSCalendarBlock:"strokeColor=none;shape=mxgraph.mscae.general.calendar;",AGSChartBlock:"strokeColor=none;shape=mxgraph.mscae.general.chart;",
AGSCheckmarkSuccessBlock:"strokeColor=none;shape=mxgraph.mscae.general.checkmark;",AGSContinousCycleCircleBlock:"strokeColor=none;shape=mxgraph.mscae.general.continuous_cycle;",AGSCrossoutFailureBlock:"strokeColor=none;shape=mxgraph.mscae.general.crossout;",AGSCutandpasteBlock:"strokeColor=none;shape=mxgraph.mscae.general.cut_and_paste;",AGSFolderBlock:"strokeColor=none;shape=mxgraph.mscae.enterprise.folder;",AGSGamecontrollerBlock:"strokeColor=none;shape=mxgraph.mscae.general.game_controller;",AGSGearsBlock:"strokeColor=none;shape=mxgraph.mscae.general.gears;",
AGSGraphBlock:"strokeColor=none;shape=mxgraph.mscae.general.graph;",AGSLikeBlock:"strokeColor=none;shape=mxgraph.mscae.general.like;",AGSNotallowedBlock:"strokeColor=none;shape=mxgraph.mscae.general.not_allowed;",AGSSliderbarhorizontalBlock:"strokeColor=none;shape=mxgraph.mscae.general.slider_bar_horizontal;",AGSSliderbarvertBlock:"strokeColor=none;shape=mxgraph.mscae.general.slider_bar_vertical;",AGSTasklistorBacklogBlock:"strokeColor=none;shape=mxgraph.mscae.general.task_list;",AGSTasksBlock:"strokeColor=none;shape=mxgraph.mscae.general.tasks;",
AGSTunnelBlock:"strokeColor=none;shape=mxgraph.mscae.general.tunnel;",AGSUserBlock:"strokeColor=none;shape=mxgraph.azure.user;",AGSVideoBlock:"strokeColor=none;shape=mxgraph.mscae.general.video;",Cisco_cisco_androgenous_person:"shape=mxgraph.cisco.people.androgenous_person;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_switch:"shape=mxgraph.cisco.switches.atm_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cloud:"shape=mxgraph.cisco.storage.cloud;strokeColor=#036897;fillColor=#ffffff;",
Cisco_cisco_fileserver:"shape=mxgraph.cisco.servers.fileserver;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_firewall:"shape=mxgraph.cisco.security.firewall;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_generic_building:"shape=mxgraph.cisco.buildings.generic_building;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_laptop:"shape=mxgraph.cisco.computers_and_peripherals.laptop;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_lock:"shape=mxgraph.cisco.security.lock;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_microwebserver:"shape=mxgraph.cisco.servers.microwebserver;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pc:"shape=mxgraph.cisco.computers_and_peripherals.pc;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pda:"shape=mxgraph.cisco.misc.pda;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_phone:"shape=mxgraph.cisco.modems_and_phones.hootphone;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_printer:"shape=mxgraph.cisco.computers_and_peripherals.printer;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_relational_database:"shape=mxgraph.cisco.storage.relational_database;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_router:"shape=mxgraph.cisco.routers.router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_standing_man:"shape=mxgraph.cisco.people.standing_man;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_standing_woman:"shape=mxgraph.cisco.people.standing_woman;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ups:"shape=mxgraph.cisco.misc.ups;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_wireless_router:"shape=mxgraph.cisco.routers.wireless_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_100baset_hub:"shape=mxgraph.cisco.hubs_and_gateways.100baset_hub;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_10700:"shape=mxgraph.cisco.routers.10700;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_10GE_FCoE:"shape=mxgraph.cisco.controllers_and_modules.10ge_fcoe;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_15200:"shape=mxgraph.cisco.misc.15200;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_3174__desktop_:"shape=mxgraph.cisco.controllers_and_modules.3174_(desktop)_cluster_controller;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_3200_mobile_access_router:"shape=mxgraph.cisco.routers.mobile_access_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_3x74__floor_:"shape=mxgraph.cisco.controllers_and_modules.3x74_(floor)_cluster_controller;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_6700_series:"shape=mxgraph.cisco.misc.6700_series;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_7500ars__7513_:"shape=mxgraph.cisco.misc.7500ars_(7513);fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_accesspoint:"shape=mxgraph.cisco.misc.access_point;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ace:"shape=mxgraph.cisco.misc.ace;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ACS:"shape=mxgraph.cisco.misc.acs;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_adm:"shape=mxgraph.cisco.misc.adm;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_antenna:"shape=mxgraph.cisco.wireless.antenna;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_asic_processor:"shape=mxgraph.cisco.misc.asic_processor;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ASR_1000_Series:"shape=mxgraph.cisco.misc.asr_1000_series;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ata:"shape=mxgraph.cisco.misc.ata;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_3800:"shape=mxgraph.cisco.misc.atm_3800;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_fast_gigabit_etherswitch:"shape=mxgraph.cisco.switches.atm_fast_gigabit_etherswitch;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_atm_router:"shape=mxgraph.cisco.routers.atm_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_tag_switch_router:"shape=mxgraph.cisco.routers.atm_tag_switch_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_avs:"shape=mxgraph.cisco.misc.avs;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_AXP:"shape=mxgraph.cisco.misc.axp;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_bbsm:"shape=mxgraph.cisco.misc.bbsm;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_branch_office:"shape=mxgraph.cisco.buildings.branch_office;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_breakout_box:"shape=mxgraph.cisco.misc.breakout_box;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_bridge:"shape=mxgraph.cisco.misc.bridge;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_broadband_router:"shape=mxgraph.cisco.routers.broadcast_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_bts_10200:"shape=mxgraph.cisco.misc.bts_10200;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cable_modem:"shape=mxgraph.cisco.modems_and_phones.cable_modem;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_callmanager:"shape=mxgraph.cisco.misc.call_manager;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_car:"shape=mxgraph.cisco.misc.car;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_carrier_routing_system:"shape=mxgraph.cisco.misc.carrier_routing_system;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cddi_fddi:"shape=mxgraph.cisco.misc.cddi_fddi;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cdm:"shape=mxgraph.cisco.misc.cdm;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cellular_phone:"shape=mxgraph.cisco.modems_and_phones.cell_phone;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_centri_firewall:"shape=mxgraph.cisco.security.centri_firewall;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_1000:"shape=mxgraph.cisco.misc.cisco_1000;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_asa_5500:"shape=mxgraph.cisco.misc.asa_5500;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_ca:"shape=mxgraph.cisco.misc.cisco_ca;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_file_engine:"shape=mxgraph.cisco.storage.cisco_file_engine;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_cisco_hub:"shape=mxgraph.cisco.hubs_and_gateways.cisco_hub;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ciscosecurity:"shape=mxgraph.cisco.security.cisco_security;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_unified_presence_server:"shape=mxgraph.cisco.servers.cisco_unified_presence_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_unityexpress:"shape=mxgraph.cisco.misc.cisco_unity_express;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ciscoworks:"shape=mxgraph.cisco.misc.cisco_works;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_class_4_5_switch:"shape=mxgraph.cisco.switches.class_4_5_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_communications_server:"shape=mxgraph.cisco.servers.communications_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_contact_center:"shape=mxgraph.cisco.misc.contact_center;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_engine__cache_director_:"shape=mxgraph.cisco.directors.content_engine_(cache_director);fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_service_router:"shape=mxgraph.cisco.routers.content_service_router;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_content_service_switch_1100:"shape=mxgraph.cisco.switches.content_service_switch_1100;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_switch_module:"shape=mxgraph.cisco.controllers_and_modules.content_switch_module;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_switch:"shape=mxgraph.cisco.switches.content_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_transformation_engine__cte_:"shape=mxgraph.cisco.misc.content_transformation_engine_(cte);fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_cs_mars:"shape=mxgraph.cisco.misc.cs-mars;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_csm_s:"shape=mxgraph.cisco.misc.csm-s;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_csu_dsu:"shape=mxgraph.cisco.misc.csu_dsu;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_CUBE:"shape=mxgraph.cisco.misc.cube;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_detector:"shape=mxgraph.cisco.misc.detector;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_director_class_fibre_channel_director:"shape=mxgraph.cisco.directors.director-class_fibre_channel_director;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_directory_server:"shape=mxgraph.cisco.servers.directory_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_diskette:"shape=mxgraph.cisco.storage.diskette;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_distributed_director:"shape=mxgraph.cisco.directors.distributed_director;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_dot_dot:"shape=mxgraph.cisco.misc.dot-dot;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_dpt:"shape=mxgraph.cisco.misc.dpt;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_dslam:"shape=mxgraph.cisco.misc.dslam;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_dual_mode_ap:"shape=mxgraph.cisco.misc.dual_mode;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_dwdm_filter:"shape=mxgraph.cisco.misc.dwdm_filter;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_end_office:"shape=mxgraph.cisco.buildings.end_office;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_fax:"shape=mxgraph.cisco.modems_and_phones.fax;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_fc_storage:"shape=mxgraph.cisco.storage.fc_storage;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_fddi_ring:"shape=mxgraph.cisco.misc.fddi_ring;strokeColor=#036897;",Cisco_cisco_fibre_channel_disk_subsystem:"shape=mxgraph.cisco.storage.fibre_channel_disk_subsystem;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_fibre_channel_fabric_switch:"shape=mxgraph.cisco.switches.fibre_channel_fabric_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_file_cabinet:"shape=mxgraph.cisco.storage.file_cabinet;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_file_server:"shape=mxgraph.cisco.servers.file_server;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_firewall_service_module__fwsm_:"shape=mxgraph.cisco.controllers_and_modules.firewall_service_module_(fwsm);fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_front_end_processor:"shape=mxgraph.cisco.misc.front_end_processor;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_gatekeeper:"shape=mxgraph.cisco.security.gatekeeper;strokeColor=#036897;",Cisco_cisco_general_applicance:"shape=mxgraph.cisco.misc.general_appliance;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_generic_gateway:"shape=mxgraph.cisco.hubs_and_gateways.generic_gateway;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_generic_processor:"shape=mxgraph.cisco.misc.generic_processor;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_generic_softswitch:"shape=mxgraph.cisco.switches.generic_softswitch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_gigabit_switch_atm_tag_router:"shape=mxgraph.cisco.routers.gigabit_switch_atm_tag_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_government_building:"shape=mxgraph.cisco.buildings.government_building;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_Ground_terminal:"shape=mxgraph.cisco.wireless.ground_terminal;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_guard:"shape=mxgraph.cisco.security.guard;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_handheld:"shape=mxgraph.cisco.misc.handheld;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_hootphone:"shape=mxgraph.cisco.modems_and_phones.hootphone;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_host:"shape=mxgraph.cisco.servers.host;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_hp_mini:"shape=mxgraph.cisco.misc.hp_mini;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_h:"shape=mxgraph.cisco.misc.h_323;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_hub:"shape=mxgraph.cisco.hubs_and_gateways.hub;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_iad_router:"shape=mxgraph.cisco.routers.iad_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ibm_mainframe:"shape=mxgraph.cisco.computers_and_peripherals.ibm_mainframe;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ibm_mini_as400:"shape=mxgraph.cisco.computers_and_peripherals.ibm_mini_as400;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ibm_tower:"shape=mxgraph.cisco.computers_and_peripherals.ibm_tower;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_icm:"shape=mxgraph.cisco.misc.icm;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ics:"shape=mxgraph.cisco.misc.ics;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_intelliswitch_stack:"shape=mxgraph.cisco.switches.intelliswitch_stack;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ios_firewall:"shape=mxgraph.cisco.security.ios_firewall;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ios_slb:"shape=mxgraph.cisco.misc.ios_slb;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ip_communicator:"shape=mxgraph.cisco.misc.ip_communicator;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_ip_dsl:"shape=mxgraph.cisco.misc.ip_dsl;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ip_phone:"shape=mxgraph.cisco.modems_and_phones.ip_phone;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ip:"shape=mxgraph.cisco.misc.ip;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_iptc:"shape=mxgraph.cisco.misc.iptc;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ip_telephony_router:"shape=mxgraph.cisco.routers.ip_telephony_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_iptv_content_manager:"shape=mxgraph.cisco.misc.iptv_content_manager;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_iptv_server:"shape=mxgraph.cisco.servers.iptv_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_iscsi_router:"shape=mxgraph.cisco.routers.isci_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_isdn_switch:"shape=mxgraph.cisco.switches.isdn_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_itp:"shape=mxgraph.cisco.misc.itp;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_jbod:"shape=mxgraph.cisco.misc.jbod;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_key:"shape=mxgraph.cisco.misc.key;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_keys:"shape=mxgraph.cisco.misc.keys;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_lan_to_lan:"shape=mxgraph.cisco.misc.lan_to_lan;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_layer_2_remote_switch:"shape=mxgraph.cisco.switches.layer_2_remote_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_layer_3_switch:"shape=mxgraph.cisco.switches.layer_3_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_lightweight_ap:"shape=mxgraph.cisco.misc.lightweight_ap;fillColor=#036897;strokeColor=#ffffff;",
@ -217,7 +217,7 @@ Image_iphone_button_blue:"shape=rect;rounded=1;",Image_iphone_button_grayblue:"s
Image_iphone_prev_next:"shape=mxgraph.ios.iPrevNext;strokeColor=#444444;fillColor=#dddddd;fillColor2=#3D5565;fillColor3=#ffffff;",Image_iphone_sort_handle:"shape=mxgraph.ios7.icons.options;",Image_iphone_slider:"shape=mxgraph.ios.iSlider;barPos=60;",Image_iphone_dropdown:"shape=mxgraph.ios.iComboBox;buttonText=;fillColor=#dddddd;fillColor2=#3D5565;",Image_iphone_email_name:"shape=rect;rounded=1;",Image_iphone_switch_off:"shape=mxgraph.android.switch_off;fillColor=#666666;",Image_iphone_keyboard_button_blue:"shape=rect;rounded=1;",
Image_iphone_keyboard_letters:"shape=mxgraph.ios.iKeybLett;",Image_iphone_keyboard_landscape:"shape=mxgraph.ios.iKeybLett;",Image_iphone_add_icon_blue:"shape=mxgraph.ios.iAddIcon;fillColor=#8BbEff;fillColor2=#135Ec8;strokeColor=#ffffff;",Image_iphone_add_icon_green:"shape=mxgraph.ios.iAddIcon;fillColor=#7AdF78;fillColor2=#1A9917;strokeColor=#ffffff;",Image_iphone_remove_icon:"shape=mxgraph.ios.iDeleteIcon;fillColor=#e8878E;fillColor2=#BD1421;strokeColor=#ffffff;",Image_iphone_arrow_icon:"shape=mxgraph.ios.iArrowIcon;fillColor=#8BbEff;fillColor2=#135Ec8;strokeColor=#ffffff;",
Image_iphone_arrow:"shape=mxgraph.ios7.misc.more;",Image_iphone_checkmark:"shape=mxgraph.ios7.misc.check;",Image_iphone_check_off:"shape=ellipse;",Image_iphone_location_dot:"shape=ellipse;",Image_iphone_mark_as_read:"shape=ellipse;",Image_iphone_pin_green:"shape=mxgraph.ios.iPin;fillColor2=#00dd00;fillColor3=#004400;strokeColor=#006600;",Image_iphone_pin_red:"shape=mxgraph.ios.iPin;fillColor2=#dd0000;fillColor3=#440000;strokeColor=#660000;",Image_iphone_radio_off:"shape=ellipse;",Image_iphone_checkbox_off:"shape=rect;rounded=1;",
Image_iphone_indicator:"shape=rect;rounded=1;fillColor=#e8878E;gradientColor=#BD1421;strokeColor=#ffffff;",Image_iphone_thread_count:"shape=rect;rounded=1;"};EditorUi.prototype.pasteLucidChart=function(a,c,d,b){var f=this.editor.graph;f.getModel().beginUpdate();try{var k=function(a,b){var e=null!=b.Endpoint1.Block?l[b.Endpoint1.Block]:null,k=null!=b.Endpoint2.Block?l[b.Endpoint2.Block]:null,g=new mxCell("",new mxGeometry(0,0,100,100),"html=1;");g.geometry.relative=!0;g.edge=!0;x(g,a);var p=q(a).Properties,
p=null!=p?p.TextAreas:a.TextAreas;if(null!=p)for(var n=0;null!=p["t"+n];){var p=p["t"+n],m=2*(parseFloat(p.Location)-.5),m=new mxCell(w(p),new mxGeometry(m,0,0,0),"text;html=1;resizable=0;align=center;verticalAlign=middle;labelBackgroundColor=#ffffff;");m.geometry.relative=!0;m.vertex=!0;g.insert(m);n++}null==e&&null!=b.Endpoint1&&g.geometry.setTerminalPoint(new mxPoint(Math.round(.6*b.Endpoint1.x+c),Math.round(.6*b.Endpoint1.y+d)),!0);null==k&&null!=b.Endpoint2&&g.geometry.setTerminalPoint(new mxPoint(Math.round(.6*
b.Endpoint2.x+c),Math.round(.6*b.Endpoint2.y+d)),!1);h.push(f.addCell(g,null,null,e,k))},h=[],l={},m=[];if(null!=a.Blocks)for(var t in a.Blocks){var e=a.Blocks[t];e.id=t;l[e.id]=y(e);m.push(e)}else for(var g=0;g<a.Objects.length;g++)e=a.Objects[g],e.IsBlock&&null!=e.Action&&null!=e.Action.Properties&&(l[e.id]=y(e)),m.push(e);m.sort(function(a,b){a=q(a);b=q(b);return null!=a.Properties&&null!=b.Properties?a.Properties.ZOrder-b.Properties.ZOrder:0});for(g=0;g<m.length;g++){var e=m[g],n=l[e.id];null!=
n?h.push(f.addCell(n)):e.IsLine&&null!=e.Action&&null!=e.Action.Properties&&k(e,e.Action.Properties)}if(null!=a.Lines)for(t in a.Lines)e=a.Lines[t],k(e,e);if(b&&null!=c&&null!=d){f.isGridEnabled()&&(c=f.snap(c),d=f.snap(d));var u=f.getBoundingBoxFromGeometry(h,!0);null!=u&&f.moveCells(h,c-u.x,d-u.y)}f.setSelectionCells(h)}finally{f.getModel().endUpdate()}f.isSelectionEmpty()||(f.scrollCellToVisible(f.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(f.view.getState(f.getSelectionCell())))}})();
Image_iphone_indicator:"shape=rect;rounded=1;fillColor=#e8878E;gradientColor=#BD1421;strokeColor=#ffffff;",Image_iphone_thread_count:"shape=rect;rounded=1;"};EditorUi.prototype.pasteLucidChart=function(a,c,d,b){var g=this.editor.graph;g.getModel().beginUpdate();try{var h=function(a,b){var f=null!=b.Endpoint1.Block?e[b.Endpoint1.Block]:null,l=null!=b.Endpoint2.Block?e[b.Endpoint2.Block]:null,h=new mxCell("",new mxGeometry(0,0,100,100),"html=1;");h.geometry.relative=!0;h.edge=!0;w(h,a);var p=q(a).Properties,
p=null!=p?p.TextAreas:a.TextAreas;if(null!=p)for(var n=0;null!=p["t"+n];){var p=p["t"+n],m=2*(parseFloat(p.Location)-.5),m=new mxCell(u(p),new mxGeometry(m,0,0,0),"text;html=1;resizable=0;align=center;verticalAlign=middle;labelBackgroundColor=#ffffff;");m.geometry.relative=!0;m.vertex=!0;h.insert(m);n++}null==f&&null!=b.Endpoint1&&h.geometry.setTerminalPoint(new mxPoint(Math.round(.6*b.Endpoint1.x+c),Math.round(.6*b.Endpoint1.y+d)),!0);null==l&&null!=b.Endpoint2&&h.geometry.setTerminalPoint(new mxPoint(Math.round(.6*
b.Endpoint2.x+c),Math.round(.6*b.Endpoint2.y+d)),!1);k.push(g.addCell(h,null,null,f,l))},k=[],e={},l=[];if(null!=a.Blocks)for(var r in a.Blocks){var f=a.Blocks[r];f.id=r;e[f.id]=x(f);l.push(f)}else for(var n=0;n<a.Objects.length;n++)f=a.Objects[n],f.IsBlock&&null!=f.Action&&null!=f.Action.Properties&&(e[f.id]=x(f)),l.push(f);l.sort(function(a,b){a=q(a);b=q(b);return null!=a.Properties&&null!=b.Properties?a.Properties.ZOrder-b.Properties.ZOrder:0});for(n=0;n<l.length;n++){var f=l[n],m=e[f.id];null!=
m?k.push(g.addCell(m)):f.IsLine&&null!=f.Action&&null!=f.Action.Properties&&h(f,f.Action.Properties)}if(null!=a.Lines)for(r in a.Lines)f=a.Lines[r],h(f,f);if(b&&null!=c&&null!=d){g.isGridEnabled()&&(c=g.snap(c),d=g.snap(d));var t=g.getBoundingBoxFromGeometry(k,!0);null!=t&&g.moveCells(k,c-t.x,d-t.y)}g.setSelectionCells(k)}finally{g.getModel().endUpdate()}g.isSelectionEmpty()||(g.scrollCellToVisible(g.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(g.view.getState(g.getSelectionCell())))}})();

View file

@ -1346,7 +1346,7 @@
var x = line1Start.x + (a * (line1End.x - line1Start.x));
var y = line1Start.y + (a * (line1End.y - line1Start.y));
if (a > 0 && a <= 1)// on line1?
if (a >= 0 && a <= 1)// on line1?
{
var dx = line2End.x - x;
var dy = line2End.y - y;
@ -1400,12 +1400,21 @@
var cx = bounds.getCenterX();
var cy = bounds.getCenterY();
return mxPerimeter.getPerimeterPoint(points, new mxPoint(cx, cy), next);
var p1 = new mxPoint(cx, cy);
if (orthogonal)
{
if (next.x < x || next.x > x + w)
p1.y = next.y;
else
p1.x = next.x;
}
return mxPerimeter.getPerimeterPoint(points, p1, next);
};
mxStyleRegistry.putValue('parallelogramPerimeter', mxPerimeter.ParallelogramPerimeter);
//Trapezoid Perimeter
mxPerimeter.TrapezoidPerimeter = function (bounds, vertex, next, orthogonal)
{
@ -1429,7 +1438,17 @@
var cx = bounds.getCenterX();
var cy = bounds.getCenterY();
return mxPerimeter.getPerimeterPoint(points, new mxPoint(cx, cy), next);
var p1 = new mxPoint(cx, cy);
if (orthogonal)
{
if (next.x < x || next.x > x + w)
p1.y = next.y;
else
p1.x = next.x;
}
return mxPerimeter.getPerimeterPoint(points, p1, next);
};
mxStyleRegistry.putValue('trapezoidPerimeter', mxPerimeter.TrapezoidPerimeter);
@ -1458,7 +1477,17 @@
new mxPoint(x + w - dx, y + h), new mxPoint(x, y + h),
new mxPoint(x + dx, cy), new mxPoint(x, y)];
return mxPerimeter.getPerimeterPoint(points, new mxPoint(cx, cy), next);
var p1 = new mxPoint(cx, cy);
if (orthogonal)
{
if (next.x < x || next.x > x + w)
p1.y = next.y;
else
p1.x = next.x;
}
return mxPerimeter.getPerimeterPoint(points, p1, next);
};
mxStyleRegistry.putValue('stepPerimeter', mxPerimeter.StepPerimeter);
@ -1487,7 +1516,17 @@
new mxPoint(x + w - dx, y + h), new mxPoint(x + dx, y + h),
new mxPoint(x, cy), new mxPoint(x + dx, y)];
return mxPerimeter.getPerimeterPoint(points, new mxPoint(cx, cy), next);
var p1 = new mxPoint(cx, cy);
if (orthogonal)
{
if (next.x < x || next.x > x + w)
p1.y = next.y;
else
p1.x = next.x;
}
return mxPerimeter.getPerimeterPoint(points, p1, next);
};
mxStyleRegistry.putValue('hexagonPerimeter2', mxPerimeter.HexagonPerimeter2);
@ -2521,11 +2560,10 @@
};
}
// Handlers are only added if mxVertexHandler is defined (ie. not in embedded graph)
if (typeof mxVertexHandler !== 'undefined')
{
function createHandle(state, keys, getPositionFn, setPositionFn, ignoreGrid)
function createHandle(state, keys, getPositionFn, setPositionFn, ignoreGrid, redrawEdges)
{
var handle = new mxHandle(state, null, mxVertexHandler.prototype.secondaryHandleImage);
@ -2536,11 +2574,26 @@
this.copyStyle(keys[i]);
}
};
handle.getPosition = getPositionFn;
handle.setPosition = setPositionFn;
handle.ignoreGrid = (ignoreGrid != null) ? ignoreGrid : true;
// Overridden to update connected edges
if (redrawEdges)
{
var positionChanged = handle.positionChanged;
handle.positionChanged = function()
{
positionChanged.apply(this, arguments);
// Redraws connected edges TODO: Include child edges
state.view.invalidate(this.state.cell);
state.view.validate();
};
}
return handle;
};
@ -2589,7 +2642,7 @@
}, function(bounds, pt)
{
this.state.style['size'] = Math.max(0, Math.min(max, (pt.x - bounds.x) / (bounds.width * 0.75)));
})];
}, null, true)];
if (mxUtils.getValue(state.style, mxConstants.STYLE_ROUNDED, false))
{
@ -2600,7 +2653,7 @@
};
};
function createDisplayHandleFunction(defaultValue, allowArcHandle, max)
function createDisplayHandleFunction(defaultValue, allowArcHandle, max, redrawEdges)
{
max = (max != null) ? max : 1;
@ -2614,7 +2667,7 @@
}, function(bounds, pt)
{
this.state.style['size'] = Math.max(0, Math.min(max, (pt.x - bounds.x) / bounds.width));
})];
}, null, redrawEdges)];
if (allowArcHandle && mxUtils.getValue(state.style, mxConstants.STYLE_ROUNDED, false))
{
@ -3134,8 +3187,8 @@
this.state.style['size'] = Math.max(0, Math.min(1, (bounds.y + bounds.height - pt.y) / bounds.height));
})];
},
'step': createDisplayHandleFunction(StepShape.prototype.size, true),
'hexagon': createDisplayHandleFunction(HexagonShape.prototype.size, true, 0.5),
'step': createDisplayHandleFunction(StepShape.prototype.size, true, null, true),
'hexagon': createDisplayHandleFunction(HexagonShape.prototype.size, true, 0.5, true),
'curlyBracket': createDisplayHandleFunction(CurlyBracketShape.prototype.size, false),
'display': createDisplayHandleFunction(DisplayShape.prototype.size, false),
'cube': createCubeHandleFunction(1, CubeShape.prototype.size, false),
@ -3420,19 +3473,18 @@
new mxConnectionConstraint(new mxPoint(1, 0.65), false),
new mxConnectionConstraint(new mxPoint(0.25, 1), false),
new mxConnectionConstraint(new mxPoint(0.75, 0), false)];
// TODO: Relative ports
StepShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0), true),
new mxConnectionConstraint(new mxPoint(0.5, 0), true),
new mxConnectionConstraint(new mxPoint(0.75, 0), true),
new mxConnectionConstraint(new mxPoint(0.25, 1), true),
new mxConnectionConstraint(new mxPoint(0.5, 1), true),
new mxConnectionConstraint(new mxPoint(0.75, 1), true),
new mxConnectionConstraint(new mxPoint(0.1, 0.25), false),
new mxConnectionConstraint(new mxPoint(0.2, 0.5), false),
new mxConnectionConstraint(new mxPoint(0.1, 0.75), false),
new mxConnectionConstraint(new mxPoint(0.9, 0.25), false),
new mxConnectionConstraint(new mxPoint(1, 0.5), false),
new mxConnectionConstraint(new mxPoint(0.9, 0.75), false)];
new mxConnectionConstraint(new mxPoint(0.5, 0), true),
new mxConnectionConstraint(new mxPoint(0.75, 0), true),
new mxConnectionConstraint(new mxPoint(0.25, 1), true),
new mxConnectionConstraint(new mxPoint(0.5, 1), true),
new mxConnectionConstraint(new mxPoint(0.75, 1), true),
new mxConnectionConstraint(new mxPoint(0.1, 0.25), true),
new mxConnectionConstraint(new mxPoint(0.2, 0.5), true),
new mxConnectionConstraint(new mxPoint(0.1, 0.75), true),
new mxConnectionConstraint(new mxPoint(0.9, 0.25), true),
new mxConnectionConstraint(new mxPoint(1, 0.5), true),
new mxConnectionConstraint(new mxPoint(0.9, 0.75), true)];
mxLine.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0, 0.5), false),
new mxConnectionConstraint(new mxPoint(0.25, 0.5), false),
new mxConnectionConstraint(new mxPoint(0.75, 0.5), false),
@ -3450,13 +3502,13 @@
mxHexagon.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.375, 0), true),
new mxConnectionConstraint(new mxPoint(0.5, 0), true),
new mxConnectionConstraint(new mxPoint(0.625, 0), true),
new mxConnectionConstraint(new mxPoint(0.125, 0.25), false),
new mxConnectionConstraint(new mxPoint(0.125, 0.25), true),
new mxConnectionConstraint(new mxPoint(0, 0.5), true),
new mxConnectionConstraint(new mxPoint(0.125, 0.75), false),
new mxConnectionConstraint(new mxPoint(0.875, 0.25), false),
new mxConnectionConstraint(new mxPoint(0.125, 0.75), true),
new mxConnectionConstraint(new mxPoint(0.875, 0.25), true),
new mxConnectionConstraint(new mxPoint(0, 0.5), true),
new mxConnectionConstraint(new mxPoint(1, 0.5), true),
new mxConnectionConstraint(new mxPoint(0.875, 0.75), false),
new mxConnectionConstraint(new mxPoint(0.875, 0.75), true),
new mxConnectionConstraint(new mxPoint(0.375, 1), true),
new mxConnectionConstraint(new mxPoint(0.5, 1), true),
new mxConnectionConstraint(new mxPoint(0.625, 1), true)];

View file

@ -934,16 +934,16 @@ Sidebar.prototype.addGeneralPalette = function(expand)
this.createVertexTemplateEntry('ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;', 80, 80, '', 'Double Circle', null, null, 'double circle'),
this.createVertexTemplateEntry('shape=process;whiteSpace=wrap;html=1;', 120, 60, '', 'Process', null, null, 'process task'),
this.createVertexTemplateEntry('rhombus;whiteSpace=wrap;html=1;', 80, 80, '', 'Diamond', null, null, 'diamond rhombus if condition decision conditional question test'),
this.createVertexTemplateEntry('shape=parallelogram;whiteSpace=wrap;html=1;', 120, 60, '', 'Parallelogram'),
this.createVertexTemplateEntry('shape=hexagon;perimeter=hexagonPerimeter;whiteSpace=wrap;html=1;', 120, 80, '', 'Hexagon', null, null, 'hexagon preparation'),
this.createVertexTemplateEntry('shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;', 120, 60, '', 'Parallelogram'),
this.createVertexTemplateEntry('shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;', 120, 80, '', 'Hexagon', null, null, 'hexagon preparation'),
this.createVertexTemplateEntry('triangle;whiteSpace=wrap;html=1;', 60, 80, '', 'Triangle', null, null, 'triangle logic inverter buffer'),
this.createVertexTemplateEntry('shape=cylinder;whiteSpace=wrap;html=1;', 60, 80, '', 'Cylinder', null, null, 'cylinder data database'),
this.createVertexTemplateEntry('ellipse;shape=cloud;whiteSpace=wrap;html=1;', 120, 80, '', 'Cloud', null, null, 'cloud network'),
this.createVertexTemplateEntry('shape=document;whiteSpace=wrap;html=1;', 120, 80, '', 'Document'),
this.createVertexTemplateEntry('shape=internalStorage;whiteSpace=wrap;html=1;', 80, 80, '', 'Internal Storage'),
this.createVertexTemplateEntry('shape=cube;whiteSpace=wrap;html=1;', 120, 80, '', 'Cube'),
this.createVertexTemplateEntry('shape=step;whiteSpace=wrap;html=1;', 120, 80, '', 'Step'),
this.createVertexTemplateEntry('shape=trapezoid;whiteSpace=wrap;html=1;', 120, 60, '', 'Trapezoid'),
this.createVertexTemplateEntry('shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;', 120, 80, '', 'Step'),
this.createVertexTemplateEntry('shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;', 120, 60, '', 'Trapezoid'),
this.createVertexTemplateEntry('shape=tape;whiteSpace=wrap;html=1;', 120, 100, '', 'Tape'),
this.createVertexTemplateEntry('shape=note;whiteSpace=wrap;html=1;', 80, 100, '', 'Note'),
this.createVertexTemplateEntry('shape=card;whiteSpace=wrap;html=1;', 80, 100, '', 'Card'),

198
war/js/reader.min.js vendored
View file

@ -81,7 +81,7 @@ v,k,f));else if(c.c&a.c.RCDATA)d.F&&d.F(e(l),f,g,h(d,b,v,k,f));else throw Error(
e[1].toLowerCase(),n;if(e[2]){n=e[3];var v=n.charCodeAt(0);if(34===v||39===v)n=n.substr(1,n.length-2);n=c(n.replace(F,""))}else n="";l.push(m,n);g=g.substr(e[0].length)}else g=g.replace(/^[\s\S][^a-z\s]*/,"");f.R=l;f.next=h+1;return f}}function n(b){function c(a,b){f||b.push(a)}var e,f;return g({startDoc:function(){e=[];f=!1},startTag:function(c,g,h){if(!f&&a.f.hasOwnProperty(c)){var k=a.f[c];if(!(k&a.c.FOLDABLE)){var l=b(c,g);if(l){if("object"!==typeof l)throw Error("tagPolicy did not return object (old API?)");
if("attribs"in l)g=l.attribs;else throw Error("tagPolicy gave no attribs");var m;"tagName"in l?(m=l.tagName,l=a.f[m]):(m=c,l=k);if(k&a.c.OPTIONAL_ENDTAG){var n=e[e.length-1];n&&n.D===c&&(n.v!==m||c!==m)&&h.push("</",n.v,">")}k&a.c.EMPTY||e.push({D:c,v:m});h.push("<",m);c=0;for(n=g.length;c<n;c+=2){var v=g[c],C=g[c+1];null!==C&&void 0!==C&&h.push(" ",v,'="',d(C),'"')}h.push(">");k&a.c.EMPTY&&!(l&a.c.EMPTY)&&h.push("</",m,">")}else f=!(k&a.c.EMPTY)}}},endTag:function(b,c){if(f)f=!1;else if(a.f.hasOwnProperty(b)){var d=
a.f[b];if(!(d&(a.c.EMPTY|a.c.FOLDABLE))){if(d&a.c.OPTIONAL_ENDTAG)for(d=e.length;0<=--d;){var g=e[d].D;if(g===b)break;if(!(a.f[g]&a.c.OPTIONAL_ENDTAG))return}else for(d=e.length;0<=--d&&e[d].D!==b;);if(!(0>d)){for(g=e.length;--g>d;){var h=e[g].v;a.f[h]&a.c.OPTIONAL_ENDTAG||c.push("</",h,">")}d<e.length&&(b=e[d].v);e.length=d;c.push("</",b,">")}}}},pcdata:c,rcdata:c,cdata:c,endDoc:function(a){for(;e.length;e.length--)a.push("</",e[e.length-1].v,">")}})}function p(a,b,c,d,e){if(!e)return null;try{var g=
f.parse(""+a);if(g&&(!g.K()||fa.test(g.W()))){var h=e(g,b,c,d);return h?h.toString():null}}catch(va){}return null}function r(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function C(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+c;if(a.hasOwnProperty(b))return a[b]}function H(b,c,d,e,f){for(var g=0;g<c.length;g+=2){var h=c[g],k=c[g+1],l=k,m=null,n;if((n=
f.parse(""+a);if(g&&(!g.K()||fa.test(g.W()))){var h=e(g,b,c,d);return h?h.toString():null}}catch(wa){}return null}function r(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function C(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+c;if(a.hasOwnProperty(b))return a[b]}function H(b,c,d,e,f){for(var g=0;g<c.length;g+=2){var h=c[g],k=c[g+1],l=k,m=null,n;if((n=
b+"::"+h,a.m.hasOwnProperty(n))||(n="*::"+h,a.m.hasOwnProperty(n)))m=a.m[n];if(null!==m)switch(m){case a.d.NONE:break;case a.d.SCRIPT:k=null;f&&r(f,b,h,l,k);break;case a.d.STYLE:if("undefined"===typeof U){k=null;f&&r(f,b,h,l,k);break}var v=[];U(k,{declaration:function(b,c){var e=b.toLowerCase();S(e,c,d?function(b){return p(b,a.P.ja,a.M.ka,{TYPE:"CSS",CSS_PROP:e},d)}:null);c.length&&v.push(e+": "+c.join(" "))}});k=0<v.length?v.join(" ; "):null;f&&r(f,b,h,l,k);break;case a.d.ID:case a.d.IDREF:case a.d.IDREFS:case a.d.GLOBAL_NAME:case a.d.LOCAL_NAME:case a.d.CLASSES:k=
e?e(k):k;f&&r(f,b,h,l,k);break;case a.d.URI:k=p(k,C(a.J,b,h),C(a.I,b,h),{TYPE:"MARKUP",XML_ATTR:h,XML_TAG:b},d);f&&r(f,b,h,l,k);break;case a.d.URI_FRAGMENT:k&&"#"===k.charAt(0)?(k=k.substring(1),k=e?e(k):k,null!==k&&void 0!==k&&(k="#"+k)):k=null;f&&r(f,b,h,l,k);break;default:k=null,f&&r(f,b,h,l,k)}else k=null,f&&r(f,b,h,l,k);c[g+1]=k}return c}function M(b,c,d){return function(e,f){if(a.f[e]&a.c.UNSAFE)d&&r(d,e,void 0,void 0,void 0);else return{attribs:H(e,f,b,c,d)}}}function J(a,b){var c=[];n(b)(a,
c);return c.join("")}var U,S;"undefined"!==typeof window&&(U=window.parseCssDeclarations,S=window.sanitizeCssProperty);var aa={lt:"<",LT:"<",gt:">",GT:">",amp:"&",AMP:"&",quot:'"',apos:"'",nbsp:" "},A=/^#(\d+)$/,v=/^#x([0-9A-Fa-f]+)$/,R=/^[A-Za-z][A-za-z0-9]+$/,K="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):null,F=/\0/g,ca=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,N=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,G=/&/g,Y=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,T=
@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+x.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();var mxBasePath="https://www.draw.io/mxgraph/",mxLoadStylesheets=mxLoadResources=!1,mxLanguage="en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"7.0.7",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"7.0.8",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT:0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@ -1741,10 +1741,10 @@ var A=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function()
a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,q.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,q.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,q.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,q.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
this.canvas.curveTo=mxUtils.bind(this,q.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,q.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function x(){mxActor.call(this)}function w(){mxActor.call(this)}function z(){mxRectangleShape.call(this)}function y(){mxRectangleShape.call(this)}function u(){mxCylinder.call(this)}function I(){mxShape.call(this)}function L(){mxShape.call(this)}function D(){mxEllipse.call(this)}function B(){mxShape.call(this)}
function E(){mxShape.call(this)}function C(){mxRectangleShape.call(this)}function H(){mxShape.call(this)}function M(){mxShape.call(this)}function J(){mxShape.call(this)}function U(){mxCylinder.call(this)}function S(){mxDoubleEllipse.call(this)}function aa(){mxDoubleEllipse.call(this)}function A(){mxArrowConnector.call(this);this.spacing=0}function v(){mxArrowConnector.call(this);this.spacing=0}function R(){mxActor.call(this)}function K(){mxRectangleShape.call(this)}function F(){mxActor.call(this)}
function ca(){mxActor.call(this)}function N(){mxActor.call(this)}function G(){mxActor.call(this)}function Y(){mxActor.call(this)}function T(){mxActor.call(this)}function Z(){mxActor.call(this)}function da(){mxActor.call(this)}function P(){mxActor.call(this)}function ea(){mxActor.call(this)}function W(){mxEllipse.call(this)}function O(){mxEllipse.call(this)}function Q(){mxEllipse.call(this)}function fa(){mxRhombus.call(this)}function V(){mxEllipse.call(this)}function X(){mxEllipse.call(this)}function ua(){mxEllipse.call(this)}
function oa(){mxEllipse.call(this)}function pa(){mxActor.call(this)}function la(){mxActor.call(this)}function ma(){mxActor.call(this)}function ja(){mxConnector.call(this)}function va(a,b,c,d,e,f,g,h,k,l){g+=k;var m=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,
"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.cube=a;var wa=Math.tan(mxUtils.toRadians(30)),ka=(.5-wa)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/wa);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ka);a.lineTo(b,
.25*b);a.lineTo(.5*b,(.5-ka)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.isoRectangle=b;mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+wa));f?(a.moveTo(0,.25*b),a.lineTo(.5*b,(.5-ka)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ka)*b),a.lineTo(.5*b,(1-ka)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ka),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-ka)*b),a.lineTo(0,.75*b),
function ca(){mxActor.call(this)}function N(){mxActor.call(this)}function G(){mxActor.call(this)}function Y(){mxActor.call(this)}function T(){mxActor.call(this)}function Z(){mxActor.call(this)}function da(){mxActor.call(this)}function P(){mxActor.call(this)}function ea(){mxActor.call(this)}function W(){mxEllipse.call(this)}function O(){mxEllipse.call(this)}function Q(){mxEllipse.call(this)}function fa(){mxRhombus.call(this)}function V(){mxEllipse.call(this)}function X(){mxEllipse.call(this)}function va(){mxEllipse.call(this)}
function pa(){mxEllipse.call(this)}function qa(){mxActor.call(this)}function la(){mxActor.call(this)}function ma(){mxActor.call(this)}function ja(){mxConnector.call(this)}function wa(a,b,c,d,e,f,g,h,k,l){g+=k;var m=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,
"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.cube=a;var xa=Math.tan(mxUtils.toRadians(30)),ka=(.5-xa)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/xa);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ka);a.lineTo(b,
.25*b);a.lineTo(.5*b,(.5-ka)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.isoRectangle=b;mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+xa));f?(a.moveTo(0,.25*b),a.lineTo(.5*b,(.5-ka)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ka)*b),a.lineTo(.5*b,(1-ka)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ka),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-ka)*b),a.lineTo(0,.75*b),
a.close());a.end()};mxCellRenderer.prototype.defaultShapes.isoCube=c;mxUtils.extend(d,mxCylinder);d.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(f&&null!=this.fill||!f&&null==this.fill)a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,-b);f||(a.moveTo(0,
b),a.curveTo(0,-b/3,d,-b/3,d,b),a.lineTo(d,e-b),a.curveTo(d,e+b/3,0,e+b/3,0,e-b),a.close())};d.prototype.getLabelBounds=function(a){var b=2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1);if(!this.flipV&&(null==this.direction||this.direction==mxConstants.DIRECTION_EAST)||this.flipV&&this.direction==mxConstants.DIRECTION_WEST)a.y+=b,a.height-=b;else if(!this.flipV&&this.direction==mxConstants.DIRECTION_SOUTH||this.flipV&&this.direction==mxConstants.DIRECTION_NORTH)a.width-=b;else if(!this.flipV&&
this.direction==mxConstants.DIRECTION_WEST||this.flipV&&(null==this.direction||this.direction==mxConstants.DIRECTION_EAST))a.height-=b;else if(!this.flipV&&this.direction==mxConstants.DIRECTION_NORTH||this.flipV&&this.direction==mxConstants.DIRECTION_SOUTH)a.x+=b,a.width-=b;return a};mxCellRenderer.prototype.defaultShapes.datastore=d;mxUtils.extend(e,mxCylinder);e.prototype.size=30;e.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,
@ -1759,18 +1759,18 @@ mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),
function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};q.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)};q.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};q.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,
arguments);this.lastX=e;this.lastY=f};q.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};q.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),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),h=this.defaultVariation;
5>g&&(g=5,h/=3);for(var k=c(a-this.lastX)*d/g,c=c(b-this.lastY)*e/g,d=d/f,e=e/f,f=0;f<g;f++){var l=(Math.random()-.5)*h;this.originalLineTo.call(this.canvas,k*f+this.lastX-l*e,c*f+this.lastY-l*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};q.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};var Ca=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new q(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ca.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Da=mxRectangleShape.prototype.isHtmlAllowed;
mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Da.apply(this,arguments)};var Ea=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ea.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=
this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var Da=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new q(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Da.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ea=mxRectangleShape.prototype.isHtmlAllowed;
mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ea.apply(this,arguments)};var Fa=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Fa.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=
mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadTo(b,c,b+f,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 Fa=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Fa.apply(this,arguments)};mxUtils.extend(t,mxRectangleShape);t.prototype.size=.1;t.prototype.isHtmlAllowed=function(){return!1};t.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.close(),a.end(),a.fillAndStroke()}};var Ga=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Ga.apply(this,arguments)};mxUtils.extend(t,mxRectangleShape);t.prototype.size=.1;t.prototype.isHtmlAllowed=function(){return!1};t.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+=d;a.width-=2*d}return a};t.prototype.paintForeground=function(a,b,c,d,e){var f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));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));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.prototype.defaultShapes.process=t;mxUtils.extend(x,mxActor);x.prototype.size=.2;x.prototype.redrawPath=function(a,b,c,d,e){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(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.prototype.defaultShapes.step=x;mxUtils.extend(w,mxHexagon);w.prototype.size=.25;w.prototype.redrawPath=function(a,b,c,d,e){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(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.prototype.defaultShapes.hexagon=w;mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.paintForeground=function(a,b,c,d,e){var f=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+f);a.lineTo(b+d/2,c+e-f);a.moveTo(b+f,c+e/2);a.lineTo(b+d-f,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
arguments)};mxCellRenderer.prototype.defaultShapes.plus=z;var za=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){za.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),za.apply(this,[a,b,c,d,e]))}};mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.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};y.prototype.paintForeground=function(a,b,c,
arguments)};mxCellRenderer.prototype.defaultShapes.plus=z;var Aa=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){Aa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),Aa.apply(this,[a,b,c,d,e]))}};mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.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};y.prototype.paintForeground=function(a,b,c,
d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var f=0,g;do{g=mxCellRenderer.prototype.defaultShapes[this.style["symbol"+f]];if(null!=g){var h=this.style["symbol"+f+"Align"],k=this.style["symbol"+f+"VerticalAlign"],l=this.style["symbol"+f+"Width"],m=this.style["symbol"+f+"Height"],
ra=this.style["symbol"+f+"Spacing"]||0,n=this.style["symbol"+f+"VSpacing"]||ra,p=this.style["symbol"+f+"ArcSpacing"];null!=p&&(p*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),ra+=p,n+=p);var p=b,q=c,p=h==mxConstants.ALIGN_CENTER?p+(d-l)/2:h==mxConstants.ALIGN_RIGHT?p+(d-l-ra):p+ra,q=k==mxConstants.ALIGN_MIDDLE?q+(e-m)/2:k==mxConstants.ALIGN_BOTTOM?q+(e-m-n):q+n;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,p,q,l,m);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
sa=this.style["symbol"+f+"Spacing"]||0,n=this.style["symbol"+f+"VSpacing"]||sa,p=this.style["symbol"+f+"ArcSpacing"];null!=p&&(p*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),sa+=p,n+=p);var p=b,oa=c,p=h==mxConstants.ALIGN_CENTER?p+(d-l)/2:h==mxConstants.ALIGN_RIGHT?p+(d-l-sa):p+sa,oa=k==mxConstants.ALIGN_MIDDLE?oa+(e-m)/2:k==mxConstants.ALIGN_BOTTOM?oa+(e-m-n):oa+n;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,p,oa,l,m);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
arguments)};mxCellRenderer.prototype.defaultShapes.ext=y;mxUtils.extend(u,mxCylinder);u.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.prototype.defaultShapes.message=u;mxUtils.extend(I,mxShape);I.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.prototype.defaultShapes.umlActor=I;mxUtils.extend(L,mxShape);L.prototype.getLabelBounds=function(a){return new mxRectangle(a.x+a.width/6,a.y,5*a.width/6,a.height)};L.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.prototype.defaultShapes.umlBoundary=L;mxUtils.extend(D,mxEllipse);D.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.prototype.defaultShapes.umlEntity=D;mxUtils.extend(B,mxShape);B.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,
@ -1781,90 +1781,90 @@ a,b,c,d,Math.min(e,f))};mxCellRenderer.prototype.defaultShapes.umlLifeline=C;mxU
e){var f=this.corner,g=Math.min(d,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),h=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height))));a.begin();a.moveTo(b,c);a.lineTo(b+g,c);a.lineTo(b+g,c+Math.max(0,h-1.5*f));a.lineTo(b+Math.max(0,g-f),c+h);a.lineTo(b,c+h);a.close();a.fillAndStroke();a.begin();a.moveTo(b+g,c);a.lineTo(b+d,c);a.lineTo(b+d,c+e);a.lineTo(b,c+e);a.lineTo(b,c+h);a.stroke()};mxCellRenderer.prototype.defaultShapes.umlFrame=
H;mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=C.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.lineIntersection=function(a,b,c,d){var e=(d.y-c.y)*(b.x-a.x)-(d.x-c.x)*(b.y-a.y);if(0==e)return null;var f=a.y-c.y,f=((d.x-c.x)*f-(d.y-c.y)*(a.x-c.x))/e;c=a.x+f*(b.x-a.x);a=a.y+f*(b.y-a.y);return 0<f&&1>=f?(f=d.x-c,d=d.y-a,{dist:Math.sqrt(d*d+f*f),p:new mxPoint(c,a)}):null};mxPerimeter.getPerimeterPoint=function(a,b,c){for(var d=
!1,e=0;e<a.length-1;e++){var f=mxPerimeter.lineIntersection(a[e],a[e+1],b,c);null!=f&&(!d||d.dist>f.dist)&&(d=f)}return d.p};mxPerimeter.ParallelogramPerimeter=function(a,b,c,d){d=m.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d));b=a.width*Math.max(0,Math.min(1,d));d=a.x;var e=a.y,f=a.width,g=a.height;b=[new mxPoint(d+b,e),new mxPoint(d+f,e),new mxPoint(d+f-b,e+g),new mxPoint(d,e+g),new mxPoint(d+b,e)];d=a.getCenterX();a=a.getCenterY();return mxPerimeter.getPerimeterPoint(b,new mxPoint(d,
a),c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){d=n.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d));b=a.width*Math.max(0,Math.min(1,d));d=a.x;var e=a.y,f=a.width,g=a.height;b=[new mxPoint(d+b,e),new mxPoint(d+f-b,e),new mxPoint(d+f,e+g),new mxPoint(d,e+g),new mxPoint(d+b,e)];d=a.getCenterX();a=a.getCenterY();return mxPerimeter.getPerimeterPoint(b,new mxPoint(d,a),c)};mxStyleRegistry.putValue("trapezoidPerimeter",
mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){d=x.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d));d=a.width*Math.max(0,Math.min(1,d));var e=a.x,f=a.y,g=a.width,h=a.height;b=a.getCenterX();a=a.getCenterY();d=[new mxPoint(e,f),new mxPoint(e+g-d,f),new mxPoint(e+g,a),new mxPoint(e+g-d,f+h),new mxPoint(e,f+h),new mxPoint(e+d,a),new mxPoint(e,f)];return mxPerimeter.getPerimeterPoint(d,new mxPoint(b,a),c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);
mxPerimeter.HexagonPerimeter2=function(a,b,c,d){d=w.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d));d=a.width*Math.max(0,Math.min(1,d));var e=a.x,f=a.y,g=a.width,h=a.height;b=a.getCenterX();a=a.getCenterY();d=[new mxPoint(e+d,f),new mxPoint(e+g-d,f),new mxPoint(e+g,a),new mxPoint(e+g-d,f+h),new mxPoint(e+d,f+h),new mxPoint(e,a),new mxPoint(e+d,f)];return mxPerimeter.getPerimeterPoint(d,new mxPoint(b,a),c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);
mxUtils.extend(M,mxShape);M.prototype.size=10;M.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.prototype.defaultShapes.lollipop=M;mxUtils.extend(J,mxShape);J.prototype.size=10;J.prototype.inset=2;J.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.prototype.defaultShapes.requires=J;mxUtils.extend(U,mxCylinder);U.prototype.jettyWidth=32;U.prototype.jettyHeight=12;U.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,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+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,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.component=
U;mxUtils.extend(S,mxDoubleEllipse);S.prototype.outerStroke=!0;S.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.prototype.defaultShapes.endState=S;mxUtils.extend(aa,S);aa.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=aa;mxUtils.extend(A,mxArrowConnector);A.prototype.defaultWidth=4;A.prototype.isOpenEnded=
function(){return!0};A.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};A.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=A;mxUtils.extend(v,mxArrowConnector);v.prototype.defaultWidth=10;v.prototype.defaultArrowWidth=20;v.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};v.prototype.getEndArrowWidth=
function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};v.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=v;mxUtils.extend(R,mxActor);R.prototype.size=30;R.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.prototype.defaultShapes.manualInput=R;mxUtils.extend(K,mxRectangleShape);K.prototype.dx=20;K.prototype.dy=20;K.prototype.isHtmlAllowed=function(){return!1};K.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.prototype.defaultShapes.internalStorage=K;mxUtils.extend(F,mxActor);F.prototype.dx=20;F.prototype.dy=20;F.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.prototype.defaultShapes.corner=
F;mxUtils.extend(ca,mxActor);ca.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.prototype.defaultShapes.crossbar=ca;mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.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.prototype.defaultShapes.tee=N;mxUtils.extend(G,mxActor);G.prototype.arrowWidth=.3;G.prototype.arrowSize=.2;G.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.prototype.defaultShapes.singleArrow=
G;mxUtils.extend(Y,mxActor);Y.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",G.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",G.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.prototype.defaultShapes.doubleArrow=Y;mxUtils.extend(T,mxActor);T.prototype.size=.1;T.prototype.redrawPath=function(a,b,c,d,e){b=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.prototype.defaultShapes.dataStorage=T;mxUtils.extend(Z,
mxActor);Z.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.or=Z;mxUtils.extend(da,mxActor);da.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.prototype.defaultShapes.xor=da;mxUtils.extend(P,mxActor);P.prototype.size=20;P.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.prototype.defaultShapes.loopLimit=P;mxUtils.extend(ea,mxActor);ea.prototype.size=.375;ea.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.prototype.defaultShapes.offPageConnector=ea;mxUtils.extend(W,mxEllipse);W.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.prototype.defaultShapes.tapeData=
W;mxUtils.extend(O,mxEllipse);O.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.prototype.defaultShapes.orEllipse=O;mxUtils.extend(Q,mxEllipse);Q.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.prototype.defaultShapes.sumEllipse=Q;mxUtils.extend(fa,mxRhombus);fa.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.prototype.defaultShapes.sortShape=fa;mxUtils.extend(V,
mxEllipse);V.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.prototype.defaultShapes.collate=V;mxUtils.extend(X,mxEllipse);X.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.prototype.defaultShapes.dimension=X;mxUtils.extend(ua,mxEllipse);ua.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),"1"==mxUtils.getValue(this.style,"top","1")&&(a.begin(),
a.moveTo(b,c),a.lineTo(b+d,c),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"right","1")&&(a.begin(),a.moveTo(b+d,c),a.lineTo(b+d,c+e),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"bottom","1")&&(a.begin(),a.moveTo(b+d,c+e),a.lineTo(b,c+e),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"left","1")&&(a.begin(),a.moveTo(b,c+e),a.lineTo(b,c),a.end(),a.stroke()))};mxCellRenderer.prototype.defaultShapes.partialRectangle=ua;mxUtils.extend(oa,mxEllipse);oa.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.prototype.defaultShapes.lineEllipse=oa;mxUtils.extend(pa,mxActor);pa.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.prototype.defaultShapes.delay=
pa;mxUtils.extend(la,mxActor);la.prototype.size=.2;la.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.prototype.defaultShapes.cross=la;mxUtils.extend(ma,mxActor);ma.prototype.size=
.25;ma.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.prototype.defaultShapes.display=ma;mxUtils.extend(ja,mxConnector);ja.prototype.origPaintEdgeShape=ja.prototype.paintEdgeShape;ja.prototype.paintEdgeShape=function(a,b,c){var d=a.state.dashed,e=a.state.fixDash;ja.prototype.origPaintEdgeShape.apply(this,
arguments);if(3<=a.state.strokeWidth){var f=mxUtils.getValue(this.style,"fillColor",null);null!=f&&(a.setStrokeColor(f),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(d,e),ja.prototype.origPaintEdgeShape.apply(this,arguments))}};mxCellRenderer.prototype.defaultShapes.filledEdge=ja;mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",
function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",va);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=va.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*
k,m.y-2*q+f*k);a.moveTo(m.x-p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);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 m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);h?a.lineTo(m.x-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.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,m){f*=h+l;g*=h+l;var n=e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Aa=function(a,b,c){return na(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})},na=
function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,h=a.view.translate,k=a.view.scale,l=c?f[0]:f[g],m=c?f[1]:f[g-1],n=m.x-l.x,p=m.y-l.y,q=Math.sqrt(n*n+p*p);return ba(a,b,function(a){a=d.call(this,q,n/q,p/q,l,m);return new mxPoint(a.x/k-h.x,a.y/k-h.y)},function(a,b,c){a=Math.sqrt(n*n+p*p);b.x=(b.x+h.x)*k;b.y=(b.y+h.y)*k;e.call(this,a,n/a,p/a,l,m,b,c)})},ha=function(a){return function(b){return[ba(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
"arrowWidth",G.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",G.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))})]}},xa=function(a,b,c){return function(d){var e=[ba(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)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},qa=function(a,b,c){c=null!=c?c:1;return function(d){var e=[ba(d,["size"],function(b){var c=parseFloat(mxUtils.getValue(this.state.style,"size",a));return new mxPoint(b.x+c*b.width,b.getCenterY())},
function(a,b){this.state.style.size=Math.max(0,Math.min(c,(b.x-a.x)/a.width))})];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},Ba=function(a){return function(b){var c=[ba(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))})];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,
!1)&&c.push(ga(b));return c}},ia=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b}},ga=function(a,b){return ba(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=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)*d),c.y+(null!=b?b:c.height/8))},function(a,b,c){this.state.style[mxConstants.STYLE_ARCSIZE]=
Math.round(Math.min(50,Math.max(0,100*(a.width-b.x+a.x)/Math.min(a.width,a.height))))})},ba=function(a,b,c,d,e){a=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);a.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};a.getPosition=c;a.setPosition=d;a.ignoreGrid=null!=e?e:!0;return a},ya={link:function(a){return[Aa(a,!0,10),Aa(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(na(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(na(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(na(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(na(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*
a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=
a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[ba(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,
mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=
parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ga(a,c/2))}return b},label:ia(),ext:ia(),rectangle:ia(),triangle:ia(),rhombus:ia(),umlLifeline:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",C.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){var b=
[ba(a,["width","height"],function(a){var b=Math.max(H.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",H.prototype.width))),c=Math.max(1.5*H.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",H.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(H.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*H.prototype.corner,Math.min(a.height,b.y-a.y)))},
!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},process:function(a){var b=[ba(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},cross:function(a){return[ba(a,["size"],function(a){var b=
Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",la.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",
e.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[ba(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",R.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,
mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},dataStorage:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",T.prototype.size))));return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width))})]},internalStorage:function(a){var b=[ba(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",K.prototype.dx))),
c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",K.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},corner:function(a){return[ba(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",F.prototype.dx))),
c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",F.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[ba(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",N.prototype.dy)));
return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:ha(1),doubleArrow:ha(.5),folder:function(a){return[ba(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",
g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[ba(a,["size"],
function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=
Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.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))})]},step:qa(x.prototype.size,!0),hexagon:qa(w.prototype.size,!0,.5),curlyBracket:qa(p.prototype.size,!1),display:qa(ma.prototype.size,!1),cube:xa(1,
a.prototype.size,!1),card:xa(.5,h.prototype.size,!0),loopLimit:xa(.5,P.prototype.size,!0),trapezoid:Ba(.5),parallelogram:Ba(1)};Graph.createHandle=ba;Graph.handleFactory=ya;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=ya[a];if(null!=a)return a(this.state)}return null};
mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=ya[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var sa=new mxPoint(1,0),ta=new mxPoint(1,0),ha=mxUtils.toRadians(-30),sa=mxUtils.getRotatedPoint(sa,Math.cos(ha),Math.sin(ha)),
ha=mxUtils.toRadians(-150),ta=mxUtils.getRotatedPoint(ta,Math.cos(ha),Math.sin(ha));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=sa.x,l=sa.y,m=ta.x,n=ta.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=
g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ga=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=
function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Ga.apply(this,arguments)};b.prototype.constraints=[];c.prototype.constraints=[];mxRectangleShape.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),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,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))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=
mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;K.prototype.constraints=mxRectangleShape.prototype.constraints;T.prototype.constraints=mxRectangleShape.prototype.constraints;W.prototype.constraints=mxEllipse.prototype.constraints;O.prototype.constraints=mxEllipse.prototype.constraints;Q.prototype.constraints=mxEllipse.prototype.constraints;
oa.prototype.constraints=mxEllipse.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;pa.prototype.constraints=mxRectangleShape.prototype.constraints;ma.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=mxRectangleShape.prototype.constraints;ea.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)];I.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)];U.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)];
f.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)];k.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)];x.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(.1,.25),!1),new mxConnectionConstraint(new mxPoint(.2,.5),!1),new mxConnectionConstraint(new mxPoint(.1,.75),!1),new mxConnectionConstraint(new mxPoint(.9,.25),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.9,.75),!1)];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)];M.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(.125,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.125,.75),!1),new mxConnectionConstraint(new mxPoint(.875,
.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.875,.75),!1),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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=
mxRectangleShape.prototype.constraints;l.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;N.prototype.constraints=null;F.prototype.constraints=null;ca.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)];G.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];Y.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];la.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,
1),!1)];C.prototype.constraints=null;Z.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)];da.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)]})();
(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.lineIntersection=function(a,b,c,d){var e=(d.y-c.y)*(b.x-a.x)-(d.x-c.x)*(b.y-a.y);if(0==e)return null;var f=a.y-c.y,f=((d.x-c.x)*f-(d.y-c.y)*(a.x-c.x))/e;c=a.x+f*(b.x-a.x);a=a.y+f*(b.y-a.y);return 0<=f&&1>=f?(f=d.x-c,d=d.y-a,{dist:Math.sqrt(d*d+f*f),p:new mxPoint(c,a)}):null};mxPerimeter.getPerimeterPoint=function(a,b,c){for(var d=
!1,e=0;e<a.length-1;e++){var f=mxPerimeter.lineIntersection(a[e],a[e+1],b,c);null!=f&&(!d||d.dist>f.dist)&&(d=f)}return d.p};mxPerimeter.ParallelogramPerimeter=function(a,b,c,d){var e=m.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.width*Math.max(0,Math.min(1,e));b=a.x;var g=a.y,e=a.width,h=a.height,f=[new mxPoint(b+f,g),new mxPoint(b+e,g),new mxPoint(b+e-f,g+h),new mxPoint(b,g+h),new mxPoint(b+f,g)],g=a.getCenterX();a=a.getCenterY();a=new mxPoint(g,a);d&&(c.x<b||c.x>b+e?
a.y=c.y:a.x=c.x);return mxPerimeter.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){var e=n.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.width*Math.max(0,Math.min(1,e));b=a.x;var g=a.y,e=a.width,h=a.height,f=[new mxPoint(b+f,g),new mxPoint(b+e-f,g),new mxPoint(b+e,g+h),new mxPoint(b,g+h),new mxPoint(b+f,g)],g=a.getCenterX();a=a.getCenterY();a=new mxPoint(g,a);
d&&(c.x<b||c.x>b+e?a.y=c.y:a.x=c.x);return mxPerimeter.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){var e=x.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.width*Math.max(0,Math.min(1,e));b=a.x;var g=a.y,e=a.width,h=a.height,k=a.getCenterX();a=a.getCenterY();f=[new mxPoint(b,g),new mxPoint(b+e-f,g),new mxPoint(b+e,a),new mxPoint(b+e-f,g+h),new mxPoint(b,g+h),new mxPoint(b+
f,a),new mxPoint(b,g)];a=new mxPoint(k,a);d&&(c.x<b||c.x>b+e?a.y=c.y:a.x=c.x);return mxPerimeter.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e=w.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.width*Math.max(0,Math.min(1,e));b=a.x;var g=a.y,e=a.width,h=a.height,k=a.getCenterX();a=a.getCenterY();f=[new mxPoint(b+f,g),new mxPoint(b+e-f,g),new mxPoint(b+e,a),new mxPoint(b+e-f,
g+h),new mxPoint(b+f,g+h),new mxPoint(b,a),new mxPoint(b+f,g)];a=new mxPoint(k,a);d&&(c.x<b||c.x>b+e?a.y=c.y:a.x=c.x);return mxPerimeter.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(M,mxShape);M.prototype.size=10;M.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.prototype.defaultShapes.lollipop=M;mxUtils.extend(J,mxShape);J.prototype.size=10;J.prototype.inset=2;J.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.prototype.defaultShapes.requires=J;mxUtils.extend(U,mxCylinder);U.prototype.jettyWidth=32;U.prototype.jettyHeight=12;U.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,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+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,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.component=U;mxUtils.extend(S,mxDoubleEllipse);S.prototype.outerStroke=!0;S.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.prototype.defaultShapes.endState=S;mxUtils.extend(aa,S);aa.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=aa;mxUtils.extend(A,mxArrowConnector);A.prototype.defaultWidth=4;A.prototype.isOpenEnded=function(){return!0};A.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};A.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=
A;mxUtils.extend(v,mxArrowConnector);v.prototype.defaultWidth=10;v.prototype.defaultArrowWidth=20;v.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};v.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};v.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=
v;mxUtils.extend(R,mxActor);R.prototype.size=30;R.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.prototype.defaultShapes.manualInput=R;mxUtils.extend(K,mxRectangleShape);K.prototype.dx=20;K.prototype.dy=20;K.prototype.isHtmlAllowed=
function(){return!1};K.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.prototype.defaultShapes.internalStorage=K;mxUtils.extend(F,mxActor);F.prototype.dx=20;F.prototype.dy=20;F.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.prototype.defaultShapes.corner=F;mxUtils.extend(ca,mxActor);ca.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.prototype.defaultShapes.crossbar=ca;mxUtils.extend(N,mxActor);N.prototype.dx=
20;N.prototype.dy=20;N.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.prototype.defaultShapes.tee=N;mxUtils.extend(G,mxActor);G.prototype.arrowWidth=.3;G.prototype.arrowSize=.2;G.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.prototype.defaultShapes.singleArrow=G;mxUtils.extend(Y,mxActor);Y.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",G.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"arrowSize",G.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.prototype.defaultShapes.doubleArrow=Y;mxUtils.extend(T,mxActor);T.prototype.size=.1;T.prototype.redrawPath=function(a,
b,c,d,e){b=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.prototype.defaultShapes.dataStorage=T;mxUtils.extend(Z,mxActor);Z.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.or=Z;mxUtils.extend(da,mxActor);da.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.prototype.defaultShapes.xor=da;mxUtils.extend(P,mxActor);P.prototype.size=20;P.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.prototype.defaultShapes.loopLimit=P;mxUtils.extend(ea,mxActor);ea.prototype.size=.375;ea.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.prototype.defaultShapes.offPageConnector=ea;mxUtils.extend(W,mxEllipse);W.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.prototype.defaultShapes.tapeData=W;mxUtils.extend(O,mxEllipse);O.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.prototype.defaultShapes.orEllipse=O;mxUtils.extend(Q,mxEllipse);Q.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.prototype.defaultShapes.sumEllipse=
Q;mxUtils.extend(fa,mxRhombus);fa.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.prototype.defaultShapes.sortShape=fa;mxUtils.extend(V,mxEllipse);V.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.prototype.defaultShapes.collate=V;mxUtils.extend(X,mxEllipse);X.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.prototype.defaultShapes.dimension=X;mxUtils.extend(va,
mxEllipse);va.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),"1"==mxUtils.getValue(this.style,"top","1")&&(a.begin(),a.moveTo(b,c),a.lineTo(b+d,c),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"right","1")&&(a.begin(),a.moveTo(b+d,c),a.lineTo(b+d,c+e),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"bottom","1")&&
(a.begin(),a.moveTo(b+d,c+e),a.lineTo(b,c+e),a.end(),a.stroke()),"1"==mxUtils.getValue(this.style,"left","1")&&(a.begin(),a.moveTo(b,c+e),a.lineTo(b,c),a.end(),a.stroke()))};mxCellRenderer.prototype.defaultShapes.partialRectangle=va;mxUtils.extend(pa,mxEllipse);pa.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.prototype.defaultShapes.lineEllipse=pa;mxUtils.extend(qa,mxActor);qa.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.prototype.defaultShapes.delay=qa;mxUtils.extend(la,mxActor);la.prototype.size=.2;la.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.prototype.defaultShapes.cross=la;mxUtils.extend(ma,mxActor);ma.prototype.size=.25;ma.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.prototype.defaultShapes.display=ma;mxUtils.extend(ja,mxConnector);ja.prototype.origPaintEdgeShape=ja.prototype.paintEdgeShape;ja.prototype.paintEdgeShape=function(a,b,c){var d=a.state.dashed,e=a.state.fixDash;ja.prototype.origPaintEdgeShape.apply(this,arguments);if(3<=a.state.strokeWidth){var f=mxUtils.getValue(this.style,"fillColor",null);null!=f&&(a.setStrokeColor(f),a.setStrokeWidth(a.state.strokeWidth-
2),a.setDashed(d,e),ja.prototype.origPaintEdgeShape.apply(this,arguments))}};mxCellRenderer.prototype.defaultShapes.filledEdge=ja;mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-
3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",wa);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=wa.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*k,m.y-2*q+f*k);a.moveTo(m.x-p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);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 m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);h?a.lineTo(m.x-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.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,m){f*=h+l;g*=h+l;var n=e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/
a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ba=function(a,b,c){return na(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})},na=function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,h=a.view.translate,k=a.view.scale,l=c?f[0]:f[g],m=c?f[1]:f[g-1],n=m.x-l.x,p=m.y-l.y,q=Math.sqrt(n*
n+p*p);return ba(a,b,function(a){a=d.call(this,q,n/q,p/q,l,m);return new mxPoint(a.x/k-h.x,a.y/k-h.y)},function(a,b,c){a=Math.sqrt(n*n+p*p);b.x=(b.x+h.x)*k;b.y=(b.y+h.y)*k;e.call(this,a,n/a,p/a,l,m,b,c)})},ha=function(a){return function(b){return[ba(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",G.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",G.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))})]}},ya=function(a,b,c){return function(d){var e=[ba(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)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},ra=function(a,b,c){c=null!=c?c:1;return function(d){var e=[ba(d,["size"],function(b){var c=parseFloat(mxUtils.getValue(this.state.style,"size",a));return new mxPoint(b.x+c*b.width,b.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(c,(b.x-a.x)/a.width))})];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},Ca=function(a){return function(b){var c=
[ba(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))})];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ga(b));return c}},ia=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b}},ga=function(a,b){return ba(a,
[mxConstants.STYLE_ARCSIZE],function(c){var d=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)*d),c.y+(null!=b?b:c.height/8))},function(a,b,c){this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(a.width-b.x+a.x)/Math.min(a.width,a.height))))})},ba=function(a,b,c,d,e){a=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);
a.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};a.getPosition=c;a.setPosition=d;a.ignoreGrid=null!=e?e:!0;return a},za={link:function(a){return[Ba(a,!0,10),Ba(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(na(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(na(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(na(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(na(a,
["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-
d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=
a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[ba(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,
c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ga(a,c/2))}return b},label:ia(),ext:ia(),rectangle:ia(),triangle:ia(),rhombus:ia(),umlLifeline:function(a){return[ba(a,
["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",C.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){var b=[ba(a,["width","height"],function(a){var b=Math.max(H.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",H.prototype.width))),c=Math.max(1.5*H.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,
"height",H.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(H.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*H.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},process:function(a){var b=[ba(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));
return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},cross:function(a){return[ba(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",la.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=
Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",e.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[ba(a,["size"],
function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",R.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},dataStorage:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",T.prototype.size))));return new mxPoint(a.x+
(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width))})]},internalStorage:function(a){var b=[ba(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",K.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",K.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=
Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},corner:function(a){return[ba(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",F.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",F.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=
Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[ba(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",N.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},
singleArrow:ha(1),doubleArrow:ha(.5),folder:function(a){return[ba(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,
b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,
Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[ba(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.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))})]},step:ra(x.prototype.size,!0),hexagon:ra(w.prototype.size,!0,.5),curlyBracket:ra(p.prototype.size,!1),display:ra(ma.prototype.size,!1),cube:ya(1,a.prototype.size,!1),card:ya(.5,h.prototype.size,!0),loopLimit:ya(.5,P.prototype.size,!0),trapezoid:Ca(.5),parallelogram:Ca(1)};Graph.createHandle=ba;Graph.handleFactory=za;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&
this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=za[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
a=za[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var ta=new mxPoint(1,0),ua=new mxPoint(1,0),ha=mxUtils.toRadians(-30),ta=mxUtils.getRotatedPoint(ta,Math.cos(ha),Math.sin(ha)),ha=mxUtils.toRadians(-150),ua=mxUtils.getRotatedPoint(ua,Math.cos(ha),Math.sin(ha));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=ta.x,l=ta.y,m=ua.x,n=ua.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};
var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ha=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Ha.apply(this,arguments)};b.prototype.constraints=[];c.prototype.constraints=[];mxRectangleShape.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),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),
new mxConnectionConstraint(new mxPoint(.75,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))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;
mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;K.prototype.constraints=mxRectangleShape.prototype.constraints;
T.prototype.constraints=mxRectangleShape.prototype.constraints;W.prototype.constraints=mxEllipse.prototype.constraints;O.prototype.constraints=mxEllipse.prototype.constraints;Q.prototype.constraints=mxEllipse.prototype.constraints;pa.prototype.constraints=mxEllipse.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;ma.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=
mxRectangleShape.prototype.constraints;ea.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)];I.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)];U.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)];f.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)];k.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)];x.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(.1,.25),!1),new mxConnectionConstraint(new mxPoint(.2,.5),!1),new mxConnectionConstraint(new mxPoint(.1,.75),!1),new mxConnectionConstraint(new mxPoint(.9,.25),!1),
new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.9,.75),!1)];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)];M.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(.125,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.125,.75),!1),new mxConnectionConstraint(new mxPoint(.875,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.875,.75),!1),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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=mxRectangleShape.prototype.constraints;l.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;N.prototype.constraints=null;F.prototype.constraints=null;ca.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)];G.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];Y.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),
new mxConnectionConstraint(new mxPoint(1,.5),!1)];la.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];C.prototype.constraints=null;Z.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)];da.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)]})();

604
war/js/viewer.min.js vendored

File diff suppressed because one or more lines are too long

View file

@ -29,4 +29,4 @@
"devDependencies": {
"electron": "^1.6.12"
}
}
}

View file

@ -85,6 +85,9 @@ Draw.loadPlugin(function(editorUi)
model.beginUpdate();
try
{
// Queue used to fix ancestor placeholders
var queue = [];
for (var id in model.cells)
{
var cell = model.cells[id];
@ -99,7 +102,12 @@ Draw.loadPlugin(function(editorUi)
label = anonymizeString(label);
}
model.setValue(cell, label);
queue.push({cell: cell, label: label});
}
for (var i = 0; i < queue.length; i++)
{
model.setValue(queue[i].cell, queue[i].label);
}
}
finally